contentful-migration
Version:
Migration tooling for contentful
41 lines • 1.55 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const __1 = require("../");
const errors_1 = __importDefault(require("./errors"));
const isDisplayFieldAndHasBeenDeleted = function (field, displayField) {
return field.id === displayField && field.deleted;
};
const fieldIsDisplayField = function (field, displayField) {
return field.id === displayField;
};
class DisplayFieldValidator {
constructor() {
this.hooks = [__1.ApiHook.SaveContentType];
}
validate({ contentType }) {
const errors = [];
const displayField = contentType.displayField;
if (!displayField) {
return errors;
}
const fields = contentType.fields.toRaw();
if (!fields.some((field) => fieldIsDisplayField(field, displayField))) {
errors.push({
type: 'InvalidAction',
message: errors_1.default.contentType.NON_EXISTENT_DISPLAY_FIELD(displayField, contentType.id)
});
}
if (fields.some((field) => isDisplayFieldAndHasBeenDeleted(field, displayField))) {
errors.push({
type: 'InvalidAction',
message: errors_1.default.contentType.DELETE_DISPLAY_FIELD(displayField, contentType.id)
});
}
return errors;
}
}
exports.default = DisplayFieldValidator;
//# sourceMappingURL=display-field.js.map