@greenberry/datocms-migration-utils
v1.0.17
Published
A collection of utils to help with the development of DatoCMS migration files
Downloads
17
Keywords
Readme
@greenberry/datocms-migration-utils
A collection of utils to help with the development of DatoCMS migration files.
Installation
yarn add @greenberry/datocms-migration-utils -D
API
Each field creator method need 3 arguments a working DatoCMS SiteClient
, field options
and the modelId
you want to attach the field to.
await createFieldMethod(client, options, modelId);
Field Options
createBoolean
| Key | Type | Required |
| :---------- | :------ | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
createColor
| Key | Type | Required |
| :------------- | :------- | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
| presetColors
| [#000]
| ❌ |
| enableAlpha
| Boolean | ❌ |
createCTA
| Key | Type | Required |
| :---------- | :------ | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
createDate
| Key | Type | Required |
| :---------- | :----------------------------------- | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
| dateRange
| {min: 'ISO-8601', max: 'ISO-8601'}
| ❌ |
createDateTime
| Key | Type | Required |
| :---------- | :----------------------------------- | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
| dateRange
| {min: 'ISO-8601', max: 'ISO-8601'}
| ❌ |
createEnum
| Key | Type | Required |
| :------------- | :------- | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| options
| [String] | ✅ |
| defaultValue
| String | ❌ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
createImage
| Key | Type | Required |
| :---------- | :------ | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
createLink
| Key | Type | Required |
| :---------- | :------------ | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| items
| [ItemType ID] | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
| unique
| Boolean | ❌ |
createLinks
| Key | Type | Required |
| :---------- | :----------------------------- | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| items
| [ItemType ID] | ✅ |
| size
| { min: Number, max: Number }
| ❌ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
createModularContent
| Key | Type | Required |
| :---------- | :------------ | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| blockIds
| [ItemType ID] | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
createNumber
| Key | Type | Required |
| :---------- | :------ | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
createSEO
| Key | Type | Required |
| :---------- | :------ | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
createSingleLine
| Key | Type | Required |
| :---------- | :------ | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
| heading
| Boolean | ❌ |
createSlug
| Key | Type | Required |
| :----------- | :------ | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| titleField
| Field | ✅ |
| prefix
| String | ❌ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
createTextArea
| Key | Type | Required |
| :---------- | :------ | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
createWysiwyg
| Key | Type | Required |
| :---------- | :------ | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| hint
| String | ❌ |
| localized
| Boolean | ❌ |
| required
| Boolean | ❌ |
| toolbar
| Array | ❌ |
updateModularContent
| Key | Type | Required |
| :---------- | :------------ | :------- |
| label
| String | ✅ |
| apiKey
| String | ✅ |
| localized
| Boolean | ❌ |
| hint
| String | ❌ |
| blockIds
| [ItemType ID] | ✅ |
uploadFile
| Key | Type | Required | | :-- | :--- | :------- | | | | |
Color formatting
DatoCMS only accepts a specific format when filling colors. That is why we added a util to format hex values in a shape acceptable by DatoCMS.
const color = formatColor('#000000');
console.log(color);
// {
// red: 0,
// blue: 0,
// green: 0,
// alpha: 255,
// }
formatColor
also accepts a second argument to specify the alpha of the color, this works in the same way as CSS opacity.
const color = formatColor('#000000', 0.8);
console.log(color);
// {
// red: 0,
// blue: 0,
// green: 0,
// alpha: 204,
// }