UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

146 lines (145 loc) • 13.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _schema = /*#__PURE__*/ _interop_require_default(require("../collections/config/schema")); const _schema1 = /*#__PURE__*/ _interop_require_wildcard(require("../fields/config/schema")); const _types = require("../fields/config/types"); const _schema2 = /*#__PURE__*/ _interop_require_default(require("../globals/config/schema")); const _schema3 = /*#__PURE__*/ _interop_require_default(require("./schema")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for(var key in obj){ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } const validateFields = (context, entity)=>{ const errors = []; entity.fields.forEach((field)=>{ let idResult = { error: null }; if ((0, _types.fieldAffectsData)(field) && field.name === 'id') { idResult = _schema1.idField.validate(field, { abortEarly: false }); } const result = _schema1.default.validate(field, { abortEarly: false }); if (idResult.error) { idResult.error.details.forEach(({ message })=>{ errors.push(`${context} "${entity.slug}" > Field${(0, _types.fieldAffectsData)(field) ? ` "${field.name}" >` : ''} ${message}`); }); } if (result.error) { result.error.details.forEach(({ message })=>{ errors.push(`${context} "${entity.slug}" > Field${(0, _types.fieldAffectsData)(field) ? ` "${field.name}" >` : ''} ${message}`); }); } }); return errors; }; const validateCollections = async (collections)=>{ const errors = []; collections.forEach((collection)=>{ const result = _schema.default.validate(collection, { abortEarly: false }); if (result.error) { result.error.details.forEach(({ message })=>{ errors.push(`Collection "${collection.slug}" > ${message}`); }); } errors.push(...validateFields('Collection', collection)); }); return errors; }; const validateGlobals = (globals)=>{ const errors = []; globals.forEach((global)=>{ const result = _schema2.default.validate(global, { abortEarly: false }); if (result.error) { result.error.details.forEach(({ message })=>{ errors.push(`Globals "${global.slug}" > ${message}`); }); } errors.push(...validateFields('Global', global)); }); return errors; }; const validateSchema = async (config, logger)=>{ const result = _schema3.default.validate(config, { abortEarly: false }); const nestedErrors = [ ...await validateCollections(config.collections), ...validateGlobals(config.globals) ]; if (result.error || nestedErrors.length > 0) { logger.error(`There were ${(result.error?.details?.length || 0) + nestedErrors.length} errors validating your Payload config`); let i = 0; if (result.error) { result.error.details.forEach(({ message })=>{ i += 1; logger.error(`${i}: ${message}`); }); } nestedErrors.forEach((message)=>{ i += 1; logger.error(`${i}: ${message}`); }); process.exit(1); } return result.value; }; const _default = validateSchema; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdmFsaWRhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uUmVzdWx0IH0gZnJvbSAnam9pJ1xuaW1wb3J0IHR5cGUgeyBMb2dnZXIgfSBmcm9tICdwaW5vJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgY29sbGVjdGlvblNjaGVtYSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvc2NoZW1hJ1xuaW1wb3J0IGZpZWxkU2NoZW1hLCB7IGlkRmllbGQgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3NjaGVtYSdcbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGdsb2JhbFNjaGVtYSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy9zY2hlbWEnXG5pbXBvcnQgc2NoZW1hIGZyb20gJy4vc2NoZW1hJ1xuXG5jb25zdCB2YWxpZGF0ZUZpZWxkcyA9IChcbiAgY29udGV4dDogc3RyaW5nLFxuICBlbnRpdHk6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfCBTYW5pdGl6ZWRHbG9iYWxDb25maWcsXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXVxuICBlbnRpdHkuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgbGV0IGlkUmVzdWx0OiBQYXJ0aWFsPFZhbGlkYXRpb25SZXN1bHQ+ID0geyBlcnJvcjogbnVsbCB9XG4gICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpIHtcbiAgICAgIGlkUmVzdWx0ID0gaWRGaWVsZC52YWxpZGF0ZShmaWVsZCwgeyBhYm9ydEVhcmx5OiBmYWxzZSB9KVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGZpZWxkU2NoZW1hLnZhbGlkYXRlKGZpZWxkLCB7IGFib3J0RWFybHk6IGZhbHNlIH0pXG4gICAgaWYgKGlkUmVzdWx0LmVycm9yKSB7XG4gICAgICBpZFJlc3VsdC5lcnJvci5kZXRhaWxzLmZvckVhY2goKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAgIGAke2NvbnRleHR9IFwiJHtlbnRpdHkuc2x1Z31cIiA+IEZpZWxkJHtcbiAgICAgICAgICAgIGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpID8gYCBcIiR7ZmllbGQubmFtZX1cIiA+YCA6ICcnXG4gICAgICAgICAgfSAke21lc3NhZ2V9YCxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICAgYCR7Y29udGV4dH0gXCIke2VudGl0eS5zbHVnfVwiID4gRmllbGQke1xuICAgICAgICAgICAgZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgPyBgIFwiJHtmaWVsZC5uYW1lfVwiID5gIDogJydcbiAgICAgICAgICB9ICR7bWVzc2FnZX1gLFxuICAgICAgICApXG4gICAgICB9KVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIGVycm9yc1xufVxuXG5jb25zdCB2YWxpZGF0ZUNvbGxlY3Rpb25zID0gYXN5bmMgKGNvbGxlY3Rpb25zOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnW10pOiBQcm9taXNlPHN0cmluZ1tdPiA9PiB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXVxuICBjb2xsZWN0aW9ucy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gY29sbGVjdGlvblNjaGVtYS52YWxpZGF0ZShjb2xsZWN0aW9uLCB7IGFib3J0RWFybHk6IGZhbHNlIH0pXG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgZXJyb3JzLnB1c2goYENvbGxlY3Rpb24gXCIke2NvbGxlY3Rpb24uc2x1Z31cIiA+ICR7bWVzc2FnZX1gKVxuICAgICAgfSlcbiAgICB9XG4gICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVGaWVsZHMoJ0NvbGxlY3Rpb24nLCBjb2xsZWN0aW9uKSlcbiAgfSlcblxuICByZXR1cm4gZXJyb3JzXG59XG5cbmNvbnN0IHZhbGlkYXRlR2xvYmFscyA9IChnbG9iYWxzOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdbXSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdXG4gIGdsb2JhbHMuZm9yRWFjaCgoZ2xvYmFsKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2xvYmFsU2NoZW1hLnZhbGlkYXRlKGdsb2JhbCwgeyBhYm9ydEVhcmx5OiBmYWxzZSB9KVxuICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICAgIHJlc3VsdC5lcnJvci5kZXRhaWxzLmZvckVhY2goKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgIGVycm9ycy5wdXNoKGBHbG9iYWxzIFwiJHtnbG9iYWwuc2x1Z31cIiA+ICR7bWVzc2FnZX1gKVxuICAgICAgfSlcbiAgICB9XG4gICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVGaWVsZHMoJ0dsb2JhbCcsIGdsb2JhbCkpXG4gIH0pXG5cbiAgcmV0dXJuIGVycm9yc1xufVxuXG5jb25zdCB2YWxpZGF0ZVNjaGVtYSA9IGFzeW5jIChcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGxvZ2dlcjogTG9nZ2VyLFxuKTogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+ID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gc2NoZW1hLnZhbGlkYXRlKGNvbmZpZywge1xuICAgIGFib3J0RWFybHk6IGZhbHNlLFxuICB9KVxuXG4gIGNvbnN0IG5lc3RlZEVycm9ycyA9IFtcbiAgICAuLi4oYXdhaXQgdmFsaWRhdGVDb2xsZWN0aW9ucyhjb25maWcuY29sbGVjdGlvbnMpKSxcbiAgICAuLi52YWxpZGF0ZUdsb2JhbHMoY29uZmlnLmdsb2JhbHMpLFxuICBdXG5cbiAgaWYgKHJlc3VsdC5lcnJvciB8fCBuZXN0ZWRFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGxvZ2dlci5lcnJvcihcbiAgICAgIGBUaGVyZSB3ZXJlICR7XG4gICAgICAgIChyZXN1bHQuZXJyb3I/LmRldGFpbHM/Lmxlbmd0aCB8fCAwKSArIG5lc3RlZEVycm9ycy5sZW5ndGhcbiAgICAgIH0gZXJyb3JzIHZhbGlkYXRpbmcgeW91ciBQYXlsb2FkIGNvbmZpZ2AsXG4gICAgKVxuXG4gICAgbGV0IGkgPSAwXG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgaSArPSAxXG4gICAgICAgIGxvZ2dlci5lcnJvcihgJHtpfTogJHttZXNzYWdlfWApXG4gICAgICB9KVxuICAgIH1cbiAgICBuZXN0ZWRFcnJvcnMuZm9yRWFjaCgobWVzc2FnZSkgPT4ge1xuICAgICAgaSArPSAxXG4gICAgICBsb2dnZXIuZXJyb3IoYCR7aX06ICR7bWVzc2FnZX1gKVxuICAgIH0pXG5cbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuXG4gIHJldHVybiByZXN1bHQudmFsdWVcbn1cblxuZXhwb3J0IGRlZmF1bHQgdmFsaWRhdGVTY2hlbWFcbiJdLCJuYW1lcyI6WyJ2YWxpZGF0ZUZpZWxkcyIsImNvbnRleHQiLCJlbnRpdHkiLCJlcnJvcnMiLCJmaWVsZHMiLCJmb3JFYWNoIiwiZmllbGQiLCJpZFJlc3VsdCIsImVycm9yIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJpZEZpZWxkIiwidmFsaWRhdGUiLCJhYm9ydEVhcmx5IiwicmVzdWx0IiwiZmllbGRTY2hlbWEiLCJkZXRhaWxzIiwibWVzc2FnZSIsInB1c2giLCJzbHVnIiwidmFsaWRhdGVDb2xsZWN0aW9ucyIsImNvbGxlY3Rpb25zIiwiY29sbGVjdGlvbiIsImNvbGxlY3Rpb25TY2hlbWEiLCJ2YWxpZGF0ZUdsb2JhbHMiLCJnbG9iYWxzIiwiZ2xvYmFsIiwiZ2xvYmFsU2NoZW1hIiwidmFsaWRhdGVTY2hlbWEiLCJjb25maWciLCJsb2dnZXIiLCJzY2hlbWEiLCJuZXN0ZWRFcnJvcnMiLCJsZW5ndGgiLCJpIiwicHJvY2VzcyIsImV4aXQiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFtSEE7OztlQUFBOzs7K0RBNUc2QjtpRUFDUTt1QkFDSjtnRUFDUjtnRUFDTjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkIsTUFBTUEsaUJBQWlCLENBQ3JCQyxTQUNBQztJQUVBLE1BQU1DLFNBQW1CLEVBQUU7SUFDM0JELE9BQU9FLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLENBQUNDO1FBQ3JCLElBQUlDLFdBQXNDO1lBQUVDLE9BQU87UUFBSztRQUN4RCxJQUFJQyxJQUFBQSx1QkFBZ0IsRUFBQ0gsVUFBVUEsTUFBTUksSUFBSSxLQUFLLE1BQU07WUFDbERILFdBQVdJLGdCQUFPLENBQUNDLFFBQVEsQ0FBQ04sT0FBTztnQkFBRU8sWUFBWTtZQUFNO1FBQ3pEO1FBRUEsTUFBTUMsU0FBU0MsZ0JBQVcsQ0FBQ0gsUUFBUSxDQUFDTixPQUFPO1lBQUVPLFlBQVk7UUFBTTtRQUMvRCxJQUFJTixTQUFTQyxLQUFLLEVBQUU7WUFDbEJELFNBQVNDLEtBQUssQ0FBQ1EsT0FBTyxDQUFDWCxPQUFPLENBQUMsQ0FBQyxFQUFFWSxPQUFPLEVBQUU7Z0JBQ3pDZCxPQUFPZSxJQUFJLENBQ1QsQ0FBQyxFQUFFakIsUUFBUSxFQUFFLEVBQUVDLE9BQU9pQixJQUFJLENBQUMsU0FBUyxFQUNsQ1YsSUFBQUEsdUJBQWdCLEVBQUNILFNBQVMsQ0FBQyxFQUFFLEVBQUVBLE1BQU1JLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUNsRCxDQUFDLEVBQUVPLFFBQVEsQ0FBQztZQUVqQjtRQUNGO1FBQ0EsSUFBSUgsT0FBT04sS0FBSyxFQUFFO1lBQ2hCTSxPQUFPTixLQUFLLENBQUNRLE9BQU8sQ0FBQ1gsT0FBTyxDQUFDLENBQUMsRUFBRVksT0FBTyxFQUFFO2dCQUN2Q2QsT0FBT2UsSUFBSSxDQUNULENBQUMsRUFBRWpCLFFBQVEsRUFBRSxFQUFFQyxPQUFPaUIsSUFBSSxDQUFDLFNBQVMsRUFDbENWLElBQUFBLHVCQUFnQixFQUFDSCxTQUFTLENBQUMsRUFBRSxFQUFFQSxNQUFNSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FDbEQsQ0FBQyxFQUFFTyxRQUFRLENBQUM7WUFFakI7UUFDRjtJQUNGO0lBQ0EsT0FBT2Q7QUFDVDtBQUVBLE1BQU1pQixzQkFBc0IsT0FBT0M7SUFDakMsTUFBTWxCLFNBQW1CLEVBQUU7SUFDM0JrQixZQUFZaEIsT0FBTyxDQUFDLENBQUNpQjtRQUNuQixNQUFNUixTQUFTUyxlQUFnQixDQUFDWCxRQUFRLENBQUNVLFlBQVk7WUFBRVQsWUFBWTtRQUFNO1FBQ3pFLElBQUlDLE9BQU9OLEtBQUssRUFBRTtZQUNoQk0sT0FBT04sS0FBSyxDQUFDUSxPQUFPLENBQUNYLE9BQU8sQ0FBQyxDQUFDLEVBQUVZLE9BQU8sRUFBRTtnQkFDdkNkLE9BQU9lLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRUksV0FBV0gsSUFBSSxDQUFDLElBQUksRUFBRUYsUUFBUSxDQUFDO1lBQzVEO1FBQ0Y7UUFDQWQsT0FBT2UsSUFBSSxJQUFJbEIsZUFBZSxjQUFjc0I7SUFDOUM7SUFFQSxPQUFPbkI7QUFDVDtBQUVBLE1BQU1xQixrQkFBa0IsQ0FBQ0M7SUFDdkIsTUFBTXRCLFNBQW1CLEVBQUU7SUFDM0JzQixRQUFRcEIsT0FBTyxDQUFDLENBQUNxQjtRQUNmLE1BQU1aLFNBQVNhLGdCQUFZLENBQUNmLFFBQVEsQ0FBQ2MsUUFBUTtZQUFFYixZQUFZO1FBQU07UUFDakUsSUFBSUMsT0FBT04sS0FBSyxFQUFFO1lBQ2hCTSxPQUFPTixLQUFLLENBQUNRLE9BQU8sQ0FBQ1gsT0FBTyxDQUFDLENBQUMsRUFBRVksT0FBTyxFQUFFO2dCQUN2Q2QsT0FBT2UsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFUSxPQUFPUCxJQUFJLENBQUMsSUFBSSxFQUFFRixRQUFRLENBQUM7WUFDckQ7UUFDRjtRQUNBZCxPQUFPZSxJQUFJLElBQUlsQixlQUFlLFVBQVUwQjtJQUMxQztJQUVBLE9BQU92QjtBQUNUO0FBRUEsTUFBTXlCLGlCQUFpQixPQUNyQkMsUUFDQUM7SUFFQSxNQUFNaEIsU0FBU2lCLGdCQUFNLENBQUNuQixRQUFRLENBQUNpQixRQUFRO1FBQ3JDaEIsWUFBWTtJQUNkO0lBRUEsTUFBTW1CLGVBQWU7V0FDZixNQUFNWixvQkFBb0JTLE9BQU9SLFdBQVc7V0FDN0NHLGdCQUFnQkssT0FBT0osT0FBTztLQUNsQztJQUVELElBQUlYLE9BQU9OLEtBQUssSUFBSXdCLGFBQWFDLE1BQU0sR0FBRyxHQUFHO1FBQzNDSCxPQUFPdEIsS0FBSyxDQUNWLENBQUMsV0FBVyxFQUNWLEFBQUNNLENBQUFBLE9BQU9OLEtBQUssRUFBRVEsU0FBU2lCLFVBQVUsQ0FBQSxJQUFLRCxhQUFhQyxNQUFNLENBQzNELHNDQUFzQyxDQUFDO1FBRzFDLElBQUlDLElBQUk7UUFDUixJQUFJcEIsT0FBT04sS0FBSyxFQUFFO1lBQ2hCTSxPQUFPTixLQUFLLENBQUNRLE9BQU8sQ0FBQ1gsT0FBTyxDQUFDLENBQUMsRUFBRVksT0FBTyxFQUFFO2dCQUN2Q2lCLEtBQUs7Z0JBQ0xKLE9BQU90QixLQUFLLENBQUMsQ0FBQyxFQUFFMEIsRUFBRSxFQUFFLEVBQUVqQixRQUFRLENBQUM7WUFDakM7UUFDRjtRQUNBZSxhQUFhM0IsT0FBTyxDQUFDLENBQUNZO1lBQ3BCaUIsS0FBSztZQUNMSixPQUFPdEIsS0FBSyxDQUFDLENBQUMsRUFBRTBCLEVBQUUsRUFBRSxFQUFFakIsUUFBUSxDQUFDO1FBQ2pDO1FBRUFrQixRQUFRQyxJQUFJLENBQUM7SUFDZjtJQUVBLE9BQU90QixPQUFPdUIsS0FBSztBQUNyQjtNQUVBLFdBQWVUIn0=