UNPKG

@kontent-ai/gatsby-source

Version:
63 lines 2.95 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getKontentItemLanguageVariantArtifact = exports.alterRichTextElements = exports.addPreferredLanguageProperty = exports.kontentItemsSourceNodes = void 0; const client_1 = require("./client"); const naming_1 = require("./naming"); const lodash_1 = __importDefault(require("lodash")); const addPreferredLanguageProperty = (items, language) => { for (const item of items) { item[naming_1.PREFERRED_LANGUAGE_IDENTIFIER] = language; } return items; }; exports.addPreferredLanguageProperty = addPreferredLanguageProperty; const alterRichTextElements = (items) => { const richTextElements = lodash_1.default.flatMap(items, item => Object.values(item.elements)).filter((element) => element.type === 'rich_text'); for (const element of richTextElements) { element.links = Object.keys(element.links).map((key) => { element.links[key]['link_id'] = key; return element.links[key]; }); element.images = Object.keys(element.images).map(key => { // key is stored in image_id return element.images[key]; }); } }; exports.alterRichTextElements = alterRichTextElements; const getKontentItemLanguageVariantArtifact = (api, kontentItem, includeRawContent) => { const nodeIdString = (0, naming_1.getKontentItemNodeStringForId)(kontentItem.system.id, kontentItem[naming_1.PREFERRED_LANGUAGE_IDENTIFIER]); const nodeData = { ...kontentItem, id: api.createNodeId(nodeIdString), children: [], internal: { type: (0, naming_1.getKontentItemNodeTypeName)(kontentItem.system.type), contentDigest: api.createContentDigest(kontentItem), }, }; if (includeRawContent) { nodeData.internal.content = JSON.stringify(kontentItem); } return nodeData; }; exports.getKontentItemLanguageVariantArtifact = getKontentItemLanguageVariantArtifact; const sourceNodes = async (api, options) => { const kontentItemTypes = new Set(); for (const language of options.languageCodenames) { const kontentItems = await (0, client_1.loadAllKontentItems)(options, language); addPreferredLanguageProperty(kontentItems, language); alterRichTextElements(kontentItems); for (const kontentItem of kontentItems) { const nodeData = getKontentItemLanguageVariantArtifact(api, kontentItem, options.includeRawContent); kontentItemTypes.add(nodeData.internal.type); api.actions.createNode(nodeData); } } return Array.from(kontentItemTypes); }; exports.kontentItemsSourceNodes = sourceNodes; //# sourceMappingURL=sourceNodes.items.js.map