UNPKG

mongoose-delete-ts

Version:
57 lines (56 loc) 3.25 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = default_1; const deleteDocument_1 = require("./utils/deleteDocument"); const restoreDocument_1 = require("./utils/restoreDocument"); const mergeOptions_1 = __importDefault(require("./utils/mergeOptions")); function default_1(schema, schemaOptions, deletedFieldOptions) { schema.statics.deleteOne = async function (filter, options) { const update = (0, deleteDocument_1.staticDelete)(deletedFieldOptions); const updateOneFn = this.updateOne.bind(this); const result = await updateOneFn(filter ?? {}, update, (0, mergeOptions_1.default)(options, schemaOptions)); return convertToDeleteResult(result); }; schema.statics.deleteMany = async function (filter, options) { const update = (0, deleteDocument_1.staticDelete)(deletedFieldOptions); const result = await this.updateMany.call(this, filter ?? {}, update, (0, mergeOptions_1.default)(options, schemaOptions)); return convertToDeleteResult(result); }; schema.statics.deleteOneByUser = async function (user, filter, options) { const update = (0, deleteDocument_1.staticDelete)(deletedFieldOptions, user); const updateOneFn = this.updateOne.bind(this); const result = await updateOneFn(filter ?? {}, update, (0, mergeOptions_1.default)(options, schemaOptions)); return convertToDeleteResult(result); }; schema.statics.deleteManyByUser = async function (user, filter, options) { const update = (0, deleteDocument_1.staticDelete)(deletedFieldOptions, user); const result = await this.updateMany.call(this, filter ?? {}, update, (0, mergeOptions_1.default)(options, schemaOptions)); return convertToDeleteResult(result); }; schema.statics.findOneAndDelete = function (filter, options) { const update = (0, deleteDocument_1.staticDelete)(deletedFieldOptions); return this.findOneAndUpdate.call(this, filter, update, (0, mergeOptions_1.default)(options, schemaOptions)); }; schema.statics.findByIdAndDelete = function (id, options) { const update = (0, deleteDocument_1.staticDelete)(deletedFieldOptions); return this.findByIdAndUpdate.call(this, id, update, (0, mergeOptions_1.default)(options, schemaOptions)); }; schema.statics.restoreOne = function (filter, options) { const update = (0, restoreDocument_1.staticRestore)(deletedFieldOptions); const updateOneFn = this.updateOne.bind(this); return updateOneFn({ ...filter, deleted: true }, update, (0, mergeOptions_1.default)(options, schemaOptions)); }; schema.statics.restoreMany = function (filter, options) { const update = (0, restoreDocument_1.staticRestore)(deletedFieldOptions); return this.updateMany.call(this, { ...filter, deleted: true }, update, (0, mergeOptions_1.default)(options, schemaOptions)); }; } function convertToDeleteResult(result) { return { acknowledged: result.acknowledged, deletedCount: result.modifiedCount }; }