ts-patch-mongoose 2.3.1 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/dist/cjs/helpers.js +12 -0
- package/dist/cjs/helpers.js.map +1 -0
- package/dist/cjs/hooks/delete-hooks.js +55 -0
- package/dist/cjs/hooks/delete-hooks.js.map +1 -0
- package/dist/cjs/hooks/save-hooks.js +28 -0
- package/dist/cjs/hooks/save-hooks.js.map +1 -0
- package/dist/cjs/hooks/update-hooks.js +89 -0
- package/dist/cjs/hooks/update-hooks.js.map +1 -0
- package/dist/cjs/plugin.js +26 -163
- package/dist/cjs/plugin.js.map +1 -1
- package/dist/cjs/types/helpers.d.ts +4 -0
- package/dist/cjs/types/helpers.d.ts.map +1 -0
- package/dist/cjs/types/hooks/delete-hooks.d.ts +28 -0
- package/dist/cjs/types/hooks/delete-hooks.d.ts.map +1 -0
- package/dist/cjs/types/hooks/save-hooks.d.ts +28 -0
- package/dist/cjs/types/hooks/save-hooks.d.ts.map +1 -0
- package/dist/cjs/types/hooks/update-hooks.d.ts +33 -0
- package/dist/cjs/types/hooks/update-hooks.d.ts.map +1 -0
- package/dist/cjs/types/models/History.d.ts +7 -1
- package/dist/cjs/types/models/History.d.ts.map +1 -1
- package/dist/cjs/types/plugin.d.ts +3 -1
- package/dist/cjs/types/plugin.d.ts.map +1 -1
- package/dist/cjs/types/version.d.ts +1 -0
- package/dist/cjs/types/version.d.ts.map +1 -1
- package/dist/cjs/version.js +2 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/helpers.js +12 -0
- package/dist/esm/helpers.js.map +1 -0
- package/dist/esm/hooks/delete-hooks.js +55 -0
- package/dist/esm/hooks/delete-hooks.js.map +1 -0
- package/dist/esm/hooks/save-hooks.js +28 -0
- package/dist/esm/hooks/save-hooks.js.map +1 -0
- package/dist/esm/hooks/update-hooks.js +89 -0
- package/dist/esm/hooks/update-hooks.js.map +1 -0
- package/dist/esm/plugin.js.map +1 -1
- package/dist/esm/plugin.mjs +26 -163
- package/dist/esm/types/helpers.d.ts +4 -0
- package/dist/esm/types/helpers.d.ts.map +1 -0
- package/dist/esm/types/hooks/delete-hooks.d.ts +28 -0
- package/dist/esm/types/hooks/delete-hooks.d.ts.map +1 -0
- package/dist/esm/types/hooks/save-hooks.d.ts +28 -0
- package/dist/esm/types/hooks/save-hooks.d.ts.map +1 -0
- package/dist/esm/types/hooks/update-hooks.d.ts +33 -0
- package/dist/esm/types/hooks/update-hooks.d.ts.map +1 -0
- package/dist/esm/types/models/History.d.ts +7 -1
- package/dist/esm/types/models/History.d.ts.map +1 -1
- package/dist/esm/types/plugin.d.ts +3 -1
- package/dist/esm/types/plugin.d.ts.map +1 -1
- package/dist/esm/types/version.d.ts +1 -0
- package/dist/esm/types/version.d.ts.map +1 -1
- package/dist/esm/version.js +2 -1
- package/dist/esm/version.js.map +1 -1
- package/package.json +12 -12
- package/src/helpers.ts +10 -0
- package/src/hooks/delete-hooks.ts +59 -0
- package/src/hooks/save-hooks.ts +29 -0
- package/src/hooks/update-hooks.ts +100 -0
- package/src/plugin.ts +42 -194
- package/src/version.ts +1 -0
- package/tests/plugin-event-deleted.test.ts +13 -10
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ I need to track changes of mongoose models and save them as patch history (audit
|
|
|
26
26
|
```json
|
|
27
27
|
{
|
|
28
28
|
"node": "16.x || 18.x || 20.x",
|
|
29
|
-
"mongoose": "
|
|
29
|
+
"mongoose": "6.6.x || 7.x || 8.x",
|
|
30
30
|
}
|
|
31
31
|
```
|
|
32
32
|
|
|
@@ -49,15 +49,18 @@ npm install ts-patch-mongoose
|
|
|
49
49
|
yarn add ts-patch-mongoose
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
- This plugin requires mongoose
|
|
52
|
+
- This plugin requires mongoose `6.6.x || 7.x || 8.x` to be installed as a peer dependency
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
55
|
# For mongoose 6
|
|
56
|
-
npm install mongoose@
|
|
57
|
-
yarn add mongoose mongoose@
|
|
56
|
+
npm install mongoose@6.12.2
|
|
57
|
+
yarn add mongoose mongoose@6.12.2
|
|
58
58
|
# For mongoose 7
|
|
59
|
-
npm install mongoose@
|
|
60
|
-
yarn add mongoose@
|
|
59
|
+
npm install mongoose@7.6.4
|
|
60
|
+
yarn add mongoose@7.6.4
|
|
61
|
+
# For mongoose 8
|
|
62
|
+
npm install mongoose@8.0.0
|
|
63
|
+
yarn add mongoose@8.0.0
|
|
61
64
|
```
|
|
62
65
|
|
|
63
66
|
## Example
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toObjectOptions = exports.isHookIgnored = void 0;
|
|
4
|
+
const isHookIgnored = (options) => {
|
|
5
|
+
return options.ignoreHook === true || (options.ignoreEvent === true && options.ignorePatchHistory === true);
|
|
6
|
+
};
|
|
7
|
+
exports.isHookIgnored = isHookIgnored;
|
|
8
|
+
exports.toObjectOptions = {
|
|
9
|
+
depopulate: true,
|
|
10
|
+
virtuals: false
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":";;;AAEO,MAAM,aAAa,GAAG,CAAI,OAAwB,EAAW,EAAE;IACpE,OAAO,OAAO,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAA;AAC7G,CAAC,CAAA;AAFY,QAAA,aAAa,iBAEzB;AAEY,QAAA,eAAe,GAAoB;IAC9C,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,KAAK;CAChB,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteHooksInitialize = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const lodash_1 = tslib_1.__importDefault(require("lodash"));
|
|
6
|
+
const patch_1 = require("../patch");
|
|
7
|
+
const helpers_1 = require("../helpers");
|
|
8
|
+
const deleteMethods = [
|
|
9
|
+
'remove',
|
|
10
|
+
'findOneAndDelete',
|
|
11
|
+
'findOneAndRemove',
|
|
12
|
+
'findByIdAndDelete',
|
|
13
|
+
'findByIdAndRemove',
|
|
14
|
+
'deleteOne',
|
|
15
|
+
'deleteMany'
|
|
16
|
+
];
|
|
17
|
+
const deleteHooksInitialize = (schema, opts) => {
|
|
18
|
+
schema.pre(deleteMethods, { document: false, query: true }, async function () {
|
|
19
|
+
const options = this.getOptions();
|
|
20
|
+
if ((0, helpers_1.isHookIgnored)(options))
|
|
21
|
+
return;
|
|
22
|
+
const model = this.model;
|
|
23
|
+
const filter = this.getFilter();
|
|
24
|
+
this._context = {
|
|
25
|
+
op: this.op,
|
|
26
|
+
modelName: opts.modelName ?? this.model.modelName,
|
|
27
|
+
collectionName: opts.collectionName ?? this.model.collection.collectionName,
|
|
28
|
+
ignoreEvent: options.ignoreEvent,
|
|
29
|
+
ignorePatchHistory: options.ignorePatchHistory
|
|
30
|
+
};
|
|
31
|
+
if (['remove', 'deleteMany'].includes(this._context.op) && !options.single) {
|
|
32
|
+
const docs = await model.find(filter).lean().exec();
|
|
33
|
+
if (!lodash_1.default.isEmpty(docs)) {
|
|
34
|
+
this._context.deletedDocs = docs;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
const doc = await model.findOne(filter).lean().exec();
|
|
39
|
+
if (!lodash_1.default.isEmpty(doc)) {
|
|
40
|
+
this._context.deletedDocs = [doc];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (opts.preDelete && lodash_1.default.isArray(this._context.deletedDocs) && !lodash_1.default.isEmpty(this._context.deletedDocs)) {
|
|
44
|
+
await opts.preDelete(this._context.deletedDocs);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
schema.post(deleteMethods, { document: false, query: true }, async function () {
|
|
48
|
+
const options = this.getOptions();
|
|
49
|
+
if ((0, helpers_1.isHookIgnored)(options))
|
|
50
|
+
return;
|
|
51
|
+
await (0, patch_1.deletePatch)(opts, this._context);
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
exports.deleteHooksInitialize = deleteHooksInitialize;
|
|
55
|
+
//# sourceMappingURL=delete-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-hooks.js","sourceRoot":"","sources":["../../../src/hooks/delete-hooks.ts"],"names":[],"mappings":";;;;AAAA,4DAAsB;AAEtB,oCAAsC;AACtC,wCAA0C;AAM1C,MAAM,aAAa,GAAG;IACpB,QAAQ;IACR,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,WAAW;IACX,YAAY;CACb,CAAA;AAEM,MAAM,qBAAqB,GAAG,CAAI,MAAiB,EAAE,IAAuB,EAAQ,EAAE;IAC3F,MAAM,CAAC,GAAG,CAAC,aAA0C,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK;QAC5F,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACjC,IAAI,IAAA,uBAAa,EAAC,OAAO,CAAC;YAAE,OAAM;QAElC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAiB,CAAA;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAE/B,IAAI,CAAC,QAAQ,GAAG;YACd,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS;YACjD,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc;YAC3E,WAAW,EAAE,OAAO,CAAC,WAAsB;YAC3C,kBAAkB,EAAE,OAAO,CAAC,kBAA6B;SAC1D,CAAA;QAED,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAC1E,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YACnD,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAA6B,CAAA;aAC1D;SACF;aAAM;YACL,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YACrD,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,GAAG,CAA0B,CAAA;aAC3D;SACF;QAED,IAAI,IAAI,CAAC,SAAS,IAAI,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACnG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;SAChD;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,aAA0C,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK;QAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACjC,IAAI,IAAA,uBAAa,EAAC,OAAO,CAAC;YAAE,OAAM;QAElC,MAAM,IAAA,mBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAvCY,QAAA,qBAAqB,yBAuCjC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.saveHooksInitialize = void 0;
|
|
4
|
+
const patch_1 = require("../patch");
|
|
5
|
+
const helpers_1 = require("../helpers");
|
|
6
|
+
const saveHooksInitialize = (schema, opts) => {
|
|
7
|
+
schema.pre('save', async function () {
|
|
8
|
+
const current = this.toObject(helpers_1.toObjectOptions);
|
|
9
|
+
const model = this.constructor;
|
|
10
|
+
const context = {
|
|
11
|
+
op: this.isNew ? 'create' : 'update',
|
|
12
|
+
modelName: opts.modelName ?? model.modelName,
|
|
13
|
+
collectionName: opts.collectionName ?? model.collection.collectionName,
|
|
14
|
+
createdDocs: [current]
|
|
15
|
+
};
|
|
16
|
+
if (this.isNew) {
|
|
17
|
+
await (0, patch_1.createPatch)(opts, context);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
const original = await model.findById(current._id).lean().exec();
|
|
21
|
+
if (original) {
|
|
22
|
+
await (0, patch_1.updatePatch)(opts, context, current, original);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
exports.saveHooksInitialize = saveHooksInitialize;
|
|
28
|
+
//# sourceMappingURL=save-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-hooks.js","sourceRoot":"","sources":["../../../src/hooks/save-hooks.ts"],"names":[],"mappings":";;;AAAA,oCAAmD;AACnD,wCAA4C;AAMrC,MAAM,mBAAmB,GAAG,CAAI,MAAiB,EAAE,IAAuB,EAAQ,EAAE;IACzF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAe,CAAwB,CAAA;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAuB,CAAA;QAE1C,MAAM,OAAO,GAAgB;YAC3B,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;YAC5C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc;YACtE,WAAW,EAAE,CAAC,OAAO,CAAC;SACvB,CAAA;QAED,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,IAAA,mBAAW,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;SACjC;aAAM;YACL,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YAChE,IAAI,QAAQ,EAAE;gBACZ,MAAM,IAAA,mBAAW,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAA+B,CAAC,CAAA;aAC3E;SACF;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AArBY,QAAA,mBAAmB,uBAqB/B"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateHooksInitialize = exports.splitUpdateAndCommands = exports.assignUpdate = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const lodash_1 = tslib_1.__importDefault(require("lodash"));
|
|
6
|
+
const power_assign_1 = require("power-assign");
|
|
7
|
+
const patch_1 = require("../patch");
|
|
8
|
+
const helpers_1 = require("../helpers");
|
|
9
|
+
const updateMethods = [
|
|
10
|
+
'update',
|
|
11
|
+
'updateOne',
|
|
12
|
+
'replaceOne',
|
|
13
|
+
'updateMany',
|
|
14
|
+
'findOneAndUpdate',
|
|
15
|
+
'findOneAndReplace',
|
|
16
|
+
'findByIdAndUpdate'
|
|
17
|
+
];
|
|
18
|
+
const assignUpdate = (document, update, commands) => {
|
|
19
|
+
let updated = (0, power_assign_1.assign)(document, update);
|
|
20
|
+
lodash_1.default.forEach(commands, (command) => {
|
|
21
|
+
try {
|
|
22
|
+
updated = (0, power_assign_1.assign)(updated, command);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return updated;
|
|
28
|
+
};
|
|
29
|
+
exports.assignUpdate = assignUpdate;
|
|
30
|
+
const splitUpdateAndCommands = (updateQuery) => {
|
|
31
|
+
let update = {};
|
|
32
|
+
const commands = [];
|
|
33
|
+
if (!lodash_1.default.isEmpty(updateQuery) && !lodash_1.default.isArray(updateQuery) && lodash_1.default.isObjectLike(updateQuery)) {
|
|
34
|
+
update = lodash_1.default.cloneDeep(updateQuery);
|
|
35
|
+
const keys = lodash_1.default.keys(update).filter((key) => key.startsWith('$'));
|
|
36
|
+
if (!lodash_1.default.isEmpty(keys)) {
|
|
37
|
+
lodash_1.default.forEach(keys, (key) => {
|
|
38
|
+
commands.push({ [key]: update[key] });
|
|
39
|
+
delete update[key];
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return { update, commands };
|
|
44
|
+
};
|
|
45
|
+
exports.splitUpdateAndCommands = splitUpdateAndCommands;
|
|
46
|
+
const updateHooksInitialize = (schema, opts) => {
|
|
47
|
+
schema.pre(updateMethods, async function () {
|
|
48
|
+
const options = this.getOptions();
|
|
49
|
+
if ((0, helpers_1.isHookIgnored)(options))
|
|
50
|
+
return;
|
|
51
|
+
const model = this.model;
|
|
52
|
+
const filter = this.getFilter();
|
|
53
|
+
const count = await this.model.countDocuments(filter).exec();
|
|
54
|
+
this._context = {
|
|
55
|
+
op: this.op,
|
|
56
|
+
modelName: opts.modelName ?? this.model.modelName,
|
|
57
|
+
collectionName: opts.collectionName ?? this.model.collection.collectionName,
|
|
58
|
+
isNew: options.upsert && count === 0,
|
|
59
|
+
ignoreEvent: options.ignoreEvent,
|
|
60
|
+
ignorePatchHistory: options.ignorePatchHistory
|
|
61
|
+
};
|
|
62
|
+
const updateQuery = this.getUpdate();
|
|
63
|
+
const { update, commands } = (0, exports.splitUpdateAndCommands)(updateQuery);
|
|
64
|
+
const cursor = model.find(filter).lean().cursor();
|
|
65
|
+
await cursor.eachAsync(async (doc) => {
|
|
66
|
+
await (0, patch_1.updatePatch)(opts, this._context, (0, exports.assignUpdate)(doc, update, commands), doc);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
schema.post(updateMethods, async function () {
|
|
70
|
+
const options = this.getOptions();
|
|
71
|
+
if ((0, helpers_1.isHookIgnored)(options))
|
|
72
|
+
return;
|
|
73
|
+
if (!this._context.isNew)
|
|
74
|
+
return;
|
|
75
|
+
const model = this.model;
|
|
76
|
+
const updateQuery = this.getUpdate();
|
|
77
|
+
const { update, commands } = (0, exports.splitUpdateAndCommands)(updateQuery);
|
|
78
|
+
const filter = (0, exports.assignUpdate)({}, update, commands);
|
|
79
|
+
if (!lodash_1.default.isEmpty(filter)) {
|
|
80
|
+
const current = await model.findOne(update).lean().exec();
|
|
81
|
+
if (current) {
|
|
82
|
+
this._context.createdDocs = [current];
|
|
83
|
+
await (0, patch_1.createPatch)(opts, this._context);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
exports.updateHooksInitialize = updateHooksInitialize;
|
|
89
|
+
//# sourceMappingURL=update-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-hooks.js","sourceRoot":"","sources":["../../../src/hooks/update-hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -3,83 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.patchHistoryPlugin = exports.patchEventEmitter = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const lodash_1 = tslib_1.__importDefault(require("lodash"));
|
|
6
|
-
const
|
|
6
|
+
const em_1 = tslib_1.__importDefault(require("./em"));
|
|
7
7
|
const patch_1 = require("./patch");
|
|
8
8
|
const version_1 = require("./version");
|
|
9
|
-
const
|
|
9
|
+
const helpers_1 = require("./helpers");
|
|
10
|
+
const save_hooks_1 = require("./hooks/save-hooks");
|
|
11
|
+
const update_hooks_1 = require("./hooks/update-hooks");
|
|
12
|
+
const delete_hooks_1 = require("./hooks/delete-hooks");
|
|
10
13
|
const remove = version_1.isMongooseLessThan7 ? 'remove' : 'deleteOne';
|
|
11
|
-
const toObjectOptions = {
|
|
12
|
-
depopulate: true,
|
|
13
|
-
virtuals: false
|
|
14
|
-
};
|
|
15
|
-
const updateMethods = [
|
|
16
|
-
'update',
|
|
17
|
-
'updateOne',
|
|
18
|
-
'replaceOne',
|
|
19
|
-
'updateMany',
|
|
20
|
-
'findOneAndUpdate',
|
|
21
|
-
'findOneAndReplace',
|
|
22
|
-
'findByIdAndUpdate'
|
|
23
|
-
];
|
|
24
|
-
const deleteMethods = [
|
|
25
|
-
'remove',
|
|
26
|
-
'findOneAndDelete',
|
|
27
|
-
'findOneAndRemove',
|
|
28
|
-
'findByIdAndDelete',
|
|
29
|
-
'findByIdAndRemove',
|
|
30
|
-
'deleteOne',
|
|
31
|
-
'deleteMany'
|
|
32
|
-
];
|
|
33
|
-
function isHookIgnored(options) {
|
|
34
|
-
return options.ignoreHook === true || (options.ignoreEvent === true && options.ignorePatchHistory === true);
|
|
35
|
-
}
|
|
36
|
-
function splitUpdateAndCommands(updateQuery) {
|
|
37
|
-
let update = {};
|
|
38
|
-
const commands = [];
|
|
39
|
-
if (!lodash_1.default.isEmpty(updateQuery) && !lodash_1.default.isArray(updateQuery) && lodash_1.default.isObjectLike(updateQuery)) {
|
|
40
|
-
update = lodash_1.default.cloneDeep(updateQuery);
|
|
41
|
-
const keys = lodash_1.default.keys(update).filter((key) => key.startsWith('$'));
|
|
42
|
-
if (!lodash_1.default.isEmpty(keys)) {
|
|
43
|
-
lodash_1.default.forEach(keys, (key) => {
|
|
44
|
-
commands.push({ [key]: update[key] });
|
|
45
|
-
delete update[key];
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return { update, commands };
|
|
50
|
-
}
|
|
51
|
-
function assignUpdate(document, update, commands) {
|
|
52
|
-
let updated = (0, power_assign_1.assign)(document, update);
|
|
53
|
-
lodash_1.default.forEach(commands, (command) => {
|
|
54
|
-
try {
|
|
55
|
-
updated = (0, power_assign_1.assign)(updated, command);
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
return updated;
|
|
61
|
-
}
|
|
62
14
|
exports.patchEventEmitter = em_1.default;
|
|
63
15
|
const patchHistoryPlugin = function plugin(schema, opts) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const context = {
|
|
68
|
-
op: this.isNew ? 'create' : 'update',
|
|
69
|
-
modelName: opts.modelName ?? model.modelName,
|
|
70
|
-
collectionName: opts.collectionName ?? model.collection.collectionName,
|
|
71
|
-
createdDocs: [current]
|
|
72
|
-
};
|
|
73
|
-
if (this.isNew) {
|
|
74
|
-
await (0, patch_1.createPatch)(opts, context);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
const original = await model.findById(current._id).lean().exec();
|
|
78
|
-
if (original) {
|
|
79
|
-
await (0, patch_1.updatePatch)(opts, context, current, original);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
});
|
|
16
|
+
(0, save_hooks_1.saveHooksInitialize)(schema, opts);
|
|
17
|
+
(0, update_hooks_1.updateHooksInitialize)(schema, opts);
|
|
18
|
+
(0, delete_hooks_1.deleteHooksInitialize)(schema, opts);
|
|
83
19
|
schema.post('insertMany', async function (docs) {
|
|
84
20
|
const context = {
|
|
85
21
|
op: 'create',
|
|
@@ -89,98 +25,25 @@ const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
89
25
|
};
|
|
90
26
|
await (0, patch_1.createPatch)(opts, context);
|
|
91
27
|
});
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const filter = this.getFilter();
|
|
98
|
-
const count = await this.model.count(filter).exec();
|
|
99
|
-
this._context = {
|
|
100
|
-
op: this.op,
|
|
101
|
-
modelName: opts.modelName ?? this.model.modelName,
|
|
102
|
-
collectionName: opts.collectionName ?? this.model.collection.collectionName,
|
|
103
|
-
isNew: options.upsert && count === 0,
|
|
104
|
-
ignoreEvent: options.ignoreEvent,
|
|
105
|
-
ignorePatchHistory: options.ignorePatchHistory
|
|
106
|
-
};
|
|
107
|
-
const updateQuery = this.getUpdate();
|
|
108
|
-
const { update, commands } = splitUpdateAndCommands(updateQuery);
|
|
109
|
-
const cursor = model.find(filter).lean().cursor();
|
|
110
|
-
await cursor.eachAsync(async (doc) => {
|
|
111
|
-
await (0, patch_1.updatePatch)(opts, this._context, assignUpdate(doc, update, commands), doc);
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
schema.post(updateMethods, async function () {
|
|
115
|
-
const options = this.getOptions();
|
|
116
|
-
if (isHookIgnored(options))
|
|
117
|
-
return;
|
|
118
|
-
if (!this._context.isNew)
|
|
119
|
-
return;
|
|
120
|
-
const model = this.model;
|
|
121
|
-
const updateQuery = this.getUpdate();
|
|
122
|
-
const { update, commands } = splitUpdateAndCommands(updateQuery);
|
|
123
|
-
const filter = assignUpdate({}, update, commands);
|
|
124
|
-
if (!lodash_1.default.isEmpty(filter)) {
|
|
125
|
-
const current = await model.findOne(update).lean().exec();
|
|
126
|
-
if (current) {
|
|
127
|
-
this._context.createdDocs = [current];
|
|
128
|
-
await (0, patch_1.createPatch)(opts, this._context);
|
|
28
|
+
if (version_1.isMongooseLessThan8) {
|
|
29
|
+
schema.pre(remove, { document: true, query: false }, async function () {
|
|
30
|
+
const original = this.toObject(helpers_1.toObjectOptions);
|
|
31
|
+
if (opts.preDelete && !lodash_1.default.isEmpty(original)) {
|
|
32
|
+
await opts.preDelete([original]);
|
|
129
33
|
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
modelName: opts.modelName ?? model.modelName,
|
|
144
|
-
collectionName: opts.collectionName ?? model.collection.collectionName,
|
|
145
|
-
deletedDocs: [original]
|
|
146
|
-
};
|
|
147
|
-
await (0, patch_1.deletePatch)(opts, context);
|
|
148
|
-
});
|
|
149
|
-
schema.pre(deleteMethods, { document: false, query: true }, async function () {
|
|
150
|
-
const options = this.getOptions();
|
|
151
|
-
if (isHookIgnored(options))
|
|
152
|
-
return;
|
|
153
|
-
const model = this.model;
|
|
154
|
-
const filter = this.getFilter();
|
|
155
|
-
this._context = {
|
|
156
|
-
op: this.op,
|
|
157
|
-
modelName: opts.modelName ?? this.model.modelName,
|
|
158
|
-
collectionName: opts.collectionName ?? this.model.collection.collectionName,
|
|
159
|
-
ignoreEvent: options.ignoreEvent,
|
|
160
|
-
ignorePatchHistory: options.ignorePatchHistory
|
|
161
|
-
};
|
|
162
|
-
if (['remove', 'deleteMany'].includes(this._context.op) && !options.single) {
|
|
163
|
-
const docs = await model.find(filter).lean().exec();
|
|
164
|
-
if (!lodash_1.default.isEmpty(docs)) {
|
|
165
|
-
this._context.deletedDocs = docs;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
const doc = await model.findOne(filter).lean().exec();
|
|
170
|
-
if (!lodash_1.default.isEmpty(doc)) {
|
|
171
|
-
this._context.deletedDocs = [doc];
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
if (opts.preDelete && lodash_1.default.isArray(this._context.deletedDocs) && !lodash_1.default.isEmpty(this._context.deletedDocs)) {
|
|
175
|
-
await opts.preDelete(this._context.deletedDocs);
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
schema.post(deleteMethods, { document: false, query: true }, async function () {
|
|
179
|
-
const options = this.getOptions();
|
|
180
|
-
if (isHookIgnored(options))
|
|
181
|
-
return;
|
|
182
|
-
await (0, patch_1.deletePatch)(opts, this._context);
|
|
183
|
-
});
|
|
34
|
+
});
|
|
35
|
+
schema.post(remove, { document: true, query: false }, async function () {
|
|
36
|
+
const original = this.toObject(helpers_1.toObjectOptions);
|
|
37
|
+
const model = this.constructor;
|
|
38
|
+
const context = {
|
|
39
|
+
op: 'delete',
|
|
40
|
+
modelName: opts.modelName ?? model.modelName,
|
|
41
|
+
collectionName: opts.collectionName ?? model.collection.collectionName,
|
|
42
|
+
deletedDocs: [original]
|
|
43
|
+
};
|
|
44
|
+
await (0, patch_1.deletePatch)(opts, context);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
184
47
|
};
|
|
185
48
|
exports.patchHistoryPlugin = patchHistoryPlugin;
|
|
186
49
|
//# sourceMappingURL=plugin.js.map
|
package/dist/cjs/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":";;;;AAAA,4DAAsB;AACtB
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":";;;;AAAA,4DAAsB;AACtB,sDAAqB;AAErB,mCAAkD;AAClD,uCAAoE;AACpE,uCAA2C;AAE3C,mDAAwD;AACxD,uDAA4D;AAC5D,uDAA4D;AAM5D,MAAM,MAAM,GAAG,6BAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAA;AAK9C,QAAA,iBAAiB,GAAG,YAAE,CAAA;AAQ5B,MAAM,kBAAkB,GAAG,SAAS,MAAM,CAAK,MAAiB,EAAE,IAAuB;IAE9F,IAAA,gCAAmB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACjC,IAAA,oCAAqB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACnC,IAAA,oCAAqB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAGnC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,WAAW,IAAI;QAC5C,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc;YACrE,WAAW,EAAE,IAAwC;SACtD,CAAA;QAED,MAAM,IAAA,mBAAW,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAIF,IAAI,6BAAmB,EAAE;QAEvB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK;YAGxD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAe,CAAwB,CAAA;YAEtE,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;aACjC;QACH,CAAC,CAAC,CAAA;QAGF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAe,CAAwB,CAAA;YACtE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAuB,CAAA;YAE1C,MAAM,OAAO,GAAgB;gBAC3B,EAAE,EAAE,QAAQ;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;gBAC5C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc;gBACtE,WAAW,EAAE,CAAC,QAAQ,CAAC;aACxB,CAAA;YAED,MAAM,IAAA,mBAAW,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;KACH;AACH,CAAC,CAAA;AA/CY,QAAA,kBAAkB,sBA+C9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE7D,eAAO,MAAM,aAAa,mCAAkC,OAE3D,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,eAG7B,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/// <reference types="mongoose/types/aggregate" />
|
|
2
|
+
/// <reference types="mongoose/types/callback" />
|
|
3
|
+
/// <reference types="mongoose/types/collection" />
|
|
4
|
+
/// <reference types="mongoose/types/connection" />
|
|
5
|
+
/// <reference types="mongoose/types/cursor" />
|
|
6
|
+
/// <reference types="mongoose/types/document" />
|
|
7
|
+
/// <reference types="mongoose/types/error" />
|
|
8
|
+
/// <reference types="mongoose/types/expressions" />
|
|
9
|
+
/// <reference types="mongoose/types/helpers" />
|
|
10
|
+
/// <reference types="mongoose/types/middlewares" />
|
|
11
|
+
/// <reference types="mongoose/types/indexes" />
|
|
12
|
+
/// <reference types="mongoose/types/models" />
|
|
13
|
+
/// <reference types="mongoose/types/mongooseoptions" />
|
|
14
|
+
/// <reference types="mongoose/types/pipelinestage" />
|
|
15
|
+
/// <reference types="mongoose/types/populate" />
|
|
16
|
+
/// <reference types="mongoose/types/query" />
|
|
17
|
+
/// <reference types="mongoose/types/schemaoptions" />
|
|
18
|
+
/// <reference types="mongoose/types/schematypes" />
|
|
19
|
+
/// <reference types="mongoose/types/session" />
|
|
20
|
+
/// <reference types="mongoose/types/types" />
|
|
21
|
+
/// <reference types="mongoose/types/utility" />
|
|
22
|
+
/// <reference types="mongoose/types/validation" />
|
|
23
|
+
/// <reference types="mongoose/types/virtuals" />
|
|
24
|
+
/// <reference types="mongoose/types/inferschematype" />
|
|
25
|
+
import type { Model, Schema } from 'mongoose';
|
|
26
|
+
import type IPluginOptions from '../interfaces/IPluginOptions';
|
|
27
|
+
export declare const deleteHooksInitialize: <T>(schema: Schema<T, Model<T, any, any, any, import("mongoose").IfAny<T, any, import("mongoose").Document<unknown, any, T> & import("mongoose").Require_id<T>>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>, import("mongoose").IfAny<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>, any, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>> & import("mongoose").Require_id<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>>>>, opts: IPluginOptions<T>) => void;
|
|
28
|
+
//# sourceMappingURL=delete-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/delete-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,KAAK,EAAoB,KAAK,EAA2B,MAAM,EAAE,MAAM,UAAU,CAAA;AACxF,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAa9D,eAAO,MAAM,qBAAqB,y8BAAoD,IAuCrF,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/// <reference types="mongoose/types/aggregate" />
|
|
2
|
+
/// <reference types="mongoose/types/callback" />
|
|
3
|
+
/// <reference types="mongoose/types/collection" />
|
|
4
|
+
/// <reference types="mongoose/types/connection" />
|
|
5
|
+
/// <reference types="mongoose/types/cursor" />
|
|
6
|
+
/// <reference types="mongoose/types/document" />
|
|
7
|
+
/// <reference types="mongoose/types/error" />
|
|
8
|
+
/// <reference types="mongoose/types/expressions" />
|
|
9
|
+
/// <reference types="mongoose/types/helpers" />
|
|
10
|
+
/// <reference types="mongoose/types/middlewares" />
|
|
11
|
+
/// <reference types="mongoose/types/indexes" />
|
|
12
|
+
/// <reference types="mongoose/types/models" />
|
|
13
|
+
/// <reference types="mongoose/types/mongooseoptions" />
|
|
14
|
+
/// <reference types="mongoose/types/pipelinestage" />
|
|
15
|
+
/// <reference types="mongoose/types/populate" />
|
|
16
|
+
/// <reference types="mongoose/types/query" />
|
|
17
|
+
/// <reference types="mongoose/types/schemaoptions" />
|
|
18
|
+
/// <reference types="mongoose/types/schematypes" />
|
|
19
|
+
/// <reference types="mongoose/types/session" />
|
|
20
|
+
/// <reference types="mongoose/types/types" />
|
|
21
|
+
/// <reference types="mongoose/types/utility" />
|
|
22
|
+
/// <reference types="mongoose/types/validation" />
|
|
23
|
+
/// <reference types="mongoose/types/virtuals" />
|
|
24
|
+
/// <reference types="mongoose/types/inferschematype" />
|
|
25
|
+
import type { Model, Schema } from 'mongoose';
|
|
26
|
+
import type IPluginOptions from '../interfaces/IPluginOptions';
|
|
27
|
+
export declare const saveHooksInitialize: <T>(schema: Schema<T, Model<T, any, any, any, import("mongoose").IfAny<T, any, import("mongoose").Document<unknown, any, T> & import("mongoose").Require_id<T>>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>, import("mongoose").IfAny<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>, any, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>> & import("mongoose").Require_id<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>>>>, opts: IPluginOptions<T>) => void;
|
|
28
|
+
//# sourceMappingURL=save-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/save-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,eAAO,MAAM,mBAAmB,y8BAAoD,IAqBnF,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/// <reference types="mongoose/types/aggregate" />
|
|
2
|
+
/// <reference types="mongoose/types/callback" />
|
|
3
|
+
/// <reference types="mongoose/types/collection" />
|
|
4
|
+
/// <reference types="mongoose/types/connection" />
|
|
5
|
+
/// <reference types="mongoose/types/cursor" />
|
|
6
|
+
/// <reference types="mongoose/types/document" />
|
|
7
|
+
/// <reference types="mongoose/types/error" />
|
|
8
|
+
/// <reference types="mongoose/types/expressions" />
|
|
9
|
+
/// <reference types="mongoose/types/helpers" />
|
|
10
|
+
/// <reference types="mongoose/types/middlewares" />
|
|
11
|
+
/// <reference types="mongoose/types/indexes" />
|
|
12
|
+
/// <reference types="mongoose/types/models" />
|
|
13
|
+
/// <reference types="mongoose/types/mongooseoptions" />
|
|
14
|
+
/// <reference types="mongoose/types/pipelinestage" />
|
|
15
|
+
/// <reference types="mongoose/types/populate" />
|
|
16
|
+
/// <reference types="mongoose/types/query" />
|
|
17
|
+
/// <reference types="mongoose/types/schemaoptions" />
|
|
18
|
+
/// <reference types="mongoose/types/schematypes" />
|
|
19
|
+
/// <reference types="mongoose/types/session" />
|
|
20
|
+
/// <reference types="mongoose/types/types" />
|
|
21
|
+
/// <reference types="mongoose/types/utility" />
|
|
22
|
+
/// <reference types="mongoose/types/validation" />
|
|
23
|
+
/// <reference types="mongoose/types/virtuals" />
|
|
24
|
+
/// <reference types="mongoose/types/inferschematype" />
|
|
25
|
+
import type { HydratedDocument, Model, Schema, UpdateQuery, UpdateWithAggregationPipeline } from 'mongoose';
|
|
26
|
+
import type IPluginOptions from '../interfaces/IPluginOptions';
|
|
27
|
+
export declare const assignUpdate: <T>(document: HydratedDocument<T>, update: UpdateQuery<T>, commands: Record<string, unknown>[]) => HydratedDocument<T>;
|
|
28
|
+
export declare const splitUpdateAndCommands: <T>(updateQuery: UpdateWithAggregationPipeline | UpdateQuery<T> | null) => {
|
|
29
|
+
update: UpdateQuery<T>;
|
|
30
|
+
commands: Record<string, unknown>[];
|
|
31
|
+
};
|
|
32
|
+
export declare const updateHooksInitialize: <T>(schema: Schema<T, Model<T, any, any, any, import("mongoose").IfAny<T, any, import("mongoose").Document<unknown, any, T> & import("mongoose").Require_id<T>>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>, import("mongoose").IfAny<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>, any, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>> & import("mongoose").Require_id<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>>>>, opts: IPluginOptions<T>) => void;
|
|
33
|
+
//# sourceMappingURL=update-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/update-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAA2B,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AACpI,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAa9D,eAAO,MAAM,YAAY,uEAAwE,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE,wBAWzH,CAAA;AAED,eAAO,MAAM,sBAAsB;;cAAgH,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE;CAiB3K,CAAA;AAED,eAAO,MAAM,qBAAqB,y8BAAoD,IA+CrF,CAAA"}
|
|
@@ -24,6 +24,12 @@
|
|
|
24
24
|
/// <reference types="mongoose/types/inferschematype" />
|
|
25
25
|
import { Schema } from 'mongoose';
|
|
26
26
|
import type IHistory from '../interfaces/IHistory';
|
|
27
|
-
declare const History: import("mongoose").Model<IHistory, {}, {}, {},
|
|
27
|
+
declare const History: import("mongoose").Model<IHistory, {}, {}, {}, import("mongoose").Document<unknown, {}, IHistory> & IHistory & {
|
|
28
|
+
_id: import("mongoose").Types.ObjectId;
|
|
29
|
+
}, Schema<IHistory, import("mongoose").Model<IHistory, any, any, any, import("mongoose").Document<unknown, any, IHistory> & IHistory & {
|
|
30
|
+
_id: import("mongoose").Types.ObjectId;
|
|
31
|
+
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, IHistory, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<IHistory>> & import("mongoose").FlatRecord<IHistory> & {
|
|
32
|
+
_id: import("mongoose").Types.ObjectId;
|
|
33
|
+
}>>;
|
|
28
34
|
export default History;
|
|
29
35
|
//# sourceMappingURL=History.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../src/models/History.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,UAAU,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AA4ClD,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../src/models/History.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,UAAU,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AA4ClD,QAAA,MAAM,OAAO;;;;;;GAA6C,CAAA;AAE1D,eAAe,OAAO,CAAA"}
|