@contentful/contentful-slatejs-adapter
Advanced tools
@@ -8,11 +8,18 @@ 'use strict'; | ||
| var flatmap = _interopDefault(require('lodash.flatmap')); | ||
| var get = _interopDefault(require('lodash.get')); | ||
| var Contentful = require('@contentful/structured-text-types'); | ||
| function toSlatejsDocument(ctfDocument) { | ||
| function toSlatejsDocument(_a) { | ||
| var document = _a.document, _b = _a.schema, schema = _b === void 0 ? {} : _b; | ||
| return { | ||
| object: 'document', | ||
| nodes: flatmap(ctfDocument.content, function (node) { return convertNode(node); }), | ||
| nodes: flatmap(document.content, function (node) { return convertNode(node, schema); }), | ||
| }; | ||
| } | ||
| function convertNode(node) { | ||
| // COMPAT: fixes the issue with void inline blocks in slate < v0.40 | ||
| function getIsVoidValue(node, schema) { | ||
| var root = node.nodeClass === 'block' ? 'blocks' : 'inlines'; | ||
| return get(schema, [root, node.nodeType, 'isVoid'], false); | ||
| } | ||
| function convertNode(node, schema) { | ||
| var nodes = []; | ||
@@ -23,3 +30,5 @@ switch (node.nodeClass) { | ||
| var contentfulBlock = node; | ||
| var childNodes = flatmap(contentfulBlock.content, convertNode); | ||
| var childNodes = flatmap(contentfulBlock.content, function (childNode) { | ||
| return convertNode(childNode, schema); | ||
| }); | ||
| var slateBlock = { | ||
@@ -29,2 +38,3 @@ object: contentfulBlock.nodeClass, | ||
| nodes: childNodes, | ||
| isVoid: getIsVoidValue(contentfulBlock, schema), | ||
| data: contentfulBlock.data, | ||
@@ -31,0 +41,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"contentful-slatejs-adapter.es5.js","sources":["../src/contentful-to-slatejs-adapter.ts","../src/slatejs-to-contentful-adapter.ts"],"sourcesContent":["import flatmap from 'lodash.flatmap';\nimport omit from 'lodash.omit';\nimport * as Contentful from '@contentful/structured-text-types';\nimport { ContentfulNode, SlateNode } from './types';\n\nexport default function toSlatejsDocument(ctfDocument: Contentful.Document): Slate.Document {\n return {\n object: 'document',\n nodes: flatmap(ctfDocument.content, node => convertNode(node)) as Slate.Block[],\n };\n}\n\nfunction convertNode(node: ContentfulNode): SlateNode[] {\n const nodes: SlateNode[] = [];\n switch (node.nodeClass) {\n case 'block':\n case 'inline':\n const contentfulBlock = node as Contentful.Block;\n const childNodes = flatmap(contentfulBlock.content, convertNode);\n\n const slateBlock: Slate.Block = {\n object: contentfulBlock.nodeClass,\n type: contentfulBlock.nodeType,\n nodes: childNodes,\n data: contentfulBlock.data,\n };\n\n nodes.push(slateBlock);\n break;\n case 'text':\n const { marks, value, data } = node as Contentful.Text;\n\n const slateText: Slate.Text = {\n object: 'text',\n leaves: [\n {\n object: 'leaf',\n text: value,\n marks,\n },\n ],\n data,\n };\n\n nodes.push(slateText);\n break;\n default:\n assertUnreachable(node);\n break;\n }\n return nodes;\n}\n\nfunction assertUnreachable(object: never): never {\n throw new Error(`Unexpected contentful object ${JSON.stringify(object)}`);\n}\n","import flatMap from 'lodash.flatmap';\nimport * as Contentful from '@contentful/structured-text-types';\nimport { ContentfulNode, SlateNode } from './types';\n\nexport default function toContentfulDocument(slateDocument: Slate.Document): Contentful.Document {\n return {\n nodeClass: 'document',\n nodeType: Contentful.BLOCKS.DOCUMENT,\n content: flatMap(slateDocument.nodes, convertNode) as Contentful.Block[],\n };\n}\n\nfunction convertNode(node: SlateNode): ContentfulNode[] {\n const nodes: ContentfulNode[] = [];\n switch (node.object) {\n case 'block':\n case 'inline':\n const slateBlock = node as Slate.Block;\n const content = flatMap(slateBlock.nodes, convertNode);\n const contentfulBlock: Contentful.Block = {\n nodeClass: slateBlock.object,\n nodeType: slateBlock.type,\n content,\n data: slateBlock.data,\n };\n nodes.push(contentfulBlock);\n break;\n case 'text':\n convertText(node as Slate.Text).forEach(childNode => nodes.push(childNode));\n break;\n default:\n assertUnreachable(node);\n break;\n }\n\n return nodes;\n}\n\nfunction convertText(node: Slate.Text): Contentful.Text[] {\n return node.leaves.map<Contentful.Text>(leaf => ({\n nodeClass: 'text',\n nodeType: 'text',\n value: leaf.text,\n marks: leaf.marks || [],\n data: node.data,\n }));\n}\n\nfunction assertUnreachable(object: never): never {\n throw new Error(`Unexpected slate object ${object}`);\n}\n"],"names":["Contentful.BLOCKS","flatMap","convertNode","assertUnreachable"],"mappings":"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"} | ||
| {"version":3,"file":"contentful-slatejs-adapter.es5.js","sources":["../src/contentful-to-slatejs-adapter.ts","../src/slatejs-to-contentful-adapter.ts"],"sourcesContent":["import flatmap from 'lodash.flatmap';\nimport omit from 'lodash.omit';\nimport get from 'lodash.get';\nimport * as Contentful from '@contentful/structured-text-types';\nimport { ContentfulNode, SlateNode } from './types';\n\nexport interface SchemaValue {\n isVoid?: boolean;\n // tslint:disable-next-line:no-any\n [k: string]: any;\n}\nexport interface Schema {\n blocks?: Record<string, SchemaValue>;\n inlines?: Record<string, SchemaValue>;\n}\nexport interface ToSlatejsDocumentProperties {\n document: Contentful.Document;\n schema?: Schema;\n}\n\nexport default function toSlatejsDocument({\n document,\n schema = {},\n}: ToSlatejsDocumentProperties): Slate.Document {\n return {\n object: 'document',\n nodes: flatmap(document.content, node => convertNode(node, schema)) as Slate.Block[],\n };\n}\n\n// COMPAT: fixes the issue with void inline blocks in slate < v0.40\nfunction getIsVoidValue(node: Contentful.Block | Contentful.Inline, schema: Schema) {\n const root = node.nodeClass === 'block' ? 'blocks' : 'inlines';\n return get(schema, [root, node.nodeType as string, 'isVoid'], false);\n}\n\nfunction convertNode(node: ContentfulNode, schema: Schema): SlateNode[] {\n const nodes: SlateNode[] = [];\n switch (node.nodeClass) {\n case 'block':\n case 'inline':\n const contentfulBlock = node as Contentful.Block;\n const childNodes = flatmap(contentfulBlock.content, childNode =>\n convertNode(childNode, schema),\n );\n\n const slateBlock: Slate.Block = {\n object: contentfulBlock.nodeClass,\n type: contentfulBlock.nodeType,\n nodes: childNodes,\n isVoid: getIsVoidValue(contentfulBlock, schema),\n data: contentfulBlock.data,\n };\n\n nodes.push(slateBlock);\n break;\n case 'text':\n const { marks, value, data } = node as Contentful.Text;\n\n const slateText: Slate.Text = {\n object: 'text',\n leaves: [\n {\n object: 'leaf',\n text: value,\n marks,\n },\n ],\n data,\n };\n\n nodes.push(slateText);\n break;\n default:\n assertUnreachable(node);\n break;\n }\n return nodes;\n}\n\nfunction assertUnreachable(object: never): never {\n throw new Error(`Unexpected contentful object ${JSON.stringify(object)}`);\n}\n","import flatMap from 'lodash.flatmap';\nimport * as Contentful from '@contentful/structured-text-types';\nimport { ContentfulNode, SlateNode } from './types';\n\nexport default function toContentfulDocument(slateDocument: Slate.Document): Contentful.Document {\n return {\n nodeClass: 'document',\n nodeType: Contentful.BLOCKS.DOCUMENT,\n content: flatMap(slateDocument.nodes, convertNode) as Contentful.Block[],\n };\n}\n\nfunction convertNode(node: SlateNode): ContentfulNode[] {\n const nodes: ContentfulNode[] = [];\n switch (node.object) {\n case 'block':\n case 'inline':\n const slateBlock = node as Slate.Block;\n const content = flatMap(slateBlock.nodes, convertNode);\n const contentfulBlock: Contentful.Block = {\n nodeClass: slateBlock.object,\n nodeType: slateBlock.type,\n content,\n data: slateBlock.data,\n };\n nodes.push(contentfulBlock);\n break;\n case 'text':\n convertText(node as Slate.Text).forEach(childNode => nodes.push(childNode));\n break;\n default:\n assertUnreachable(node);\n break;\n }\n\n return nodes;\n}\n\nfunction convertText(node: Slate.Text): Contentful.Text[] {\n return node.leaves.map<Contentful.Text>(leaf => ({\n nodeClass: 'text',\n nodeType: 'text',\n value: leaf.text,\n marks: leaf.marks || [],\n data: node.data,\n }));\n}\n\nfunction assertUnreachable(object: never): never {\n throw new Error(`Unexpected slate object ${object}`);\n}\n"],"names":["Contentful.BLOCKS","flatMap","convertNode","assertUnreachable"],"mappings":"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"} |
@@ -8,19 +8,28 @@ "use strict"; | ||
| var contentful = require("./contentful-helpers"); | ||
| describe('toSlatejsDocument', function () { | ||
| var testFactory = function (message, contentfulDoc, expected) { | ||
| it(message, function () { | ||
| var actualSlateDoc = contentful_to_slatejs_adapter_1.default(contentfulDoc); | ||
| expect(actualSlateDoc).toEqual(expected); | ||
| var actualContentfulDoc = slatejs_to_contentful_adapter_1.default(actualSlateDoc); | ||
| expect(actualContentfulDoc).toEqual(contentfulDoc); | ||
| describe('adapters', function () { | ||
| var testAdapters = function (message, contentfulDoc, slateDoc) { | ||
| describe('toSlatejsDocument()', function () { | ||
| it(message, function () { | ||
| var actualSlateDoc = contentful_to_slatejs_adapter_1.default({ | ||
| document: contentfulDoc, | ||
| schema: { blocks: { voidnode: { isVoid: true } } }, | ||
| }); | ||
| expect(actualSlateDoc).toEqual(slateDoc); | ||
| }); | ||
| }); | ||
| describe('toContentfulDocument()', function () { | ||
| it(message, function () { | ||
| var actualContentfulDoc = slatejs_to_contentful_adapter_1.default(slateDoc); | ||
| expect(actualContentfulDoc).toEqual(contentfulDoc); | ||
| }); | ||
| }); | ||
| }; | ||
| describe('document', function () { | ||
| testFactory('empty document', contentful.document(), slate.document()); | ||
| testFactory('document with block', contentful.document(contentful.block('paragraph', contentful.text(''))), slate.document(slate.block('paragraph', slate.text(slate.leaf(''))))); | ||
| testFactory('paragraph with inline', contentful.document(contentful.block('paragraph', contentful.inline('hyperlink'))), slate.document(slate.block('paragraph', slate.inline('hyperlink')))); | ||
| testFactory('paragraph with text', contentful.document(contentful.block('paragraph', contentful.text('hi'))), slate.document(slate.block('paragraph', slate.text(slate.leaf('hi'))))); | ||
| testFactory('text with marks', contentful.document(contentful.block('paragraph', contentful.text('this'), contentful.text('is', contentful.mark('bold')))), slate.document(slate.block('paragraph', slate.text(slate.leaf('this')), slate.text(slate.leaf('is', contentful.mark('bold')))))); | ||
| testAdapters('empty document', contentful.document(), slate.document()); | ||
| testAdapters('document with block', contentful.document(contentful.block('paragraph', contentful.text(''))), slate.document(slate.block('paragraph', false, slate.text(slate.leaf(''))))); | ||
| testAdapters('paragraph with inline', contentful.document(contentful.block('paragraph', contentful.inline('hyperlink'))), slate.document(slate.block('paragraph', false, slate.inline('hyperlink', false)))); | ||
| testAdapters('paragraph with text', contentful.document(contentful.block('paragraph', contentful.text('hi'))), slate.document(slate.block('paragraph', false, slate.text(slate.leaf('hi'))))); | ||
| testAdapters('text with marks', contentful.document(contentful.block('paragraph', contentful.text('this'), contentful.text('is', contentful.mark('bold')))), slate.document(slate.block('paragraph', false, slate.text(slate.leaf('this')), slate.text(slate.leaf('is', contentful.mark('bold')))))); | ||
| it('adds a default value to marks if undefined', function () { | ||
| var slateDoc = slate.document(slate.block('paragraph', slate.text({ marks: undefined, object: 'leaf', text: 'Hi' }))); | ||
| var slateDoc = slate.document(slate.block('paragraph', false, slate.text({ marks: undefined, object: 'leaf', text: 'Hi' }))); | ||
| var ctflDoc = slatejs_to_contentful_adapter_1.default(slateDoc); | ||
@@ -34,7 +43,7 @@ expect(ctflDoc).toEqual(contentful.document(contentful.block('paragraph', { | ||
| }); | ||
| testFactory('text with multiple marks', contentful.document(contentful.block('paragraph', contentful.text('this'), contentful.text('is', contentful.mark('bold')), contentful.text('huge', contentful.mark('bold'), contentful.mark('italic')))), slate.document(slate.block('paragraph', slate.text(slate.leaf('this')), slate.text(slate.leaf('is', slate.mark('bold'))), slate.text(slate.leaf('huge', slate.mark('bold'), slate.mark('italic')))))); | ||
| testFactory('document with nested blocks', contentful.document(contentful.block('paragraph', contentful.text('this is a test', contentful.mark('bold')), contentful.text('paragraph', contentful.mark('underline'))), contentful.block('block', contentful.block('block', contentful.text('this is it')))), slate.document(slate.block('paragraph', slate.text(slate.leaf('this is a test', slate.mark('bold'))), slate.text(slate.leaf('paragraph', slate.mark('underline')))), slate.block('block', slate.block('block', slate.text(slate.leaf('this is it')))))); | ||
| testAdapters('text with multiple marks', contentful.document(contentful.block('paragraph', contentful.text('this'), contentful.text('is', contentful.mark('bold')), contentful.text('huge', contentful.mark('bold'), contentful.mark('italic')))), slate.document(slate.block('paragraph', false, slate.text(slate.leaf('this')), slate.text(slate.leaf('is', slate.mark('bold'))), slate.text(slate.leaf('huge', slate.mark('bold'), slate.mark('italic')))))); | ||
| testAdapters('document with nested blocks', contentful.document(contentful.block('paragraph', contentful.text('this is a test', contentful.mark('bold')), contentful.text('paragraph', contentful.mark('underline'))), contentful.block('block', contentful.block('block', contentful.text('this is it')))), slate.document(slate.block('paragraph', false, slate.text(slate.leaf('this is a test', slate.mark('bold'))), slate.text(slate.leaf('paragraph', slate.mark('underline')))), slate.block('block', false, slate.block('block', false, slate.text(slate.leaf('this is it')))))); | ||
| }); | ||
| describe('converts additional data', function () { | ||
| testFactory('data in block', { | ||
| testAdapters('data in block', { | ||
| nodeClass: 'document', | ||
@@ -56,2 +65,3 @@ nodeType: Contentful.BLOCKS.DOCUMENT, | ||
| type: 'paragraph', | ||
| isVoid: false, | ||
| data: { a: 1 }, | ||
@@ -62,3 +72,3 @@ nodes: [], | ||
| }); | ||
| testFactory('data in inline', { | ||
| testAdapters('data in inline', { | ||
| nodeClass: 'document', | ||
@@ -87,2 +97,3 @@ nodeType: Contentful.BLOCKS.DOCUMENT, | ||
| type: 'paragraph', | ||
| isVoid: false, | ||
| data: { a: 1 }, | ||
@@ -93,2 +104,3 @@ nodes: [ | ||
| type: 'hyperlink', | ||
| isVoid: false, | ||
| data: { | ||
@@ -103,3 +115,3 @@ a: 2, | ||
| }); | ||
| testFactory('data in text', { | ||
| testAdapters('data in text', { | ||
| nodeClass: 'document', | ||
@@ -135,2 +147,3 @@ nodeType: Contentful.BLOCKS.DOCUMENT, | ||
| type: 'paragraph', | ||
| isVoid: false, | ||
| data: { a: 1 }, | ||
@@ -141,2 +154,3 @@ nodes: [ | ||
| type: 'hyperlink', | ||
| isVoid: false, | ||
| data: { | ||
@@ -163,3 +177,28 @@ a: 2, | ||
| }); | ||
| describe('sets isVoid from schema', function () { | ||
| testAdapters('data in block', { | ||
| nodeClass: 'document', | ||
| nodeType: Contentful.BLOCKS.DOCUMENT, | ||
| content: [ | ||
| { | ||
| nodeClass: 'block', | ||
| nodeType: 'voidnode', | ||
| content: [], | ||
| data: { a: 1 }, | ||
| }, | ||
| ], | ||
| }, { | ||
| object: 'document', | ||
| nodes: [ | ||
| { | ||
| object: 'block', | ||
| type: 'voidnode', | ||
| isVoid: true, | ||
| data: { a: 1 }, | ||
| nodes: [], | ||
| }, | ||
| ], | ||
| }); | ||
| }); | ||
| }); | ||
| //# sourceMappingURL=contentful-to-slatejs-adapter.test.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"contentful-to-slatejs-adapter.test.js","sourceRoot":"","sources":["../../../src/__test__/contentful-to-slatejs-adapter.test.ts"],"names":[],"mappings":";;AAAA,kFAAiE;AACjE,kFAAoE;AACpE,8DAAgE;AAEhE,uCAAyC;AACzC,iDAAmD;AAEnD,QAAQ,CAAC,mBAAmB,EAAE;IAC5B,IAAM,WAAW,GAAG,UAClB,OAAe,EACf,aAAkC,EAClC,QAAwB;QAExB,EAAE,CAAC,OAAO,EAAE;YACV,IAAM,cAAc,GAAG,uCAAiB,CAAC,aAAa,CAAC,CAAC;YACxD,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAM,mBAAmB,GAAG,uCAAoB,CAAC,cAAc,CAAC,CAAC;YACjE,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,QAAQ,CAAC,UAAU,EAAE;QACnB,WAAW,CAAC,gBAAgB,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEvE,WAAW,CACT,qBAAqB,EACrB,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EACvE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACrE,CAAC;QAEF,WAAW,CACT,uBAAuB,EACvB,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAClF,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CACpE,CAAC;QAEF,WAAW,CACT,qBAAqB,EACrB,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EACzE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACvE,CAAC;QAEF,WAAW,CACT,iBAAiB,EACjB,UAAU,CAAC,QAAQ,CACjB,UAAU,CAAC,KAAK,CACd,WAAW,EACX,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EACvB,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAC/C,CACF,EACD,KAAK,CAAC,QAAQ,CACZ,KAAK,CAAC,KAAK,CACT,WAAW,EACX,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACtD,CACF,CACF,CAAC;QAEF,EAAE,CAAC,4CAA4C,EAAE;YAC/C,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAC7B,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CACvF,CAAC;YACF,IAAM,OAAO,GAAG,uCAAoB,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CACrB,UAAU,CAAC,QAAQ,CACjB,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC5B,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,MAAM;gBACjB,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,IAAI;aACZ,CAAC,CACH,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,WAAW,CACT,0BAA0B,EAC1B,UAAU,CAAC,QAAQ,CACjB,UAAU,CAAC,KAAK,CACd,WAAW,EACX,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EACvB,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC9C,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAC5E,CACF,EACD,KAAK,CAAC,QAAQ,CACZ,KAAK,CAAC,KAAK,CACT,WAAW,EACX,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAChD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACzE,CACF,CACF,CAAC;QAEF,WAAW,CACT,6BAA6B,EAC7B,UAAU,CAAC,QAAQ,CACjB,UAAU,CAAC,KAAK,CACd,WAAW,EACX,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC1D,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAC3D,EACD,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CACpF,EACD,KAAK,CAAC,QAAQ,CACZ,KAAK,CAAC,KAAK,CACT,WAAW,EACX,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAC5D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAC7D,EACD,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CACjF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE;QACnC,WAAW,CACT,eAAe,EACf;YACE,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ;YACpC,OAAO,EAAE;gBACP;oBACE,SAAS,EAAE,OAAO;oBAClB,QAAQ,EAAE,WAAW;oBACrB,OAAO,EAAE,EAAE;oBACX,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;iBACf;aACF;SACF,EACD;YACE,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE;gBACL;oBACE,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;oBACd,KAAK,EAAE,EAAE;iBACV;aACF;SACF,CACF,CAAC;QAEF,WAAW,CACT,gBAAgB,EAChB;YACE,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ;YACpC,OAAO,EAAE;gBACP;oBACE,SAAS,EAAE,OAAO;oBAClB,QAAQ,EAAE,WAAW;oBACrB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;oBACd,OAAO,EAAE;wBACP;4BACE,SAAS,EAAE,QAAQ;4BACnB,QAAQ,EAAE,WAAW;4BACrB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;4BACd,OAAO,EAAE,EAAE;yBACZ;qBACF;iBACF;aACF;SACF,EACD;YACE,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE;gBACL;oBACE,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;oBACd,KAAK,EAAE;wBACL;4BACE,MAAM,EAAE,QAAQ;4BAChB,IAAI,EAAE,WAAW;4BACjB,IAAI,EAAE;gCACJ,CAAC,EAAE,CAAC;6BACL;4BACD,KAAK,EAAE,EAAE;yBACV;qBACF;iBACF;aACF;SACF,CACF,CAAC;QAEF,WAAW,CACT,cAAc,EACd;YACE,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ;YACpC,OAAO,EAAE;gBACP;oBACE,SAAS,EAAE,OAAO;oBAClB,QAAQ,EAAE,WAAW;oBACrB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;oBACd,OAAO,EAAE;wBACP;4BACE,SAAS,EAAE,QAAQ;4BACnB,QAAQ,EAAE,WAAW;4BACrB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;4BACd,OAAO,EAAE,EAAE;yBACZ;wBACD;4BACE,SAAS,EAAE,MAAM;4BACjB,QAAQ,EAAE,MAAM;4BAChB,KAAK,EAAE,EAAE;4BACT,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;4BACd,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF;aACF;SACF,EACD;YACE,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE;gBACL;oBACE,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;oBACd,KAAK,EAAE;wBACL;4BACE,MAAM,EAAE,QAAQ;4BAChB,IAAI,EAAE,WAAW;4BACjB,IAAI,EAAE;gCACJ,CAAC,EAAE,CAAC;6BACL;4BACD,KAAK,EAAE,EAAE;yBACV;wBACD;4BACE,MAAM,EAAE,MAAM;4BACd,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;4BACd,MAAM,EAAE;gCACN;oCACE,MAAM,EAAE,MAAM;oCACd,KAAK,EAAE,EAAE;oCACT,IAAI,EAAE,IAAI;iCACX;6BACF;yBACF;qBACF;iBACF;aACF;SACF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} | ||
| {"version":3,"file":"contentful-to-slatejs-adapter.test.js","sourceRoot":"","sources":["../../../src/__test__/contentful-to-slatejs-adapter.test.ts"],"names":[],"mappings":"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"} |
@@ -14,9 +14,10 @@ "use strict"; | ||
| exports.document = document; | ||
| function block(type) { | ||
| function block(type, isVoid) { | ||
| var nodes = []; | ||
| for (var _i = 1; _i < arguments.length; _i++) { | ||
| nodes[_i - 1] = arguments[_i]; | ||
| for (var _i = 2; _i < arguments.length; _i++) { | ||
| nodes[_i - 2] = arguments[_i]; | ||
| } | ||
| return { | ||
| object: 'block', | ||
| isVoid: isVoid, | ||
| type: type, | ||
@@ -27,9 +28,10 @@ nodes: nodes, | ||
| exports.block = block; | ||
| function inline(type) { | ||
| function inline(type, isVoid) { | ||
| var nodes = []; | ||
| for (var _i = 1; _i < arguments.length; _i++) { | ||
| nodes[_i - 1] = arguments[_i]; | ||
| for (var _i = 2; _i < arguments.length; _i++) { | ||
| nodes[_i - 2] = arguments[_i]; | ||
| } | ||
| return { | ||
| object: 'inline', | ||
| isVoid: isVoid, | ||
| type: type, | ||
@@ -36,0 +38,0 @@ nodes: nodes, |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"slate-helpers.js","sourceRoot":"","sources":["../../../src/__test__/slate-helpers.ts"],"names":[],"mappings":";;AAAA;IAAyB,eAAuB;SAAvB,UAAuB,EAAvB,qBAAuB,EAAvB,IAAuB;QAAvB,0BAAuB;;IAC9C,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AALD,4BAKC;AAED,eACE,IAAY;IACZ,eAAwD;SAAxD,UAAwD,EAAxD,qBAAwD,EAAxD,IAAwD;QAAxD,8BAAwD;;IAExD,OAAO;QACL,MAAM,EAAE,OAAO;QACf,IAAI,MAAA;QACJ,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AATD,sBASC;AAED,gBAAuB,IAAY;IAAE,eAA0C;SAA1C,UAA0C,EAA1C,qBAA0C,EAA1C,IAA0C;QAA1C,8BAA0C;;IAC7E,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,IAAI,MAAA;QACJ,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAND,wBAMC;AAED;IAAqB,gBAA2B;SAA3B,UAA2B,EAA3B,qBAA2B,EAA3B,IAA2B;QAA3B,2BAA2B;;IAC9C,OAAO;QACL,MAAM,EAAE,MAAM;QACd,MAAM,QAAA;KACP,CAAC;AACJ,CAAC;AALD,oBAKC;AAED,cAAqB,KAAa;IAAE,eAAsB;SAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;QAAtB,8BAAsB;;IACxD,OAAO;QACL,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,KAAK;QACX,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAND,oBAMC;AAED,cAAqB,IAAY;IAC/B,OAAO;QACL,IAAI,MAAA;KACL,CAAC;AACJ,CAAC;AAJD,oBAIC"} | ||
| {"version":3,"file":"slate-helpers.js","sourceRoot":"","sources":["../../../src/__test__/slate-helpers.ts"],"names":[],"mappings":";;AAAA;IAAyB,eAAuB;SAAvB,UAAuB,EAAvB,qBAAuB,EAAvB,IAAuB;QAAvB,0BAAuB;;IAC9C,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AALD,4BAKC;AAED,eACE,IAAY,EACZ,MAAa;IACb,eAAwD;SAAxD,UAAwD,EAAxD,qBAAwD,EAAxD,IAAwD;QAAxD,8BAAwD;;IAExD,OAAO;QACL,MAAM,EAAE,OAAO;QACf,MAAM,QAAA;QACN,IAAI,MAAA;QACJ,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAXD,sBAWC;AAED,gBACE,IAAY,EACZ,MAAa;IACb,eAA0C;SAA1C,UAA0C,EAA1C,qBAA0C,EAA1C,IAA0C;QAA1C,8BAA0C;;IAE1C,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,MAAM,QAAA;QACN,IAAI,MAAA;QACJ,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAXD,wBAWC;AAED;IAAqB,gBAA2B;SAA3B,UAA2B,EAA3B,qBAA2B,EAA3B,IAA2B;QAA3B,2BAA2B;;IAC9C,OAAO;QACL,MAAM,EAAE,MAAM;QACd,MAAM,QAAA;KACP,CAAC;AACJ,CAAC;AALD,oBAKC;AAED,cAAqB,KAAa;IAAE,eAAsB;SAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;QAAtB,8BAAsB;;IACxD,OAAO;QACL,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,KAAK;QACX,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAND,oBAMC;AAED,cAAqB,IAAY;IAC/B,OAAO;QACL,IAAI,MAAA;KACL,CAAC;AACJ,CAAC;AAJD,oBAIC"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var lodash_flatmap_1 = require("lodash.flatmap"); | ||
| function toSlatejsDocument(ctfDocument) { | ||
| var lodash_get_1 = require("lodash.get"); | ||
| function toSlatejsDocument(_a) { | ||
| var document = _a.document, _b = _a.schema, schema = _b === void 0 ? {} : _b; | ||
| return { | ||
| object: 'document', | ||
| nodes: lodash_flatmap_1.default(ctfDocument.content, function (node) { return convertNode(node); }), | ||
| nodes: lodash_flatmap_1.default(document.content, function (node) { return convertNode(node, schema); }), | ||
| }; | ||
| } | ||
| exports.default = toSlatejsDocument; | ||
| function convertNode(node) { | ||
| // COMPAT: fixes the issue with void inline blocks in slate < v0.40 | ||
| function getIsVoidValue(node, schema) { | ||
| var root = node.nodeClass === 'block' ? 'blocks' : 'inlines'; | ||
| return lodash_get_1.default(schema, [root, node.nodeType, 'isVoid'], false); | ||
| } | ||
| function convertNode(node, schema) { | ||
| var nodes = []; | ||
@@ -17,3 +24,5 @@ switch (node.nodeClass) { | ||
| var contentfulBlock = node; | ||
| var childNodes = lodash_flatmap_1.default(contentfulBlock.content, convertNode); | ||
| var childNodes = lodash_flatmap_1.default(contentfulBlock.content, function (childNode) { | ||
| return convertNode(childNode, schema); | ||
| }); | ||
| var slateBlock = { | ||
@@ -23,2 +32,3 @@ object: contentfulBlock.nodeClass, | ||
| nodes: childNodes, | ||
| isVoid: getIsVoidValue(contentfulBlock, schema), | ||
| data: contentfulBlock.data, | ||
@@ -25,0 +35,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"contentful-to-slatejs-adapter.js","sourceRoot":"","sources":["../../src/contentful-to-slatejs-adapter.ts"],"names":[],"mappings":";;AAAA,iDAAqC;AAKrC,2BAA0C,WAAgC;IACxE,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,wBAAO,CAAC,WAAW,CAAC,OAAO,EAAE,UAAA,IAAI,IAAI,OAAA,WAAW,CAAC,IAAI,CAAC,EAAjB,CAAiB,CAAkB;KAChF,CAAC;AACJ,CAAC;AALD,oCAKC;AAED,qBAAqB,IAAoB;IACvC,IAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,QAAQ,IAAI,CAAC,SAAS,EAAE;QACtB,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,IAAM,eAAe,GAAG,IAAwB,CAAC;YACjD,IAAM,UAAU,GAAG,wBAAO,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAEjE,IAAM,UAAU,GAAgB;gBAC9B,MAAM,EAAE,eAAe,CAAC,SAAS;gBACjC,IAAI,EAAE,eAAe,CAAC,QAAQ;gBAC9B,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,eAAe,CAAC,IAAI;aAC3B,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvB,MAAM;QACR,KAAK,MAAM;YACH,IAAA,SAAgD,EAA9C,gBAAK,EAAE,gBAAK,EAAE,cAAI,CAA6B;YAEvD,IAAM,SAAS,GAAe;gBAC5B,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE;oBACN;wBACE,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,KAAK;wBACX,KAAK,OAAA;qBACN;iBACF;gBACD,IAAI,MAAA;aACL,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM;QACR;YACE,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM;KACT;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2BAA2B,MAAa;IACtC,MAAM,IAAI,KAAK,CAAC,kCAAgC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAG,CAAC,CAAC;AAC5E,CAAC"} | ||
| {"version":3,"file":"contentful-to-slatejs-adapter.js","sourceRoot":"","sources":["../../src/contentful-to-slatejs-adapter.ts"],"names":[],"mappings":";;AAAA,iDAAqC;AAErC,yCAA6B;AAkB7B,2BAA0C,EAGZ;QAF5B,sBAAQ,EACR,cAAW,EAAX,gCAAW;IAEX,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,wBAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAA,IAAI,IAAI,OAAA,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAzB,CAAyB,CAAkB;KACrF,CAAC;AACJ,CAAC;AARD,oCAQC;AAED,mEAAmE;AACnE,wBAAwB,IAA0C,EAAE,MAAc;IAChF,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,OAAO,oBAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,QAAkB,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,qBAAqB,IAAoB,EAAE,MAAc;IACvD,IAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,QAAQ,IAAI,CAAC,SAAS,EAAE;QACtB,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,IAAM,eAAe,GAAG,IAAwB,CAAC;YACjD,IAAM,UAAU,GAAG,wBAAO,CAAC,eAAe,CAAC,OAAO,EAAE,UAAA,SAAS;gBAC3D,OAAA,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC;YAA9B,CAA8B,CAC/B,CAAC;YAEF,IAAM,UAAU,GAAgB;gBAC9B,MAAM,EAAE,eAAe,CAAC,SAAS;gBACjC,IAAI,EAAE,eAAe,CAAC,QAAQ;gBAC9B,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC;gBAC/C,IAAI,EAAE,eAAe,CAAC,IAAI;aAC3B,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvB,MAAM;QACR,KAAK,MAAM;YACH,IAAA,SAAgD,EAA9C,gBAAK,EAAE,gBAAK,EAAE,cAAI,CAA6B;YAEvD,IAAM,SAAS,GAAe;gBAC5B,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE;oBACN;wBACE,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,KAAK;wBACX,KAAK,OAAA;qBACN;iBACF;gBACD,IAAI,MAAA;aACL,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM;QACR;YACE,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM;KACT;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2BAA2B,MAAa;IACtC,MAAM,IAAI,KAAK,CAAC,kCAAgC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAG,CAAC,CAAC;AAC5E,CAAC"} |
| export declare function document(...nodes: Slate.Block[]): Slate.Document; | ||
| export declare function block(type: string, ...nodes: Array<Slate.Block | Slate.Inline | Slate.Text>): Slate.Block; | ||
| export declare function inline(type: string, ...nodes: Array<Slate.Inline | Slate.Text>): Slate.Inline; | ||
| export declare function block(type: string, isVoid: false, ...nodes: Array<Slate.Block | Slate.Inline | Slate.Text>): Slate.Block; | ||
| export declare function inline(type: string, isVoid: false, ...nodes: Array<Slate.Inline | Slate.Text>): Slate.Inline; | ||
| export declare function text(...leaves: Slate.TextLeaf[]): Slate.Text; | ||
| export declare function leaf(value: string, ...marks: Slate.Mark[]): Slate.TextLeaf; | ||
| export declare function mark(type: string): Slate.Mark; |
| import * as Contentful from '@contentful/structured-text-types'; | ||
| export default function toSlatejsDocument(ctfDocument: Contentful.Document): Slate.Document; | ||
| export interface SchemaValue { | ||
| isVoid?: boolean; | ||
| [k: string]: any; | ||
| } | ||
| export interface Schema { | ||
| blocks?: Record<string, SchemaValue>; | ||
| inlines?: Record<string, SchemaValue>; | ||
| } | ||
| export interface ToSlatejsDocumentProperties { | ||
| document: Contentful.Document; | ||
| schema?: Schema; | ||
| } | ||
| export default function toSlatejsDocument({ document, schema, }: ToSlatejsDocumentProperties): Slate.Document; |
@@ -6,2 +6,3 @@ declare namespace Slate { | ||
| data?: object; | ||
| isVoid?: boolean; | ||
| } | ||
@@ -8,0 +9,0 @@ interface Document extends Node { |
+3
-1
| { | ||
| "name": "@contentful/contentful-slatejs-adapter", | ||
| "version": "2.1.0", | ||
| "version": "3.0.0", | ||
| "description": "", | ||
@@ -86,2 +86,3 @@ "keywords": [], | ||
| "@types/lodash.flatmap": "^4.5.3", | ||
| "@types/lodash.get": "^4.4.4", | ||
| "@types/lodash.omit": "^4.5.3", | ||
@@ -125,4 +126,5 @@ "@types/node": "^10.0.3", | ||
| "lodash.flatmap": "^4.5.0", | ||
| "lodash.get": "^4.4.2", | ||
| "lodash.omit": "^4.5.0" | ||
| } | ||
| } |
48321
12.72%611
13.78%4
33.33%34
3.03%+ Added
+ Added