@kontent-ai/gatsby-source
Version:
Source plugin providing Kontent.ai data from REST Delivery API
39 lines • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.kontentTypesSourceNodes = void 0;
const naming_1 = require("./naming");
const client_1 = require("./client");
const getKontentTypeArtifact = (api, kontentType, includeRawContent) => {
const nodeIdString = (0, naming_1.getKontentTypeNodeStringForCodeName)(kontentType.system.codename);
const nodeData = {
...kontentType,
id: api.createNodeId(nodeIdString),
children: [],
internal: {
type: (0, naming_1.getKontentTypeTypeName)(),
contentDigest: api.createContentDigest(kontentType),
},
};
if (includeRawContent) {
nodeData.internal.content = JSON.stringify(kontentType);
}
return nodeData;
};
const transformElementObjectToArray = (types) => {
types.forEach(type => {
type.elements = Object.keys(type.elements).map((key) => {
type.elements[key].codename = key;
return type.elements[key];
});
});
};
const sourceNodes = async (api, options) => {
const kontentTypes = await (0, client_1.loadAllKontentTypesCached)(options, api.cache);
transformElementObjectToArray(kontentTypes);
for (const kontentType of kontentTypes) {
const nodeData = getKontentTypeArtifact(api, kontentType, options.includeRawContent);
api.actions.createNode(nodeData);
}
};
exports.kontentTypesSourceNodes = sourceNodes;
//# sourceMappingURL=sourceNodes.types.js.map