npm.io
1.12.0 • Published 1 month ago

@contentful/resource-names

Licence
ISC
Version
1.12.0
Deps
0
Size
145 kB
Vulns
0
Weekly
0

@contentful/resource-names

Helps you disassemble Contentful Resource Names into its distinct parts and vice versa.

Concepts

The package operates on the CRN conventions written in the Content Management API Documentation.

Getting started

The package exports a set of classes that can be used to either create a CRN from its distinct parts or extract those exact same parts from a previously stringified version.

Create a CRN class and stringify it
import { ContentfulResourceName } from '@contentful/resource-names';

const crn = new ContentfulResourceName({
  partition: 'contentful',
  service: 'content',
  resourceId: 'spaces/a1b2c3'
});
const crnString = crn.toString();
Extract individual parts
import { ContentfulResourceName } from '@contentful/resource-names';

const { partition, service, resourceId } = ContentfulResourceName.fromString('crn:contentful:::content:spaces/a1b2c3');

The examples above provide a generic way to access information of a CRN, the package additionally exports tailor-made classes that will do additional work for you. We can - for example - rewrite the code from above into this:

import { SpaceResourceName } from '@contentful/resource-names';

const spaceCrn = new SpaceResourceName({
  partition: 'contentful',
  service: 'content',
  spaceId: 'a1b2c3'
});

const { resourceId, spaceId } = SpaceResourceName.fromString('crn:contentful:::content:spaces/a1b2c3');