UNPKG

respond-framework

Version:
157 lines (156 loc) 4.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _excludeProjectFields = require("./utils/excludeProjectFields.js"); var _default = exports.default = { async findOneSafe(selector, opts) { const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); return this.findOne(selector, { ...opts, project }); }, async findManySafe(selector, opts) { const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); return this.findMany(selector, { ...opts, project }); }, async findAllSafe(selector, opts) { const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); return this.findAll(selector, { ...opts, project }); }, async findLikeSafe(key, term, opts) { const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); return this.findLike(key, term, { ...opts, project }); }, async searchSafe(query, opts) { const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); return this.search(query, { ...opts, project }); }, async searchGeoSafe(location, opts) { const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); return this.searchGeo(location, { ...opts, project }); }, async joinOneSafe(id, name, opts) { const collection = this.db[name]; const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); const projectJoin = (0, _excludeProjectFields.default)(opts?.projectJoin, collection.privateFields); return this.joinOne(id, name, { ...opts, project, projectJoin }); }, async joinManySafe(id, name, opts) { const collection = this.db[name]; const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); const projectJoin = (0, _excludeProjectFields.default)(opts?.projectJoin, collection.privateFields); return this.joinMany(id, name, { ...opts, project, projectJoin }); }, async joinSafe(name, opts) { const collection = this.db[name]; const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); const projectJoin = (0, _excludeProjectFields.default)(opts?.projectJoin, collection.privateFields); return this.join(name, fk, { ...opts, project, projectJoin }); }, async aggregateSafe(opts) { const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); return this.aggregate({ ...opts, project }); }, async updateOneSafe(selector, newDoc, opts) { if (selector?.roles) { selector = { ...selector }; delete selector.roles; } if (newDoc?.roles) { newDoc = { ...newDoc }; delete newDoc.roles; } const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); return this.updateOne(selector, newDoc, { ...opts, project }); }, async insertOneSafe(doc, opts) { if (doc?.roles) { doc = { ...doc }; delete doc.roles; } const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); return this.insertOne(doc, { ...opts, project }); }, async upsertSafe(selector, doc, opts) { if (selector?.roles) { selector = { ...selector }; delete selector.roles; } if (doc?.roles) { doc = { ...doc }; delete doc.roles; } if (opts?.insertDoc?.roles) { opts = { ...opts }; opts.insertDoc = { ...opts.insertDoc }; delete opts.insertDoc.roles; } const project = (0, _excludeProjectFields.default)(opts?.project, this.privateFields); return this.upsert(selector, doc, { ...opts, project }); }, async saveSafe(model) { return this.upsertSafe(model); }, createSafe({ ...doc }) { this.privateFields.forEach(k => delete doc[k]); return this.create(doc); } };