@itxch/contentful-import
Version:
This tool allows you to import JSON dump exported by contentful-export
31 lines (30 loc) • 1.13 kB
JavaScript
import { defaults, omit } from "lodash-es/object.js";
import * as transformers from "./transformers.js";
import sortEntries from "../utils/sort-entries.js";
import sortLocales from "../utils/sort-locales.js";
const spaceEntities = [
"contentTypes",
"entries",
"assets",
"locales",
"webhooks",
"tags"
];
function transformSpace(sourceData, destinationData, customTransformers, entities = spaceEntities) {
const transformers$1 = defaults(customTransformers, transformers);
const baseSpaceData = 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);
}
export {
transformSpace as default
};