contentful-migration
Version:
Migration tooling for contentful
48 lines • 2.17 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateIntents = exports.default = exports.invalidActionError = void 0;
const content_type_1 = __importDefault(require("./content-type"));
const tag_1 = __importDefault(require("./tag"));
const field_1 = __importDefault(require("./field"));
const editor_layout_1 = __importDefault(require("./editor-layout"));
const duplicate_props_1 = __importDefault(require("./duplicate-props"));
const content_type_2 = require("../../entities/content-type");
const invalidActionError = (message, intent) => {
return {
type: 'InvalidAction',
message: message,
details: { intent }
};
};
exports.invalidActionError = invalidActionError;
function validateIntents(intentList, contentTypes, editorInterfaces, tags) {
const intents = intentList.getIntents();
const ctErrors = (0, content_type_1.default)(intents, contentTypes);
if (ctErrors.length > 0) {
return ctErrors;
}
const createCTs = intents.filter((intent) => intent.isContentTypeCreate());
const createdIds = createCTs.map((createIntent) => createIntent.getContentTypeId());
const createdCTs = createdIds.map((id) => new content_type_2.ContentType({ sys: { id, version: 0 }, name: undefined, fields: [] }));
const allCTs = contentTypes.concat(createdCTs);
let { errors: fieldErrors, fieldsContext } = (0, field_1.default)(intents, allCTs);
fieldErrors = fieldErrors.concat((0, duplicate_props_1.default)(intentList));
if (fieldErrors.length > 0) {
return fieldErrors;
}
let editorLayoutErrors = (0, editor_layout_1.default)(intents, editorInterfaces, fieldsContext, allCTs);
if (editorLayoutErrors.length > 0) {
return editorLayoutErrors;
}
const tagErrors = (0, tag_1.default)(intents, tags);
if (tagErrors.length > 0) {
return tagErrors;
}
return [];
}
exports.default = validateIntents;
exports.validateIntents = validateIntents;
//# sourceMappingURL=index.js.map