UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

109 lines (108 loc) 13.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _defaultAccess = /*#__PURE__*/ _interop_require_default(require("../../auth/defaultAccess")); const _sanitize = require("../../fields/config/sanitize"); const _types = require("../../fields/config/types"); const _mergeBaseFields = /*#__PURE__*/ _interop_require_default(require("../../fields/mergeBaseFields")); const _translations = /*#__PURE__*/ _interop_require_default(require("../../translations")); const _formatLabels = require("../../utilities/formatLabels"); const _baseFields = /*#__PURE__*/ _interop_require_default(require("../../versions/baseFields")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const sanitizeGlobals = (config)=>{ const { collections, globals } = config; const sanitizedGlobals = globals.map((global)=>{ const sanitizedGlobal = { ...global }; sanitizedGlobal.label = sanitizedGlobal.label || (0, _formatLabels.toWords)(sanitizedGlobal.slug); // ///////////////////////////////// // Ensure that collection has required object structure // ///////////////////////////////// sanitizedGlobal.endpoints = sanitizedGlobal.endpoints ?? []; if (!sanitizedGlobal.hooks) sanitizedGlobal.hooks = {}; if (!sanitizedGlobal.access) sanitizedGlobal.access = {}; if (!sanitizedGlobal.admin) sanitizedGlobal.admin = {}; if (!sanitizedGlobal.access.read) sanitizedGlobal.access.read = _defaultAccess.default; if (!sanitizedGlobal.access.update) sanitizedGlobal.access.update = _defaultAccess.default; if (!sanitizedGlobal.hooks.beforeValidate) sanitizedGlobal.hooks.beforeValidate = []; if (!sanitizedGlobal.hooks.beforeChange) sanitizedGlobal.hooks.beforeChange = []; if (!sanitizedGlobal.hooks.afterChange) sanitizedGlobal.hooks.afterChange = []; if (!sanitizedGlobal.hooks.beforeRead) sanitizedGlobal.hooks.beforeRead = []; if (!sanitizedGlobal.hooks.afterRead) sanitizedGlobal.hooks.afterRead = []; if (sanitizedGlobal.versions) { if (sanitizedGlobal.versions === true) sanitizedGlobal.versions = { drafts: false }; if (sanitizedGlobal.versions.drafts) { if (sanitizedGlobal.versions.drafts === true) { sanitizedGlobal.versions.drafts = { autosave: false }; } if (sanitizedGlobal.versions.drafts.autosave === true) { sanitizedGlobal.versions.drafts.autosave = { interval: 2000 }; } sanitizedGlobal.fields = (0, _mergeBaseFields.default)(sanitizedGlobal.fields, _baseFields.default); } } if (!sanitizedGlobal.custom) sanitizedGlobal.custom = {}; // ///////////////////////////////// // Sanitize fields // ///////////////////////////////// let hasUpdatedAt = null; let hasCreatedAt = null; sanitizedGlobal.fields.some((field)=>{ if ((0, _types.fieldAffectsData)(field)) { if (field.name === 'updatedAt') hasUpdatedAt = true; if (field.name === 'createdAt') hasCreatedAt = true; } return hasCreatedAt && hasUpdatedAt; }); if (!hasUpdatedAt) { sanitizedGlobal.fields.push({ name: 'updatedAt', admin: { disableBulkEdit: true, hidden: true }, label: _translations.default['general:updatedAt'], type: 'date' }); } if (!hasCreatedAt) { sanitizedGlobal.fields.push({ name: 'createdAt', admin: { disableBulkEdit: true, hidden: true }, label: _translations.default['general:createdAt'], type: 'date' }); } const validRelationships = collections.map((c)=>c.slug) || []; sanitizedGlobal.fields = (0, _sanitize.sanitizeFields)({ config, fields: sanitizedGlobal.fields, validRelationships }); return sanitizedGlobal; }); return sanitizedGlobals; }; const _default = sanitizeGlobals; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL2NvbmZpZy9zYW5pdGl6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IGRlZmF1bHRBY2Nlc3MgZnJvbSAnLi4vLi4vYXV0aC9kZWZhdWx0QWNjZXNzJ1xuaW1wb3J0IHsgc2FuaXRpemVGaWVsZHMgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3Nhbml0aXplJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgbWVyZ2VCYXNlRmllbGRzIGZyb20gJy4uLy4uL2ZpZWxkcy9tZXJnZUJhc2VGaWVsZHMnXG5pbXBvcnQgdHJhbnNsYXRpb25zIGZyb20gJy4uLy4uL3RyYW5zbGF0aW9ucydcbmltcG9ydCB7IHRvV29yZHMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZm9ybWF0TGFiZWxzJ1xuaW1wb3J0IGJhc2VWZXJzaW9uRmllbGRzIGZyb20gJy4uLy4uL3ZlcnNpb25zL2Jhc2VGaWVsZHMnXG5cbmNvbnN0IHNhbml0aXplR2xvYmFscyA9IChjb25maWc6IENvbmZpZyk6IFNhbml0aXplZEdsb2JhbENvbmZpZ1tdID0+IHtcbiAgY29uc3QgeyBjb2xsZWN0aW9ucywgZ2xvYmFscyB9ID0gY29uZmlnXG5cbiAgY29uc3Qgc2FuaXRpemVkR2xvYmFscyA9IGdsb2JhbHMubWFwKChnbG9iYWwpID0+IHtcbiAgICBjb25zdCBzYW5pdGl6ZWRHbG9iYWwgPSB7IC4uLmdsb2JhbCB9XG5cbiAgICBzYW5pdGl6ZWRHbG9iYWwubGFiZWwgPSBzYW5pdGl6ZWRHbG9iYWwubGFiZWwgfHwgdG9Xb3JkcyhzYW5pdGl6ZWRHbG9iYWwuc2x1ZylcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEVuc3VyZSB0aGF0IGNvbGxlY3Rpb24gaGFzIHJlcXVpcmVkIG9iamVjdCBzdHJ1Y3R1cmVcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIHNhbml0aXplZEdsb2JhbC5lbmRwb2ludHMgPSBzYW5pdGl6ZWRHbG9iYWwuZW5kcG9pbnRzID8/IFtdXG4gICAgaWYgKCFzYW5pdGl6ZWRHbG9iYWwuaG9va3MpIHNhbml0aXplZEdsb2JhbC5ob29rcyA9IHt9XG4gICAgaWYgKCFzYW5pdGl6ZWRHbG9iYWwuYWNjZXNzKSBzYW5pdGl6ZWRHbG9iYWwuYWNjZXNzID0ge31cbiAgICBpZiAoIXNhbml0aXplZEdsb2JhbC5hZG1pbikgc2FuaXRpemVkR2xvYmFsLmFkbWluID0ge31cblxuICAgIGlmICghc2FuaXRpemVkR2xvYmFsLmFjY2Vzcy5yZWFkKSBzYW5pdGl6ZWRHbG9iYWwuYWNjZXNzLnJlYWQgPSBkZWZhdWx0QWNjZXNzXG4gICAgaWYgKCFzYW5pdGl6ZWRHbG9iYWwuYWNjZXNzLnVwZGF0ZSkgc2FuaXRpemVkR2xvYmFsLmFjY2Vzcy51cGRhdGUgPSBkZWZhdWx0QWNjZXNzXG5cbiAgICBpZiAoIXNhbml0aXplZEdsb2JhbC5ob29rcy5iZWZvcmVWYWxpZGF0ZSkgc2FuaXRpemVkR2xvYmFsLmhvb2tzLmJlZm9yZVZhbGlkYXRlID0gW11cbiAgICBpZiAoIXNhbml0aXplZEdsb2JhbC5ob29rcy5iZWZvcmVDaGFuZ2UpIHNhbml0aXplZEdsb2JhbC5ob29rcy5iZWZvcmVDaGFuZ2UgPSBbXVxuICAgIGlmICghc2FuaXRpemVkR2xvYmFsLmhvb2tzLmFmdGVyQ2hhbmdlKSBzYW5pdGl6ZWRHbG9iYWwuaG9va3MuYWZ0ZXJDaGFuZ2UgPSBbXVxuICAgIGlmICghc2FuaXRpemVkR2xvYmFsLmhvb2tzLmJlZm9yZVJlYWQpIHNhbml0aXplZEdsb2JhbC5ob29rcy5iZWZvcmVSZWFkID0gW11cbiAgICBpZiAoIXNhbml0aXplZEdsb2JhbC5ob29rcy5hZnRlclJlYWQpIHNhbml0aXplZEdsb2JhbC5ob29rcy5hZnRlclJlYWQgPSBbXVxuXG4gICAgaWYgKHNhbml0aXplZEdsb2JhbC52ZXJzaW9ucykge1xuICAgICAgaWYgKHNhbml0aXplZEdsb2JhbC52ZXJzaW9ucyA9PT0gdHJ1ZSkgc2FuaXRpemVkR2xvYmFsLnZlcnNpb25zID0geyBkcmFmdHM6IGZhbHNlIH1cblxuICAgICAgaWYgKHNhbml0aXplZEdsb2JhbC52ZXJzaW9ucy5kcmFmdHMpIHtcbiAgICAgICAgaWYgKHNhbml0aXplZEdsb2JhbC52ZXJzaW9ucy5kcmFmdHMgPT09IHRydWUpIHtcbiAgICAgICAgICBzYW5pdGl6ZWRHbG9iYWwudmVyc2lvbnMuZHJhZnRzID0ge1xuICAgICAgICAgICAgYXV0b3NhdmU6IGZhbHNlLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzYW5pdGl6ZWRHbG9iYWwudmVyc2lvbnMuZHJhZnRzLmF1dG9zYXZlID09PSB0cnVlKSB7XG4gICAgICAgICAgc2FuaXRpemVkR2xvYmFsLnZlcnNpb25zLmRyYWZ0cy5hdXRvc2F2ZSA9IHtcbiAgICAgICAgICAgIGludGVydmFsOiAyMDAwLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNhbml0aXplZEdsb2JhbC5maWVsZHMgPSBtZXJnZUJhc2VGaWVsZHMoc2FuaXRpemVkR2xvYmFsLmZpZWxkcywgYmFzZVZlcnNpb25GaWVsZHMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFzYW5pdGl6ZWRHbG9iYWwuY3VzdG9tKSBzYW5pdGl6ZWRHbG9iYWwuY3VzdG9tID0ge31cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFNhbml0aXplIGZpZWxkc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIGxldCBoYXNVcGRhdGVkQXQgPSBudWxsXG4gICAgbGV0IGhhc0NyZWF0ZWRBdCA9IG51bGxcbiAgICBzYW5pdGl6ZWRHbG9iYWwuZmllbGRzLnNvbWUoKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUgPT09ICd1cGRhdGVkQXQnKSBoYXNVcGRhdGVkQXQgPSB0cnVlXG4gICAgICAgIGlmIChmaWVsZC5uYW1lID09PSAnY3JlYXRlZEF0JykgaGFzQ3JlYXRlZEF0ID0gdHJ1ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc0NyZWF0ZWRBdCAmJiBoYXNVcGRhdGVkQXRcbiAgICB9KVxuICAgIGlmICghaGFzVXBkYXRlZEF0KSB7XG4gICAgICBzYW5pdGl6ZWRHbG9iYWwuZmllbGRzLnB1c2goe1xuICAgICAgICBuYW1lOiAndXBkYXRlZEF0JyxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBkaXNhYmxlQnVsa0VkaXQ6IHRydWUsXG4gICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBsYWJlbDogdHJhbnNsYXRpb25zWydnZW5lcmFsOnVwZGF0ZWRBdCddLFxuICAgICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAoIWhhc0NyZWF0ZWRBdCkge1xuICAgICAgc2FuaXRpemVkR2xvYmFsLmZpZWxkcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ2NyZWF0ZWRBdCcsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgZGlzYWJsZUJ1bGtFZGl0OiB0cnVlLFxuICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IHRyYW5zbGF0aW9uc1snZ2VuZXJhbDpjcmVhdGVkQXQnXSxcbiAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCB2YWxpZFJlbGF0aW9uc2hpcHMgPSBjb2xsZWN0aW9ucy5tYXAoKGMpID0+IGMuc2x1ZykgfHwgW11cbiAgICBzYW5pdGl6ZWRHbG9iYWwuZmllbGRzID0gc2FuaXRpemVGaWVsZHMoe1xuICAgICAgY29uZmlnLFxuICAgICAgZmllbGRzOiBzYW5pdGl6ZWRHbG9iYWwuZmllbGRzLFxuICAgICAgdmFsaWRSZWxhdGlvbnNoaXBzLFxuICAgIH0pXG5cbiAgICByZXR1cm4gc2FuaXRpemVkR2xvYmFsIGFzIFNhbml0aXplZEdsb2JhbENvbmZpZ1xuICB9KVxuXG4gIHJldHVybiBzYW5pdGl6ZWRHbG9iYWxzXG59XG5cbmV4cG9ydCBkZWZhdWx0IHNhbml0aXplR2xvYmFsc1xuIl0sIm5hbWVzIjpbInNhbml0aXplR2xvYmFscyIsImNvbmZpZyIsImNvbGxlY3Rpb25zIiwiZ2xvYmFscyIsInNhbml0aXplZEdsb2JhbHMiLCJtYXAiLCJnbG9iYWwiLCJzYW5pdGl6ZWRHbG9iYWwiLCJsYWJlbCIsInRvV29yZHMiLCJzbHVnIiwiZW5kcG9pbnRzIiwiaG9va3MiLCJhY2Nlc3MiLCJhZG1pbiIsInJlYWQiLCJkZWZhdWx0QWNjZXNzIiwidXBkYXRlIiwiYmVmb3JlVmFsaWRhdGUiLCJiZWZvcmVDaGFuZ2UiLCJhZnRlckNoYW5nZSIsImJlZm9yZVJlYWQiLCJhZnRlclJlYWQiLCJ2ZXJzaW9ucyIsImRyYWZ0cyIsImF1dG9zYXZlIiwiaW50ZXJ2YWwiLCJmaWVsZHMiLCJtZXJnZUJhc2VGaWVsZHMiLCJiYXNlVmVyc2lvbkZpZWxkcyIsImN1c3RvbSIsImhhc1VwZGF0ZWRBdCIsImhhc0NyZWF0ZWRBdCIsInNvbWUiLCJmaWVsZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJuYW1lIiwicHVzaCIsImRpc2FibGVCdWxrRWRpdCIsImhpZGRlbiIsInRyYW5zbGF0aW9ucyIsInR5cGUiLCJ2YWxpZFJlbGF0aW9uc2hpcHMiLCJjIiwic2FuaXRpemVGaWVsZHMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBMkdBOzs7ZUFBQTs7O3NFQXhHMEI7MEJBQ0s7dUJBQ0U7d0VBQ0w7cUVBQ0g7OEJB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