UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

114 lines (113 loc) • 12.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _executeAccess = /*#__PURE__*/ _interop_require_default(require("../../auth/executeAccess")); const _afterRead = require("../../fields/hooks/afterRead"); const _commitTransaction = require("../../utilities/commitTransaction"); const _initTransaction = require("../../utilities/initTransaction"); const _killTransaction = require("../../utilities/killTransaction"); const _replaceWithDraftIfAvailable = /*#__PURE__*/ _interop_require_default(require("../../versions/drafts/replaceWithDraftIfAvailable")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function findOne(args) { const { slug, depth, draft: draftEnabled = false, globalConfig, overrideAccess = false, req: { fallbackLocale, locale, payload }, req, showHiddenFields } = args; try { const shouldCommit = await (0, _initTransaction.initTransaction)(req); // ///////////////////////////////////// // Retrieve and execute access // ///////////////////////////////////// let accessResult; if (!overrideAccess) { accessResult = await (0, _executeAccess.default)({ req }, globalConfig.access.read); } // ///////////////////////////////////// // Perform database operation // ///////////////////////////////////// let doc = await req.payload.db.findGlobal({ slug, locale, req, where: overrideAccess ? undefined : accessResult }); if (!doc) { doc = {}; } // ///////////////////////////////////// // Replace document with draft if available // ///////////////////////////////////// if (globalConfig.versions?.drafts && draftEnabled) { doc = await (0, _replaceWithDraftIfAvailable.default)({ accessResult, doc, entity: globalConfig, entityType: 'global', overrideAccess, req }); } // ///////////////////////////////////// // Execute before global hook // ///////////////////////////////////// await globalConfig.hooks.beforeRead.reduce(async (priorHook, hook)=>{ await priorHook; doc = await hook({ context: req.context, doc, global: globalConfig, req }) || doc; }, Promise.resolve()); // ///////////////////////////////////// // Execute field-level hooks and access // ///////////////////////////////////// doc = await (0, _afterRead.afterRead)({ collection: null, context: req.context, depth, doc, fallbackLocale, global: globalConfig, locale, overrideAccess, req, showHiddenFields }); // ///////////////////////////////////// // Execute after global hook // ///////////////////////////////////// await globalConfig.hooks.afterRead.reduce(async (priorHook, hook)=>{ await priorHook; doc = await hook({ context: req.context, doc, global: globalConfig, req }) || doc; }, Promise.resolve()); // ///////////////////////////////////// // Return results // ///////////////////////////////////// if (shouldCommit) await (0, _commitTransaction.commitTransaction)(req); // ///////////////////////////////////// // Return results // ///////////////////////////////////// return doc; } catch (error) { await (0, _killTransaction.killTransaction)(req); throw error; } } const _default = findOne; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL29wZXJhdGlvbnMvZmluZE9uZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjY2Vzc1Jlc3VsdCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBXaGVyZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBleGVjdXRlQWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZXhlY3V0ZUFjY2VzcydcbmltcG9ydCB7IGFmdGVyUmVhZCB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlclJlYWQnXG5pbXBvcnQgeyBjb21taXRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9jb21taXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGluaXRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9pbml0VHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBraWxsVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMva2lsbFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHJlcGxhY2VXaXRoRHJhZnRJZkF2YWlsYWJsZSBmcm9tICcuLi8uLi92ZXJzaW9ucy9kcmFmdHMvcmVwbGFjZVdpdGhEcmFmdElmQXZhaWxhYmxlJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGRlcHRoPzogbnVtYmVyXG4gIGRyYWZ0PzogYm9vbGVhblxuICBnbG9iYWxDb25maWc6IFNhbml0aXplZEdsb2JhbENvbmZpZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbiAgc2x1Zzogc3RyaW5nXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZpbmRPbmU8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+PihhcmdzOiBBcmdzKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHtcbiAgICBzbHVnLFxuICAgIGRlcHRoLFxuICAgIGRyYWZ0OiBkcmFmdEVuYWJsZWQgPSBmYWxzZSxcbiAgICBnbG9iYWxDb25maWcsXG4gICAgb3ZlcnJpZGVBY2Nlc3MgPSBmYWxzZSxcbiAgICByZXE6IHsgZmFsbGJhY2tMb2NhbGUsIGxvY2FsZSwgcGF5bG9hZCB9LFxuICAgIHJlcSxcbiAgICBzaG93SGlkZGVuRmllbGRzLFxuICB9ID0gYXJnc1xuXG4gIHRyeSB7XG4gICAgY29uc3Qgc2hvdWxkQ29tbWl0ID0gYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXRyaWV2ZSBhbmQgZXhlY3V0ZSBhY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBsZXQgYWNjZXNzUmVzdWx0OiBBY2Nlc3NSZXN1bHRcblxuICAgIGlmICghb3ZlcnJpZGVBY2Nlc3MpIHtcbiAgICAgIGFjY2Vzc1Jlc3VsdCA9IGF3YWl0IGV4ZWN1dGVBY2Nlc3MoeyByZXEgfSwgZ2xvYmFsQ29uZmlnLmFjY2Vzcy5yZWFkKVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBQZXJmb3JtIGRhdGFiYXNlIG9wZXJhdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGxldCBkb2MgPSBhd2FpdCByZXEucGF5bG9hZC5kYi5maW5kR2xvYmFsKHtcbiAgICAgIHNsdWcsXG4gICAgICBsb2NhbGUsXG4gICAgICByZXEsXG4gICAgICB3aGVyZTogb3ZlcnJpZGVBY2Nlc3MgPyB1bmRlZmluZWQgOiAoYWNjZXNzUmVzdWx0IGFzIFdoZXJlKSxcbiAgICB9KVxuICAgIGlmICghZG9jKSB7XG4gICAgICBkb2MgPSB7fVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXBsYWNlIGRvY3VtZW50IHdpdGggZHJhZnQgaWYgYXZhaWxhYmxlXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKGdsb2JhbENvbmZpZy52ZXJzaW9ucz8uZHJhZnRzICYmIGRyYWZ0RW5hYmxlZCkge1xuICAgICAgZG9jID0gYXdhaXQgcmVwbGFjZVdpdGhEcmFmdElmQXZhaWxhYmxlKHtcbiAgICAgICAgYWNjZXNzUmVzdWx0LFxuICAgICAgICBkb2MsXG4gICAgICAgIGVudGl0eTogZ2xvYmFsQ29uZmlnLFxuICAgICAgICBlbnRpdHlUeXBlOiAnZ2xvYmFsJyxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHJlcSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEV4ZWN1dGUgYmVmb3JlIGdsb2JhbCBob29rXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgZ2xvYmFsQ29uZmlnLmhvb2tzLmJlZm9yZVJlYWQucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBkb2MgPVxuICAgICAgICAoYXdhaXQgaG9vayh7XG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZG9jLFxuICAgICAgICAgIGdsb2JhbDogZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IGRvY1xuICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEV4ZWN1dGUgZmllbGQtbGV2ZWwgaG9va3MgYW5kIGFjY2Vzc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGRvYyA9IGF3YWl0IGFmdGVyUmVhZCh7XG4gICAgICBjb2xsZWN0aW9uOiBudWxsLFxuICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICBkZXB0aCxcbiAgICAgIGRvYyxcbiAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgZ2xvYmFsOiBnbG9iYWxDb25maWcsXG4gICAgICBsb2NhbGUsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBFeGVjdXRlIGFmdGVyIGdsb2JhbCBob29rXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgZ2xvYmFsQ29uZmlnLmhvb2tzLmFmdGVyUmVhZC5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgIGRvYyA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICBkb2MsXG4gICAgICAgICAgZ2xvYmFsOiBnbG9iYWxDb25maWcsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgZG9jXG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUmV0dXJuIHJlc3VsdHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoc2hvdWxkQ29tbWl0KSBhd2FpdCBjb21taXRUcmFuc2FjdGlvbihyZXEpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUmV0dXJuIHJlc3VsdHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXR1cm4gZG9jXG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgYXdhaXQga2lsbFRyYW5zYWN0aW9uKHJlcSlcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZpbmRPbmVcbiJdLCJuYW1lcyI6WyJmaW5kT25lIiwiYXJncyIsInNsdWciLCJkZXB0aCIsImRyYWZ0IiwiZHJhZnRFbmFibGVkIiwiZ2xvYmFsQ29uZmlnIiwib3ZlcnJpZGVBY2Nlc3MiLCJyZXEiLCJmYWxsYmFja0xvY2FsZSIsImxvY2FsZSIsInBheWxvYWQiLCJzaG93SGlkZGVuRmllbGRzIiwic2hvdWxkQ29tbWl0IiwiaW5pdFRyYW5zYWN0aW9uIiwiYWNjZXNzUmVzdWx0IiwiZXhlY3V0ZUFjY2VzcyIsImFjY2VzcyIsInJlYWQiLCJkb2MiLCJkYiIsImZpbmRHbG9iYWwiLCJ3aGVyZSIsInVuZGVmaW5lZCIsInZlcnNpb25zIiwiZHJhZnRzIiwicmVwbGFjZVdpdGhEcmFmdElmQXZhaWxhYmxlIiwiZW50aXR5IiwiZW50aXR5VHlwZSIsImhvb2tzIiwiYmVmb3JlUmVhZCIsInJlZHVjZSIsInByaW9ySG9vayIsImhvb2siLCJjb250ZXh0IiwiZ2xvYmFsIiwiUHJvbWlzZSIsInJlc29sdmUiLCJhZnRlclJlYWQiLCJjb2xsZWN0aW9uIiwiY29tbWl0VHJhbnNhY3Rpb24iLCJlcnJvciIsImtpbGxUcmFuc2FjdGlvbiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkErSUE7OztlQUFBOzs7c0VBMUkw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