@joktec/mongo
Version:
JokTec - Mongo Service
25 lines • 1.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildPlugin = buildPlugin;
const utils_1 = require("@joktec/utils");
const typegoose_1 = require("@typegoose/typegoose");
const lodash_1 = require("lodash");
const plugins_1 = require("../plugins");
function buildPlugin(options) {
const plugins = (0, utils_1.toArray)(options.plugins).map(p => (0, typegoose_1.plugin)(p.mongoosePlugin, p.options));
const deletedAt = (0, lodash_1.get)(options, 'paranoid.deletedAt.name', 'deletedAt');
const opts = { paranoidKey: options?.paranoid ? deletedAt : null };
plugins.push((0, typegoose_1.plugin)(plugins_1.StrictReferencePlugin, opts));
if (options.paranoid) {
const paranoidOpts = {
deletedAt: { name: 'deletedAt', type: Date },
};
if (typeof options?.paranoid === 'object') {
Object.assign(paranoidOpts, options.paranoid);
}
plugins.push((0, typegoose_1.plugin)(plugins_1.ParanoidPlugin, paranoidOpts));
}
plugins.push((0, typegoose_1.plugin)(plugins_1.TransformPlugin));
return plugins;
}
//# sourceMappingURL=mongo.plugin.js.map