UNPKG

mzinga

Version:

Node, React and MongoDB Headless CMS and Application Framework

62 lines (61 loc) 6.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "enforceMaxVersions", { enumerable: true, get: function() { return enforceMaxVersions; } }); const enforceMaxVersions = async ({ id, collection, global, max, payload, req })=>{ const entityType = collection ? 'collection' : 'global'; const slug = collection ? collection.slug : global?.slug; try { const where = {}; let oldestAllowedDoc; if (collection) { where.parent = { equals: id }; const query = await payload.db.findVersions({ collection: collection.slug, pagination: false, req, skip: max, sort: '-updatedAt', where }); [oldestAllowedDoc] = query.docs; } else if (global) { const query = await payload.db.findGlobalVersions({ global: global.slug, req, skip: max, sort: '-updatedAt', where }); [oldestAllowedDoc] = query.docs; } if (oldestAllowedDoc?.updatedAt) { const deleteQuery = { updatedAt: { less_than_equal: oldestAllowedDoc.updatedAt } }; if (collection) { deleteQuery.parent = { equals: id }; } await payload.db.deleteVersions({ collection: collection?.slug, req, where: deleteQuery }); } } catch (err) { payload.logger.error(`There was an error cleaning up old versions for the ${entityType} ${slug}`); } }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9ucy9lbmZvcmNlTWF4VmVyc2lvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uL216aW5nYSdcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFdoZXJlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbnR5cGUgQXJncyA9IHtcbiAgY29sbGVjdGlvbj86IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdcbiAgZ2xvYmFsPzogU2FuaXRpemVkR2xvYmFsQ29uZmlnXG4gIGlkPzogbnVtYmVyIHwgc3RyaW5nXG4gIG1heDogbnVtYmVyXG4gIHBheWxvYWQ6IFBheWxvYWRcbiAgcmVxPzogUGF5bG9hZFJlcXVlc3Rcbn1cblxuZXhwb3J0IGNvbnN0IGVuZm9yY2VNYXhWZXJzaW9ucyA9IGFzeW5jICh7XG4gIGlkLFxuICBjb2xsZWN0aW9uLFxuICBnbG9iYWwsXG4gIG1heCxcbiAgcGF5bG9hZCxcbiAgcmVxLFxufTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCBlbnRpdHlUeXBlID0gY29sbGVjdGlvbiA/ICdjb2xsZWN0aW9uJyA6ICdnbG9iYWwnXG4gIGNvbnN0IHNsdWcgPSBjb2xsZWN0aW9uID8gY29sbGVjdGlvbi5zbHVnIDogZ2xvYmFsPy5zbHVnXG5cbiAgdHJ5IHtcbiAgICBjb25zdCB3aGVyZTogV2hlcmUgPSB7fVxuICAgIGxldCBvbGRlc3RBbGxvd2VkRG9jXG5cbiAgICBpZiAoY29sbGVjdGlvbikge1xuICAgICAgd2hlcmUucGFyZW50ID0ge1xuICAgICAgICBlcXVhbHM6IGlkLFxuICAgICAgfVxuXG4gICAgICBjb25zdCBxdWVyeSA9IGF3YWl0IHBheWxvYWQuZGIuZmluZFZlcnNpb25zKHtcbiAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbi5zbHVnLFxuICAgICAgICBwYWdpbmF0aW9uOiBmYWxzZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBza2lwOiBtYXgsXG4gICAgICAgIHNvcnQ6ICctdXBkYXRlZEF0JyxcbiAgICAgICAgd2hlcmUsXG4gICAgICB9KVxuXG4gICAgICA7W29sZGVzdEFsbG93ZWREb2NdID0gcXVlcnkuZG9jc1xuICAgIH0gZWxzZSBpZiAoZ2xvYmFsKSB7XG4gICAgICBjb25zdCBxdWVyeSA9IGF3YWl0IHBheWxvYWQuZGIuZmluZEdsb2JhbFZlcnNpb25zKHtcbiAgICAgICAgZ2xvYmFsOiBnbG9iYWwuc2x1ZyxcbiAgICAgICAgcmVxLFxuICAgICAgICBza2lwOiBtYXgsXG4gICAgICAgIHNvcnQ6ICctdXBkYXRlZEF0JyxcbiAgICAgICAgd2hlcmUsXG4gICAgICB9KVxuXG4gICAgICA7W29sZGVzdEFsbG93ZWREb2NdID0gcXVlcnkuZG9jc1xuICAgIH1cblxuICAgIGlmIChvbGRlc3RBbGxvd2VkRG9jPy51cGRhdGVkQXQpIHtcbiAgICAgIGNvbnN0IGRlbGV0ZVF1ZXJ5OiBXaGVyZSA9IHtcbiAgICAgICAgdXBkYXRlZEF0OiB7XG4gICAgICAgICAgbGVzc190aGFuX2VxdWFsOiBvbGRlc3RBbGxvd2VkRG9jLnVwZGF0ZWRBdCxcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbGxlY3Rpb24pIHtcbiAgICAgICAgZGVsZXRlUXVlcnkucGFyZW50ID0ge1xuICAgICAgICAgIGVxdWFsczogaWQsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXdhaXQgcGF5bG9hZC5kYi5kZWxldGVWZXJzaW9ucyh7XG4gICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb24/LnNsdWcsXG4gICAgICAgIHJlcSxcbiAgICAgICAgd2hlcmU6IGRlbGV0ZVF1ZXJ5LFxuICAgICAgfSlcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHBheWxvYWQubG9nZ2VyLmVycm9yKFxuICAgICAgYFRoZXJlIHdhcyBhbiBlcnJvciBjbGVhbmluZyB1cCBvbGQgdmVyc2lvbnMgZm9yIHRoZSAke2VudGl0eVR5cGV9ICR7c2x1Z31gLFxuICAgIClcbiAgfVxufVxuIl0sIm5hbWVzIjpbImVuZm9yY2VNYXhWZXJzaW9ucyIsImlkIiwiY29sbGVjdGlvbiIsImdsb2JhbCIsIm1heCIsInBheWxvYWQiLCJyZXEiLCJlbnRpdHlUeXBlIiwic2x1ZyIsIndoZXJlIiwib2xkZXN0QWxsb3dlZERvYyIsInBhcmVudCIsImVxdWFscyIsInF1ZXJ5IiwiZGIiLCJmaW5kVmVyc2lvbnMiLCJwYWdpbmF0aW9uIiwic2tpcCIsInNvcnQiLCJkb2NzIiwiZmluZEdsb2JhbFZlcnNpb25zIiwidXBkYXRlZEF0IiwiZGVsZXRlUXVlcnkiLCJsZXNzX3RoYW5fZXF1YWwiLCJkZWxldGVWZXJzaW9ucyIsImVyciIsImxvZ2dlciIsImVycm9yIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiOzs7OytCQWNhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxxQkFBcUIsT0FBTyxFQUN2Q0MsRUFBRSxFQUNGQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDTkMsR0FBRyxFQUNIQyxPQUFPLEVBQ1BDLEdBQUcsRUFDRTtJQUNMLE1BQU1DLGFBQWFMLGFBQWEsZUFBZTtJQUMvQyxNQUFNTSxPQUFPTixhQUFhQSxXQUFXTSxJQUFJLEdBQUdMLFFBQVFLO0lBRXBELElBQUk7UUFDRixNQUFNQyxRQUFlLENBQUM7UUFDdEIsSUFBSUM7UUFFSixJQUFJUixZQUFZO1lBQ2RPLE1BQU1FLE1BQU0sR0FBRztnQkFDYkMsUUFBUVg7WUFDVjtZQUVBLE1BQU1ZLFFBQVEsTUFBTVIsUUFBUVMsRUFBRSxDQUFDQyxZQUFZLENBQUM7Z0JBQzFDYixZQUFZQSxXQUFXTSxJQUFJO2dCQUMzQlEsWUFBWTtnQkFDWlY7Z0JBQ0FXLE1BQU1iO2dCQUNOYyxNQUFNO2dCQUNOVDtZQUNGO1lBRUMsQ0FBQ0MsaUJBQWlCLEdBQUdHLE1BQU1NLElBQUk7UUFDbEMsT0FBTyxJQUFJaEIsUUFBUTtZQUNqQixNQUFNVSxRQUFRLE1BQU1SLFFBQVFTLEVBQUUsQ0FBQ00sa0JBQWtCLENBQUM7Z0JBQ2hEakIsUUFBUUEsT0FBT0ssSUFBSTtnQkFDbkJGO2dCQUNBVyxNQUFNYjtnQkFDTmMsTUFBTTtnQkFDTlQ7WUFDRjtZQUVDLENBQUNDLGlCQUFpQixHQUFHRyxNQUFNTSxJQUFJO1FBQ2xDO1FBRUEsSUFBSVQsa0JBQWtCVyxXQUFXO1lBQy9CLE1BQU1DLGNBQXFCO2dCQUN6QkQsV0FBVztvQkFDVEUsaUJBQWlCYixpQkFBaUJXLFNBQVM7Z0JBQzdDO1lBQ0Y7WUFFQSxJQUFJbkIsWUFBWTtnQkFDZG9CLFlBQVlYLE1BQU0sR0FBRztvQkFDbkJDLFFBQVFYO2dCQUNWO1lBQ0Y7WUFFQSxNQUFNSSxRQUFRUyxFQUFFLENBQUNVLGNBQWMsQ0FBQztnQkFDOUJ0QixZQUFZQSxZQUFZTTtnQkFDeEJGO2dCQUNBRyxPQUFPYTtZQUNUO1FBQ0Y7SUFDRixFQUFFLE9BQU9HLEtBQUs7UUFDWnBCLFFBQVFxQixNQUFNLENBQUNDLEtBQUssQ0FDbEIsQ0FBQyxvREFBb0QsRUFBRXBCLFdBQVcsQ0FBQyxFQUFFQyxLQUFLLENBQUM7SUFFL0U7QUFDRiJ9