Helpers we use at Etch for working with Contentful.
npm install @etchteam/contentfulThe CLI depends on the following environment variables being present
Use --help to display help for a command.
npx etch-contentful-cli migration:installCreates a directory at /integrations/contentful/migrations containing a 0-init migration.
When migrations are run, this will set the migration content type on your configured contentful space.
npx etch-contentful-cli migration:new "MIGRATION_NAME"Creates a new migration file at /integrations/contentful/migrations with the "MIGRATION_NAME" provided.
npx etch-contentful-cli migration:runRuns all migrations that haven't already been run.
The migration:run command accepts an optional spaces argument --spaces <spaceOne,spaceTwo>.
This will filter out any migrations that don't export a matching space name as part of its module.exports.spaces array:
module.exports.spaces = ['spaceOne', 'spaceTwo'];If no spaces argument is provided, all migrations will run.
npx etch-contentful-cli typegenGenerate GraphQL API compatible types based on your content in Contentful
The typegen command accepts an optional filename argument --filename <filename>. If omitted the filename will default to contentful.d.ts.
Some basic validators are available to use with content types, they can be imported:
import { validator } from '@etchteam/contentful';Then used with their corresponding Contentful input type:
newEntity
.createField('summary')
.type('RichText')
.name('Summary')
.validations(validator.richText.boldAndItalicOnly);