@itxch/contentful-import
Version:
This tool allows you to import JSON dump exported by contentful-export
30 lines (29 loc) • 1.14 kB
JavaScript
;
const _o = require("lodash-es/object.js");
const transformers = require("./transformers.cjs");
const sortEntries = require("../utils/sort-entries.cjs");
const sortLocales = require("../utils/sort-locales.cjs");
const spaceEntities = [
"contentTypes",
"entries",
"assets",
"locales",
"webhooks",
"tags"
];
function transformSpace(sourceData, destinationData, customTransformers, entities = spaceEntities) {
const transformers$1 = _o.defaults(customTransformers, transformers);
const baseSpaceData = _o.omit(sourceData, ...entities);
sourceData.locales = sortLocales(sourceData.locales);
const tagsEnabled = !!destinationData.tags;
return entities.reduce((transformedSpaceData, type) => {
const sortedEntities = type === "tags" ? sourceData[type] : sortEntries(sourceData[type]);
const transformedEntities = sortedEntities.map((entity) => ({
original: entity,
transformed: transformers$1[type](entity, destinationData[type], tagsEnabled)
}));
transformedSpaceData[type] = transformedEntities;
return transformedSpaceData;
}, baseSpaceData);
}
module.exports = transformSpace;