UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

87 lines (86 loc) 9.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _auth = require("../../auth"); const _combineQueries = require("../../database/combineQueries"); const _types = require("../../types"); const _sanitizeInternalFields = /*#__PURE__*/ _interop_require_default(require("../../utilities/sanitizeInternalFields")); const _appendVersionToQueryKey = require("./appendVersionToQueryKey"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const replaceWithDraftIfAvailable = async ({ accessResult, doc, entity, entityType, req })=>{ const { locale } = req; const queryToBuild = { and: [ { 'version._status': { equals: 'draft' } } ] }; if (entityType === 'collection') { queryToBuild.and.push({ parent: { equals: doc.id } }); } if ((0, _types.docHasTimestamps)(doc)) { queryToBuild.and.push({ updatedAt: { greater_than: doc.updatedAt } }); } let versionAccessResult; if ((0, _auth.hasWhereAccessResult)(accessResult)) { versionAccessResult = (0, _appendVersionToQueryKey.appendVersionToQueryKey)(accessResult); } const findVersionsArgs = { collection: entity.slug, global: entity.slug, limit: 1, locale, req, sort: '-updatedAt', where: (0, _combineQueries.combineQueries)(queryToBuild, versionAccessResult) }; let versionDocs; if (entityType === 'global') { versionDocs = (await req.payload.db.findGlobalVersions(findVersionsArgs)).docs; } else { versionDocs = (await req.payload.db.findVersions(findVersionsArgs)).docs; } let draft = versionDocs[0]; if (!draft) { return doc; } draft = JSON.parse(JSON.stringify(draft)); draft = (0, _sanitizeInternalFields.default)(draft); // Patch globalType onto version doc if (entityType === 'global' && 'globalType' in doc) { draft.version.globalType = doc.globalType; } // Disregard all other draft content at this point, // Only interested in the version itself. // Operations will handle firing hooks, etc. return { id: doc.id, ...draft.version, createdAt: draft.createdAt, updatedAt: draft.updatedAt }; }; const _default = replaceWithDraftIfAvailable; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9ucy9kcmFmdHMvcmVwbGFjZVdpdGhEcmFmdElmQXZhaWxhYmxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZywgVHlwZVdpdGhJRCB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgQWNjZXNzUmVzdWx0IH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaW5kR2xvYmFsVmVyc2lvbnNBcmdzLCBGaW5kVmVyc2lvbnNBcmdzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uLy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgV2hlcmUgfSBmcm9tICcuLi8uLi90eXBlcydcblxuaW1wb3J0IHsgaGFzV2hlcmVBY2Nlc3NSZXN1bHQgfSBmcm9tICcuLi8uLi9hdXRoJ1xuaW1wb3J0IHsgY29tYmluZVF1ZXJpZXMgfSBmcm9tICcuLi8uLi9kYXRhYmFzZS9jb21iaW5lUXVlcmllcydcbmltcG9ydCB7IGRvY0hhc1RpbWVzdGFtcHMgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCBzYW5pdGl6ZUludGVybmFsRmllbGRzIGZyb20gJy4uLy4uL3V0aWxpdGllcy9zYW5pdGl6ZUludGVybmFsRmllbGRzJ1xuaW1wb3J0IHsgYXBwZW5kVmVyc2lvblRvUXVlcnlLZXkgfSBmcm9tICcuL2FwcGVuZFZlcnNpb25Ub1F1ZXJ5S2V5J1xuXG50eXBlIEFyZ3VtZW50czxUPiA9IHtcbiAgYWNjZXNzUmVzdWx0OiBBY2Nlc3NSZXN1bHRcbiAgZG9jOiBUXG4gIGVudGl0eTogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IFNhbml0aXplZEdsb2JhbENvbmZpZ1xuICBlbnRpdHlUeXBlOiAnY29sbGVjdGlvbicgfCAnZ2xvYmFsJ1xuICBvdmVycmlkZUFjY2VzczogYm9vbGVhblxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG59XG5cbmNvbnN0IHJlcGxhY2VXaXRoRHJhZnRJZkF2YWlsYWJsZSA9IGFzeW5jIDxUIGV4dGVuZHMgVHlwZVdpdGhJRD4oe1xuICBhY2Nlc3NSZXN1bHQsXG4gIGRvYyxcbiAgZW50aXR5LFxuICBlbnRpdHlUeXBlLFxuICByZXEsXG59OiBBcmd1bWVudHM8VD4pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgeyBsb2NhbGUgfSA9IHJlcVxuXG4gIGNvbnN0IHF1ZXJ5VG9CdWlsZDogV2hlcmUgPSB7XG4gICAgYW5kOiBbXG4gICAgICB7XG4gICAgICAgICd2ZXJzaW9uLl9zdGF0dXMnOiB7XG4gICAgICAgICAgZXF1YWxzOiAnZHJhZnQnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICB9XG5cbiAgaWYgKGVudGl0eVR5cGUgPT09ICdjb2xsZWN0aW9uJykge1xuICAgIHF1ZXJ5VG9CdWlsZC5hbmQucHVzaCh7XG4gICAgICBwYXJlbnQ6IHtcbiAgICAgICAgZXF1YWxzOiBkb2MuaWQsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICBpZiAoZG9jSGFzVGltZXN0YW1wcyhkb2MpKSB7XG4gICAgcXVlcnlUb0J1aWxkLmFuZC5wdXNoKHtcbiAgICAgIHVwZGF0ZWRBdDoge1xuICAgICAgICBncmVhdGVyX3RoYW46IGRvYy51cGRhdGVkQXQsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICBsZXQgdmVyc2lvbkFjY2Vzc1Jlc3VsdFxuXG4gIGlmIChoYXNXaGVyZUFjY2Vzc1Jlc3VsdChhY2Nlc3NSZXN1bHQpKSB7XG4gICAgdmVyc2lvbkFjY2Vzc1Jlc3VsdCA9IGFwcGVuZFZlcnNpb25Ub1F1ZXJ5S2V5KGFjY2Vzc1Jlc3VsdClcbiAgfVxuXG4gIGNvbnN0IGZpbmRWZXJzaW9uc0FyZ3M6IEZpbmRWZXJzaW9uc0FyZ3MgJiBGaW5kR2xvYmFsVmVyc2lvbnNBcmdzID0ge1xuICAgIGNvbGxlY3Rpb246IGVudGl0eS5zbHVnLFxuICAgIGdsb2JhbDogZW50aXR5LnNsdWcsXG4gICAgbGltaXQ6IDEsXG4gICAgbG9jYWxlLFxuICAgIHJlcSxcbiAgICBzb3J0OiAnLXVwZGF0ZWRBdCcsXG4gICAgd2hlcmU6IGNvbWJpbmVRdWVyaWVzKHF1ZXJ5VG9CdWlsZCwgdmVyc2lvbkFjY2Vzc1Jlc3VsdCksXG4gIH1cblxuICBsZXQgdmVyc2lvbkRvY3NcbiAgaWYgKGVudGl0eVR5cGUgPT09ICdnbG9iYWwnKSB7XG4gICAgdmVyc2lvbkRvY3MgPSAoYXdhaXQgcmVxLnBheWxvYWQuZGIuZmluZEdsb2JhbFZlcnNpb25zPFQ+KGZpbmRWZXJzaW9uc0FyZ3MpKS5kb2NzXG4gIH0gZWxzZSB7XG4gICAgdmVyc2lvbkRvY3MgPSAoYXdhaXQgcmVxLnBheWxvYWQuZGIuZmluZFZlcnNpb25zPFQ+KGZpbmRWZXJzaW9uc0FyZ3MpKS5kb2NzXG4gIH1cblxuICBsZXQgZHJhZnQgPSB2ZXJzaW9uRG9jc1swXVxuXG4gIGlmICghZHJhZnQpIHtcbiAgICByZXR1cm4gZG9jXG4gIH1cblxuICBkcmFmdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZHJhZnQpKVxuICBkcmFmdCA9IHNhbml0aXplSW50ZXJuYWxGaWVsZHMoZHJhZnQpXG5cbiAgLy8gUGF0Y2ggZ2xvYmFsVHlwZSBvbnRvIHZlcnNpb24gZG9jXG4gIGlmIChlbnRpdHlUeXBlID09PSAnZ2xvYmFsJyAmJiAnZ2xvYmFsVHlwZScgaW4gZG9jKSB7XG4gICAgZHJhZnQudmVyc2lvbi5nbG9iYWxUeXBlID0gZG9jLmdsb2JhbFR5cGVcbiAgfVxuXG4gIC8vIERpc3JlZ2FyZCBhbGwgb3RoZXIgZHJhZnQgY29udGVudCBhdCB0aGlzIHBvaW50LFxuICAvLyBPbmx5IGludGVyZXN0ZWQgaW4gdGhlIHZlcnNpb24gaXRzZWxmLlxuICAvLyBPcGVyYXRpb25zIHdpbGwgaGFuZGxlIGZpcmluZyBob29rcywgZXRjLlxuICByZXR1cm4ge1xuICAgIGlkOiBkb2MuaWQsXG4gICAgLi4uZHJhZnQudmVyc2lvbixcbiAgICBjcmVhdGVkQXQ6IGRyYWZ0LmNyZWF0ZWRBdCxcbiAgICB1cGRhdGVkQXQ6IGRyYWZ0LnVwZGF0ZWRBdCxcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCByZXBsYWNlV2l0aERyYWZ0SWZBdmFpbGFibGVcbiJdLCJuYW1lcyI6WyJyZXBsYWNlV2l0aERyYWZ0SWZBdmFpbGFibGUiLCJhY2Nlc3NSZXN1bHQiLCJkb2MiLCJlbnRpdHkiLCJlbnRpdHlUeXBlIiwicmVxIiwibG9jYWxlIiwicXVlcnlUb0J1aWxkIiwiYW5kIiwiZXF1YWxzIiwicHVzaCIsInBhcmVudCIsImlkIiwiZG9jSGFzVGltZXN0YW1wcyIsInVwZGF0ZWRBdCIsImdyZWF0ZXJfdGhhbiIsInZlcnNpb25BY2Nlc3NSZXN1bHQiLCJoYXNXaGVyZUFjY2Vzc1Jlc3VsdCIsImFwcGVuZFZlcnNpb25Ub1F1ZXJ5S2V5IiwiZmluZFZlcnNpb25zQXJncyIsImNvbGxlY3Rpb24iLCJzbHVnIiwiZ2xvYmFsIiwibGltaXQiLCJzb3J0Iiwid2hlcmUiLCJjb21iaW5lUXVlcmllcyIsInZlcnNpb25Eb2NzIiwicGF5bG9hZCIsImRiIiwiZmluZEdsb2JhbFZlcnNpb25zIiwiZG9jcyIsImZpbmRWZXJzaW9ucyIsImRyYWZ0IiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5Iiwic2FuaXRpemVJbnRlcm5hbEZpZWxkcyIsInZlcnNpb24iLCJnbG9iYWxUeXBlIiwiY3JlYXRlZEF0Il0sIm1hcHBpbmdzIjoiOzs7OytCQXdHQTs7O2VBQUE7OztzQkFsR3FDO2dDQUNOO3VCQUNFOytFQUNFO3lDQUNLOzs7Ozs7QUFXeEMsTUFBTUEsOEJBQThCLE9BQTZCLEVBQy9EQyxZQUFZLEVBQ1pDLEdBQUcsRUFDSEMsTUFBTSxFQUNOQyxVQUFVLEVBQ1ZDLEdBQUcsRUFDVTtJQUNiLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdEO0lBRW5CLE1BQU1FLGVBQXNCO1FBQzFCQyxLQUFLO1lBQ0g7Z0JBQ0UsbUJBQW1CO29CQUNqQkMsUUFBUTtnQkFDVjtZQUNGO1NBQ0Q7SUFDSDtJQUVBLElBQUlMLGVBQWUsY0FBYztRQUMvQkcsYUFBYUMsR0FBRyxDQUFDRSxJQUFJLENBQUM7WUFDcEJDLFFBQVE7Z0JBQ05GLFFBQVFQLElBQUlVLEVBQUU7WUFDaEI7UUFDRjtJQUNGO0lBRUEsSUFBSUMsSUFBQUEsdUJBQWdCLEVBQUNYLE1BQU07UUFDekJLLGFBQWFDLEdBQUcsQ0FBQ0UsSUFBSSxDQUFDO1lBQ3BCSSxXQUFXO2dCQUNUQyxjQUFjYixJQUFJWSxTQUFTO1lBQzdCO1FBQ0Y7SUFDRjtJQUVBLElBQUlFO0lBRUosSUFBSUMsSUFBQUEsMEJBQW9CLEVBQUNoQixlQUFlO1FBQ3RDZSxzQkFBc0JFLElBQUFBLGdEQUF1QixFQUFDakI7SUFDaEQ7SUFFQSxNQUFNa0IsbUJBQThEO1FBQ2xFQyxZQUFZakIsT0FBT2tCLElBQUk7UUFDdkJDLFFBQVFuQixPQUFPa0IsSUFBSTtRQUNuQkUsT0FBTztRQUNQakI7UUFDQUQ7UUFDQW1CLE1BQU07UUFDTkMsT0FBT0MsSUFBQUEsOEJBQWMsRUFBQ25CLGNBQWNTO0lBQ3RDO0lBRUEsSUFBSVc7SUFDSixJQUFJdkIsZUFBZSxVQUFVO1FBQzNCdUIsY0FBYyxBQUFDLENBQUEsTUFBTXRCLElBQUl1QixPQUFPLENBQUNDLEVBQUUsQ0FBQ0Msa0JBQWtCLENBQUlYLGlCQUFnQixFQUFHWSxJQUFJO0lBQ25GLE9BQU87UUFDTEosY0FBYyxBQUFDLENBQUEsTUFBTXRCLElBQUl1QixPQUFPLENBQUNDLEVBQUUsQ0FBQ0csWUFBWSxDQUFJYixpQkFBZ0IsRUFBR1ksSUFBSTtJQUM3RTtJQUVBLElBQUlFLFFBQVFOLFdBQVcsQ0FBQyxFQUFFO0lBRTFCLElBQUksQ0FBQ00sT0FBTztRQUNWLE9BQU8vQjtJQUNUO0lBRUErQixRQUFRQyxLQUFLQyxLQUFLLENBQUNELEtBQUtFLFNBQVMsQ0FBQ0g7SUFDbENBLFFBQVFJLElBQUFBLCtCQUFzQixFQUFDSjtJQUUvQixvQ0FBb0M7SUFDcEMsSUFBSTdCLGVBQWUsWUFBWSxnQkFBZ0JGLEtBQUs7UUFDbEQrQixNQUFNSyxPQUFPLENBQUNDLFVBQVUsR0FBR3JDLElBQUlxQyxVQUFVO0lBQzNDO0lBRUEsbURBQW1EO0lBQ25ELHlDQUF5QztJQUN6Qyw0Q0FBNEM7SUFDNUMsT0FBTztRQUNMM0IsSUFBSVYsSUFBSVUsRUFBRTtRQUNWLEdBQUdxQixNQUFNSyxPQUFPO1FBQ2hCRSxXQUFXUCxNQUFNTyxTQUFTO1FBQzFCMUIsV0FBV21CLE1BQU1uQixTQUFTO0lBQzVCO0FBQ0Y7TUFFQSxXQUFlZCJ9