From 95712b3718235a22fd97325162203bfd95031d84 Mon Sep 17 00:00:00 2001 From: Stefano Verna Date: Thu, 25 May 2023 12:25:05 +0200 Subject: [PATCH] Fix --- .../createNodeFromEntity/field/index.js | 3 +- .../createNodeFromEntity/item/index.js | 4 +- .../createNodeFromEntity/itemType/index.js | 7 +- .../createTypes/schema/DatoCmsField.js | 2 +- .../createTypes/schema/DatoCmsModel.js | 4 +- test/__snapshots__/graphql.test.js.snap | 309 ++++++++++++++++++ test/graphql.test.js | 8 + 7 files changed, 329 insertions(+), 8 deletions(-) diff --git a/src/hooks/sourceNodes/createNodeFromEntity/field/index.js b/src/hooks/sourceNodes/createNodeFromEntity/field/index.js index 40cc891..a973c1d 100644 --- a/src/hooks/sourceNodes/createNodeFromEntity/field/index.js +++ b/src/hooks/sourceNodes/createNodeFromEntity/field/index.js @@ -7,7 +7,7 @@ const attributes = [ 'localized', 'validators', 'position', - 'appeareance', + 'appearance', 'defaultValue', ]; @@ -17,6 +17,7 @@ module.exports = function buildFieldNode(entity, { generateType }) { node[attribute] = entity[attribute]; }); + node.appeareance = entity.appearance; node.originalId = entity.id; }); }; diff --git a/src/hooks/sourceNodes/createNodeFromEntity/item/index.js b/src/hooks/sourceNodes/createNodeFromEntity/item/index.js index fa7c5a1..13822a0 100644 --- a/src/hooks/sourceNodes/createNodeFromEntity/item/index.js +++ b/src/hooks/sourceNodes/createNodeFromEntity/item/index.js @@ -17,9 +17,9 @@ module.exports = function buildItemNode(entity, { generateType }) { const camelizedApiKey = camelize(field.apiKey); const mediaType = - field.appeareance.editor === 'markdown' + field.appearance.editor === 'markdown' ? 'text/markdown' - : field.appeareance.editor === 'wysiwyg' + : field.appearance.editor === 'wysiwyg' ? 'text/html' : 'text/plain'; diff --git a/src/hooks/sourceNodes/createNodeFromEntity/itemType/index.js b/src/hooks/sourceNodes/createNodeFromEntity/itemType/index.js index a5f4c9d..200fdff 100644 --- a/src/hooks/sourceNodes/createNodeFromEntity/itemType/index.js +++ b/src/hooks/sourceNodes/createNodeFromEntity/itemType/index.js @@ -10,7 +10,7 @@ const attributes = [ 'modularBlock', 'draftModeActive', 'allLocalesRequired', - 'collectionAppeareance', + 'collectionAppearance', 'hasSingletonItem', ]; @@ -21,6 +21,9 @@ module.exports = function buildItemTypeNode(entity, { generateType }) { }); node.originalId = entity.id; - node.fields___NODE = entity.fields.map(field => `DatoCmsField-${field.id}`); + node.collectionAppeareance = entity.collectionAppearance; + node.fields___NODE = entity.fields.map( + field => `${generateType('Field')}-${field.id}`, + ); }); }; diff --git a/src/hooks/sourceNodes/createTypes/schema/DatoCmsField.js b/src/hooks/sourceNodes/createTypes/schema/DatoCmsField.js index 990cece..ea34a34 100644 --- a/src/hooks/sourceNodes/createTypes/schema/DatoCmsField.js +++ b/src/hooks/sourceNodes/createTypes/schema/DatoCmsField.js @@ -12,7 +12,7 @@ module.exports = ({ actions, schema, generateType }) => { position: 'Int', appeareance: 'JSON', defaultValue: 'JSON', - originalId: 'String', + originalId: 'String!', }, interfaces: ['Node'], }), diff --git a/src/hooks/sourceNodes/createTypes/schema/DatoCmsModel.js b/src/hooks/sourceNodes/createTypes/schema/DatoCmsModel.js index 12bc625..f1daeac 100644 --- a/src/hooks/sourceNodes/createTypes/schema/DatoCmsModel.js +++ b/src/hooks/sourceNodes/createTypes/schema/DatoCmsModel.js @@ -15,9 +15,9 @@ module.exports = ({ actions, schema, generateType }) => { allLocalesRequired: 'Boolean', collectionAppeareance: 'String', hasSingletonItem: 'Boolean', - originalId: 'String', + originalId: 'String!', fields: { - type: 'DatoCmsFaviconMetaTags', + type: `[${generateType('Field')}!]`, extensions: { link: { by: 'id', from: 'fields___NODE' }, }, diff --git a/test/__snapshots__/graphql.test.js.snap b/test/__snapshots__/graphql.test.js.snap index eb12c53..fb0f6c8 100644 --- a/test/__snapshots__/graphql.test.js.snap +++ b/test/__snapshots__/graphql.test.js.snap @@ -2356,6 +2356,315 @@ https://www.datocms-assets.com/34723/1620629638-plant.jpeg?auto=format&dpr=0.6&f "apiKey": "article", "collectionAppeareance": "table", "draftModeActive": false, + "fields": Array [ + Object { + "appeareance": Object { + "addons": Array [], + "editor": "single_line", + "parameters": Object { + "heading": false, + }, + }, + "fieldType": "string", + "id": "DatoCmsField-1400188", + "label": "Single line string", + "originalId": "1400188", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "markdown", + "parameters": Object { + "toolbar": Array [ + "heading", + "bold", + "italic", + "strikethrough", + "unordered_list", + "ordered_list", + "quote", + "link", + "image", + "fullscreen", + ], + }, + "type": "markdown", + }, + "fieldType": "text", + "id": "DatoCmsField-1400189", + "label": "Multiple paragraph text", + "originalId": "1400189", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "markdown", + "parameters": Object { + "toolbar": Array [ + "heading", + "bold", + "italic", + "strikethrough", + "unordered_list", + "ordered_list", + "quote", + "link", + "image", + "fullscreen", + ], + }, + "type": "markdown", + }, + "fieldType": "text", + "id": "DatoCmsField-10432981", + "label": "Unlocalized multiple paragraph text", + "originalId": "10432981", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "file", + "parameters": Object {}, + }, + "fieldType": "file", + "id": "DatoCmsField-1400190", + "label": "Single asset", + "originalId": "1400190", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "gallery", + "parameters": Object {}, + }, + "fieldType": "gallery", + "id": "DatoCmsField-1400191", + "label": "Asset gallery", + "originalId": "1400191", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "video", + "parameters": Object {}, + }, + "fieldType": "video", + "id": "DatoCmsField-1400192", + "label": "External video", + "originalId": "1400192", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "date_picker", + "parameters": Object {}, + }, + "fieldType": "date", + "id": "DatoCmsField-1400193", + "label": "Date", + "originalId": "1400193", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "date_time_picker", + "parameters": Object {}, + }, + "fieldType": "date_time", + "id": "DatoCmsField-1400194", + "label": "Date time", + "originalId": "1400194", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "integer", + "parameters": Object {}, + }, + "fieldType": "integer", + "id": "DatoCmsField-1400195", + "label": "Integer number", + "originalId": "1400195", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "float", + "parameters": Object {}, + }, + "fieldType": "float", + "id": "DatoCmsField-1400196", + "label": "Floating-point number", + "originalId": "1400196", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "boolean", + "parameters": Object {}, + }, + "fieldType": "boolean", + "id": "DatoCmsField-1400197", + "label": "Boolean", + "originalId": "1400197", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "map", + "parameters": Object {}, + }, + "fieldType": "lat_lon", + "id": "DatoCmsField-1400198", + "label": "Location", + "originalId": "1400198", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "color_picker", + "parameters": Object { + "enableAlpha": false, + "presetColors": Array [], + }, + }, + "fieldType": "color", + "id": "DatoCmsField-1400199", + "label": "Color", + "originalId": "1400199", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "slug", + "parameters": Object { + "urlPrefix": null, + }, + }, + "fieldType": "slug", + "id": "DatoCmsField-1400200", + "label": "Slug", + "originalId": "1400200", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "seo", + "parameters": Object {}, + }, + "fieldType": "seo", + "id": "DatoCmsField-1400203", + "label": "SEO meta tags", + "originalId": "1400203", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "link_select", + "parameters": Object {}, + }, + "fieldType": "link", + "id": "DatoCmsField-1400204", + "label": "Single link", + "originalId": "1400204", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "link_select", + "parameters": Object {}, + }, + "fieldType": "link", + "id": "DatoCmsField-1400351", + "label": "Advanced single link", + "originalId": "1400351", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "links_select", + "parameters": Object {}, + }, + "fieldType": "links", + "id": "DatoCmsField-1400205", + "label": "Multiple links", + "originalId": "1400205", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "links_select", + "parameters": Object {}, + }, + "fieldType": "links", + "id": "DatoCmsField-1400352", + "label": "Advanced multiple links", + "originalId": "1400352", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "json", + "parameters": Object {}, + }, + "fieldType": "json", + "id": "DatoCmsField-1400206", + "label": "JSON", + "originalId": "1400206", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "rich_text", + "parameters": Object { + "startCollapsed": false, + }, + }, + "fieldType": "rich_text", + "id": "DatoCmsField-1400207", + "label": "Modular content", + "originalId": "1400207", + }, + Object { + "appeareance": Object { + "addons": Array [], + "editor": "structured_text", + "parameters": Object { + "blocksStartCollapsed": false, + "headingLevels": Array [ + 1, + 2, + 3, + 4, + 5, + 6, + ], + "marks": Array [ + "strong", + "code", + "emphasis", + "underline", + "strikethrough", + "highlight", + ], + "nodes": Array [ + "blockquote", + "code", + "heading", + "link", + "list", + "thematicBreak", + ], + "showLinksMetaEditor": false, + "showLinksTargetBlank": true, + }, + }, + "fieldType": "structured_text", + "id": "DatoCmsField-2467966", + "label": "Structured Text", + "originalId": "2467966", + }, + ], "hasSingletonItem": false, "id": "DatoCmsModel-313513", "modularBlock": false, diff --git a/test/graphql.test.js b/test/graphql.test.js index e4d9f4a..271d4b8 100644 --- a/test/graphql.test.js +++ b/test/graphql.test.js @@ -818,6 +818,7 @@ test('items', async () => { } model { id + originalId name singleton sortable @@ -830,6 +831,13 @@ test('items', async () => { collectionAppeareance hasSingletonItem originalId + fields { + id + originalId + label + fieldType + appeareance + } } } allDatoCmsOptionalLocalesModel(locale: "it", fallbackLocales: ["en"]) {