ts-patch-mongoose 1.1.3 → 1.1.4
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/dist/cjs/plugin.js +22 -4
- package/dist/cjs/plugin.js.map +1 -1
- package/dist/cjs/types/plugin.d.ts.map +1 -1
- package/dist/esm/plugin.js.map +1 -1
- package/dist/esm/plugin.mjs +22 -4
- package/dist/esm/types/plugin.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/plugin.ts +25 -5
- package/tests/plugin-event-created.test.ts +225 -76
- package/tests/plugin-event-deleted.test.ts +35 -35
- package/tests/plugin-event-updated.test.ts +139 -15
package/dist/cjs/plugin.js
CHANGED
|
@@ -12,6 +12,24 @@ const options = {
|
|
|
12
12
|
document: false,
|
|
13
13
|
query: true
|
|
14
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
|
+
];
|
|
15
33
|
function getObjects(opts, current, original) {
|
|
16
34
|
let currentObject = JSON.parse(JSON.stringify(current));
|
|
17
35
|
let originalObject = JSON.parse(JSON.stringify(original));
|
|
@@ -125,7 +143,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
125
143
|
};
|
|
126
144
|
await createPatch(opts, context);
|
|
127
145
|
});
|
|
128
|
-
schema.pre(
|
|
146
|
+
schema.pre(updateMethods, async function (next) {
|
|
129
147
|
const filter = this.getFilter();
|
|
130
148
|
const update = this.getUpdate();
|
|
131
149
|
const options = this.getOptions();
|
|
@@ -165,7 +183,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
165
183
|
next(error);
|
|
166
184
|
}
|
|
167
185
|
});
|
|
168
|
-
schema.post(
|
|
186
|
+
schema.post(updateMethods, async function () {
|
|
169
187
|
const update = this.getUpdate();
|
|
170
188
|
if (update && this._context.isNew) {
|
|
171
189
|
const cursor = this.model.findOne(update).cursor();
|
|
@@ -200,7 +218,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
200
218
|
next(error);
|
|
201
219
|
}
|
|
202
220
|
});
|
|
203
|
-
schema.pre(
|
|
221
|
+
schema.pre(deleteMethods, options, async function (next) {
|
|
204
222
|
const filter = this.getFilter();
|
|
205
223
|
const options = this.getOptions();
|
|
206
224
|
const ignore = options.__ignore;
|
|
@@ -228,7 +246,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
228
246
|
}
|
|
229
247
|
next();
|
|
230
248
|
});
|
|
231
|
-
schema.post(
|
|
249
|
+
schema.post(deleteMethods, options, async function () {
|
|
232
250
|
await deletePatch(opts, this._context);
|
|
233
251
|
});
|
|
234
252
|
};
|
package/dist/cjs/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,KAAK,EAAmC,KAAK,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,KAAK,EAAmC,KAAK,EAA0C,MAAM,EAAS,MAAM,UAAU,CAAA;AAE7H,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AA+H7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IA2JlG,CAAA"}
|
package/dist/esm/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,SAAS,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAQrC,OAAO,EAAE,MAAM,MAAM,CAAA;AACrB,OAAO,OAAO,MAAM,kBAAkB,CAAA;AAEtC,MAAM,OAAO,GAAG;IACd,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;CACZ,CAAA;AAED,MAAM,aAAa,GAAG;IACpB,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;CACpB,CAAA;AAED,MAAM,aAAa,GAAG;IACpB,QAAQ;IACR,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,WAAW;IACX,YAAY;CACb,CAAA;AAED,SAAS,UAAU,CAAK,IAAuB,EAAE,OAA4B,EAAE,QAA6B;IAC1G,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAe,CAAA;IACrE,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAe,CAAA;IAEvE,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9C,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;KACjD;IAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA;AAC1C,CAAC;AAED,KAAK,UAAU,WAAW,CAAK,IAAuB,EAAE,OAAoB,EAAE,OAA4B,EAAE,QAA6B;IACvI,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAE7E,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QAAE,OAAM;IAEjE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IAEpE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAM;IAE5B,IAAI,IAAI,CAAC,YAAY,EAAE;QACrB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;KACtE;IAED,IAAI,IAAI,CAAC,oBAAoB;QAAE,OAAM;IAErC,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;IAEnH,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,IAAI,CAAC,EAAE;QAC3C,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,CAAC,CAAA;KAClC;IAED,MAAM,OAAO,CAAC,MAAM,CAAC;QACnB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,YAAY,EAAE,QAAQ,CAAC,GAAqB;QAC5C,KAAK;QACL,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CAAK,IAAuB,EAAE,OAAoB,EAAE,QAAyC,EAAE,OAAsC;IAC3J,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,MAAM,GAAG,GAAG,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAA;IAE1D,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,oBAAoB,CAAC;QAAE,OAAM;IAEpE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE;QAChC,MAAM,IAAI,GAAG,EAAE,CAAA;QACf,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;YACvB,IAAI,KAAK;gBAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;YAEzC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC9B,IAAI,CAAC,IAAI,CAAC;oBACR,SAAS,EAAE;wBACT,QAAQ,EAAE;4BACR,EAAE,EAAE,OAAO,CAAC,EAAE;4BACd,SAAS,EAAE,OAAO,CAAC,SAAS;4BAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;4BACtC,YAAY,EAAE,GAAG,CAAC,GAAqB;4BACvC,GAAG;4BACH,OAAO,EAAE,CAAC;yBACX;qBACF;iBACF,CAAC,CAAA;aACH;SACF;QAED,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,MAAM,OAAO;iBACV,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;iBACnC,KAAK,CAAC,CAAC,GAAkB,EAAE,EAAE;gBAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;SACL;KACF;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAK,IAAuB,EAAE,OAAoB;IAC1E,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAC/D,CAAC;AAED,KAAK,UAAU,WAAW,CAAK,IAAuB,EAAE,OAAoB;IAC1E,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAC/D,CAAC;AAKD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAQnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,MAAM,CAAK,MAAiB,EAAE,IAAuB;IAC9F,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,WAAW,IAAI;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAwB,CAAA;QAC1E,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;YACF,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;aACjC;iBAAM;gBACL,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;gBACzD,IAAI,QAAQ,EAAE;oBACZ,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;iBACpD;aACF;YACD,IAAI,EAAE,CAAA;SACP;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,KAAsB,CAAC,CAAA;SAC7B;IACH,CAAC,CAAC,CAAA;IAEF,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,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,aAA0C,EAAE,KAAK,WAAkC,IAAI;QAChG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAuC,CAAA;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAEjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QACnD,MAAM,QAAQ,GAAiC,EAAE,CAAA;QAEjD,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,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,KAAK,CAAC;SACrC,CAAA;QAED,IAAI;YACF,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;YAChE,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC9B,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;oBACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;oBAErC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;gBACpB,CAAC,CAAC,CAAA;aACH;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,MAAM,CAAC,CAAC,MAAM,EAAE,CAAA;YACpE,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACnC,IAAI,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAwB,CAAA;gBACvE,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAwB,CAAA;gBAC1E,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBACjC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;oBAC9B,IAAI;wBACF,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;qBACnC;oBAAC,OAAO,KAAK,EAAE;qBAEf;gBACH,CAAC,CAAC,CAAA;gBACF,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;YAC3D,CAAC,CAAC,CAAA;YACF,IAAI,EAAE,CAAA;SACP;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,KAAsB,CAAC,CAAA;SAC7B;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,aAA0C,EAAE,KAAK;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAE/B,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAsB,MAAM,CAAC,CAAC,MAAM,EAAE,CAAA;YACvE,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAwB,CAAA;gBACzE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;oBAC7B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBACxC;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,CAAA;iBACtC;YACH,CAAC,CAAC,CAAA;YACF,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;SACvC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,WAAsC,IAAI;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAuB,CAAA;QAE1C,MAAM,OAAO,GAAgB;YAC3B,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;YAC5C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc;SACvE,CAAA;QAED,IAAI;YACF,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;aACjD;YACD,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAChC,IAAI,EAAE,CAAA;SACP;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,KAAsB,CAAC,CAAA;SAC7B;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,aAA0C,EAAE,OAAO,EAAE,KAAK,WAAkC,IAAI;QACzG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAmB,CAAA;QAE1C,IAAI,MAAM;YAAE,OAAO,IAAI,EAAE,CAAA;QAEzB,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;SAC5E,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,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;YACtE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAA;aACjC;SACF;aAAM;YACL,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAsB,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;YACxE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAA;aAClC;SACF;QAED,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC/G,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;SAC5D;QAED,IAAI,EAAE,CAAA;IACR,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,aAA0C,EAAE,OAAO,EAAE,KAAK;QACpE,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
package/dist/esm/plugin.mjs
CHANGED
|
@@ -8,6 +8,24 @@ const options = {
|
|
|
8
8
|
document: false,
|
|
9
9
|
query: true
|
|
10
10
|
};
|
|
11
|
+
const updateMethods = [
|
|
12
|
+
'update',
|
|
13
|
+
'updateOne',
|
|
14
|
+
'replaceOne',
|
|
15
|
+
'updateMany',
|
|
16
|
+
'findOneAndUpdate',
|
|
17
|
+
'findOneAndReplace',
|
|
18
|
+
'findByIdAndUpdate'
|
|
19
|
+
];
|
|
20
|
+
const deleteMethods = [
|
|
21
|
+
'remove',
|
|
22
|
+
'findOneAndDelete',
|
|
23
|
+
'findOneAndRemove',
|
|
24
|
+
'findByIdAndDelete',
|
|
25
|
+
'findByIdAndRemove',
|
|
26
|
+
'deleteOne',
|
|
27
|
+
'deleteMany'
|
|
28
|
+
];
|
|
11
29
|
function getObjects(opts, current, original) {
|
|
12
30
|
let currentObject = JSON.parse(JSON.stringify(current));
|
|
13
31
|
let originalObject = JSON.parse(JSON.stringify(original));
|
|
@@ -121,7 +139,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
121
139
|
};
|
|
122
140
|
await createPatch(opts, context);
|
|
123
141
|
});
|
|
124
|
-
schema.pre(
|
|
142
|
+
schema.pre(updateMethods, async function (next) {
|
|
125
143
|
const filter = this.getFilter();
|
|
126
144
|
const update = this.getUpdate();
|
|
127
145
|
const options = this.getOptions();
|
|
@@ -161,7 +179,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
161
179
|
next(error);
|
|
162
180
|
}
|
|
163
181
|
});
|
|
164
|
-
schema.post(
|
|
182
|
+
schema.post(updateMethods, async function () {
|
|
165
183
|
const update = this.getUpdate();
|
|
166
184
|
if (update && this._context.isNew) {
|
|
167
185
|
const cursor = this.model.findOne(update).cursor();
|
|
@@ -196,7 +214,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
196
214
|
next(error);
|
|
197
215
|
}
|
|
198
216
|
});
|
|
199
|
-
schema.pre(
|
|
217
|
+
schema.pre(deleteMethods, options, async function (next) {
|
|
200
218
|
const filter = this.getFilter();
|
|
201
219
|
const options = this.getOptions();
|
|
202
220
|
const ignore = options.__ignore;
|
|
@@ -224,7 +242,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
224
242
|
}
|
|
225
243
|
next();
|
|
226
244
|
});
|
|
227
|
-
schema.post(
|
|
245
|
+
schema.post(deleteMethods, options, async function () {
|
|
228
246
|
await deletePatch(opts, this._context);
|
|
229
247
|
});
|
|
230
248
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,KAAK,EAAmC,KAAK,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,KAAK,EAAmC,KAAK,EAA0C,MAAM,EAAS,MAAM,UAAU,CAAA;AAE7H,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AA+H7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IA2JlG,CAAA"}
|
package/package.json
CHANGED
package/src/plugin.ts
CHANGED
|
@@ -3,7 +3,7 @@ import omit from 'omit-deep'
|
|
|
3
3
|
import jsonpatch from 'fast-json-patch'
|
|
4
4
|
import { assign } from 'power-assign'
|
|
5
5
|
|
|
6
|
-
import type { CallbackError, HydratedDocument, Model, MongooseError, Schema, Types } from 'mongoose'
|
|
6
|
+
import type { CallbackError, HydratedDocument, Model, MongooseError, MongooseQueryMiddleware, Schema, Types } from 'mongoose'
|
|
7
7
|
|
|
8
8
|
import type IPluginOptions from './interfaces/IPluginOptions'
|
|
9
9
|
import type IContext from './interfaces/IContext'
|
|
@@ -17,6 +17,26 @@ const options = {
|
|
|
17
17
|
query: true
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
const updateMethods = [
|
|
21
|
+
'update',
|
|
22
|
+
'updateOne',
|
|
23
|
+
'replaceOne',
|
|
24
|
+
'updateMany',
|
|
25
|
+
'findOneAndUpdate',
|
|
26
|
+
'findOneAndReplace',
|
|
27
|
+
'findByIdAndUpdate'
|
|
28
|
+
]
|
|
29
|
+
|
|
30
|
+
const deleteMethods = [
|
|
31
|
+
'remove',
|
|
32
|
+
'findOneAndDelete',
|
|
33
|
+
'findOneAndRemove',
|
|
34
|
+
'findByIdAndDelete',
|
|
35
|
+
'findByIdAndRemove',
|
|
36
|
+
'deleteOne',
|
|
37
|
+
'deleteMany'
|
|
38
|
+
]
|
|
39
|
+
|
|
20
40
|
function getObjects<T> (opts: IPluginOptions<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): { currentObject: Partial<T>, originalObject: Partial<T> } {
|
|
21
41
|
let currentObject = JSON.parse(JSON.stringify(current)) as Partial<T>
|
|
22
42
|
let originalObject = JSON.parse(JSON.stringify(original)) as Partial<T>
|
|
@@ -158,7 +178,7 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
|
|
|
158
178
|
await createPatch(opts, context)
|
|
159
179
|
})
|
|
160
180
|
|
|
161
|
-
schema.pre(
|
|
181
|
+
schema.pre(updateMethods as MongooseQueryMiddleware[], async function (this: IHookContext<T>, next) {
|
|
162
182
|
const filter = this.getFilter()
|
|
163
183
|
const update = this.getUpdate() as Record<string, Partial<T>> | null
|
|
164
184
|
const options = this.getOptions()
|
|
@@ -202,7 +222,7 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
|
|
|
202
222
|
}
|
|
203
223
|
})
|
|
204
224
|
|
|
205
|
-
schema.post(
|
|
225
|
+
schema.post(updateMethods as MongooseQueryMiddleware[], async function (this: IHookContext<T>) {
|
|
206
226
|
const update = this.getUpdate()
|
|
207
227
|
|
|
208
228
|
if (update && this._context.isNew) {
|
|
@@ -240,7 +260,7 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
|
|
|
240
260
|
}
|
|
241
261
|
})
|
|
242
262
|
|
|
243
|
-
schema.pre(
|
|
263
|
+
schema.pre(deleteMethods as MongooseQueryMiddleware[], options, async function (this: IHookContext<T>, next) {
|
|
244
264
|
const filter = this.getFilter()
|
|
245
265
|
const options = this.getOptions()
|
|
246
266
|
const ignore = options.__ignore as boolean
|
|
@@ -272,7 +292,7 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
|
|
|
272
292
|
next()
|
|
273
293
|
})
|
|
274
294
|
|
|
275
|
-
schema.post(
|
|
295
|
+
schema.post(deleteMethods as MongooseQueryMiddleware[], options, async function (this: IHookContext<T>) {
|
|
276
296
|
await deletePatch(opts, this._context)
|
|
277
297
|
})
|
|
278
298
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import mongoose, { model } from 'mongoose'
|
|
1
|
+
import mongoose, { Types, model } from 'mongoose'
|
|
2
2
|
|
|
3
3
|
import UserSchema from './schemas/UserSchema'
|
|
4
4
|
import { patchHistoryPlugin } from '../src/plugin'
|
|
@@ -36,99 +36,248 @@ describe('plugin - event created & patch history disabled', () => {
|
|
|
36
36
|
await mongoose.connection.collection('history').deleteMany({})
|
|
37
37
|
})
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
39
|
+
describe('normal cases', () => {
|
|
40
|
+
it('should save() and emit one create event', async () => {
|
|
41
|
+
const john = new User({ name: 'John', role: 'user' })
|
|
42
|
+
await john.save()
|
|
43
|
+
|
|
44
|
+
const history = await History.find({})
|
|
45
|
+
expect(history).toHaveLength(0)
|
|
46
|
+
|
|
47
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
48
|
+
expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
|
|
49
|
+
doc: expect.objectContaining({
|
|
50
|
+
_id: john._id,
|
|
51
|
+
name: john.name,
|
|
52
|
+
role: john.role,
|
|
53
|
+
createdAt: john.createdAt,
|
|
54
|
+
updatedAt: john.updatedAt
|
|
55
|
+
})
|
|
54
56
|
})
|
|
55
57
|
})
|
|
56
|
-
})
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
it('should create() and emit one create event', async () => {
|
|
60
|
+
const user = await User.create({ name: 'John', role: 'user' })
|
|
60
61
|
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
const history = await History.find({})
|
|
63
|
+
expect(history).toHaveLength(0)
|
|
63
64
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
66
|
+
expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
|
|
67
|
+
doc: expect.objectContaining({
|
|
68
|
+
_id: user._id,
|
|
69
|
+
name: user.name,
|
|
70
|
+
role: user.role,
|
|
71
|
+
createdAt: user.createdAt,
|
|
72
|
+
updatedAt: user.updatedAt
|
|
73
|
+
})
|
|
72
74
|
})
|
|
73
75
|
})
|
|
74
|
-
})
|
|
75
76
|
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
it('should insertMany() and emit three create events', async () => {
|
|
78
|
+
const users = await User.insertMany([
|
|
79
|
+
{ name: 'John', role: 'user' },
|
|
80
|
+
{ name: 'Alice', role: 'user' },
|
|
81
|
+
{ name: 'Bob', role: 'user' }
|
|
82
|
+
])
|
|
83
|
+
|
|
84
|
+
const [john, alice, bob] = users
|
|
78
85
|
|
|
79
|
-
|
|
80
|
-
|
|
86
|
+
const history = await History.find({})
|
|
87
|
+
expect(history).toHaveLength(0)
|
|
81
88
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
expect(em.emit).toHaveBeenCalledTimes(3)
|
|
90
|
+
expect(em.emit).toHaveBeenNthCalledWith(1, USER_CREATED, {
|
|
91
|
+
doc: expect.objectContaining({
|
|
92
|
+
_id: john._id,
|
|
93
|
+
name: john.name,
|
|
94
|
+
role: john.role,
|
|
95
|
+
createdAt: john.createdAt,
|
|
96
|
+
updatedAt: john.updatedAt
|
|
97
|
+
})
|
|
98
|
+
})
|
|
99
|
+
expect(em.emit).toHaveBeenNthCalledWith(2, USER_CREATED, {
|
|
100
|
+
doc: expect.objectContaining({
|
|
101
|
+
_id: alice._id,
|
|
102
|
+
name: alice.name,
|
|
103
|
+
role: alice.role,
|
|
104
|
+
createdAt: alice.createdAt,
|
|
105
|
+
updatedAt: alice.updatedAt
|
|
106
|
+
})
|
|
107
|
+
})
|
|
108
|
+
expect(em.emit).toHaveBeenNthCalledWith(3, USER_CREATED, {
|
|
109
|
+
doc: expect.objectContaining({
|
|
110
|
+
_id: bob._id,
|
|
111
|
+
name: bob.name,
|
|
112
|
+
role: bob.role,
|
|
113
|
+
createdAt: bob.createdAt,
|
|
114
|
+
updatedAt: bob.updatedAt
|
|
115
|
+
})
|
|
90
116
|
})
|
|
91
117
|
})
|
|
92
118
|
})
|
|
93
119
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
120
|
+
describe('upsert cases', () => {
|
|
121
|
+
it('should update() + upsert and emit one create event', async () => {
|
|
122
|
+
await User.update(
|
|
123
|
+
{ name: 'John' },
|
|
124
|
+
{ name: 'John', role: 'admin' },
|
|
125
|
+
{ upsert: true }
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
const user = await User.findOne({ name: 'John', role: 'admin' })
|
|
129
|
+
expect(user).not.toBeNull()
|
|
130
|
+
|
|
131
|
+
const history = await History.find({})
|
|
132
|
+
expect(history).toHaveLength(0)
|
|
133
|
+
|
|
134
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
135
|
+
expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
|
|
136
|
+
doc: expect.objectContaining({
|
|
137
|
+
_id: user?._id,
|
|
138
|
+
name: user?.name,
|
|
139
|
+
role: user?.role
|
|
140
|
+
// Upsert does not set createdAt and updatedAt
|
|
141
|
+
})
|
|
142
|
+
})
|
|
143
|
+
})
|
|
144
|
+
|
|
145
|
+
it('should updateOne() + upsert and emit one create event', async () => {
|
|
146
|
+
await User.updateOne(
|
|
147
|
+
{ name: 'John' },
|
|
148
|
+
{ name: 'John', role: 'admin' },
|
|
149
|
+
{ upsert: true }
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
const user = await User.findOne({ name: 'John', role: 'admin' })
|
|
153
|
+
expect(user).not.toBeNull()
|
|
154
|
+
|
|
155
|
+
const history = await History.find({})
|
|
156
|
+
expect(history).toHaveLength(0)
|
|
157
|
+
|
|
158
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
159
|
+
expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
|
|
160
|
+
doc: expect.objectContaining({
|
|
161
|
+
_id: user?._id,
|
|
162
|
+
name: user?.name,
|
|
163
|
+
role: user?.role
|
|
164
|
+
// Upsert does not set createdAt and updatedAt
|
|
165
|
+
})
|
|
166
|
+
})
|
|
167
|
+
})
|
|
168
|
+
|
|
169
|
+
it('should replaceOne() + upsert and emit one create event', async () => {
|
|
170
|
+
await User.replaceOne(
|
|
171
|
+
{ name: 'John' },
|
|
172
|
+
{ name: 'John', role: 'admin' },
|
|
173
|
+
{ upsert: true }
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
const user = await User.findOne({ name: 'John', role: 'admin' })
|
|
177
|
+
expect(user).not.toBeNull()
|
|
178
|
+
|
|
179
|
+
const history = await History.find({})
|
|
180
|
+
expect(history).toHaveLength(0)
|
|
181
|
+
|
|
182
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
183
|
+
expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
|
|
184
|
+
doc: expect.objectContaining({
|
|
185
|
+
_id: user?._id,
|
|
186
|
+
name: user?.name,
|
|
187
|
+
role: user?.role
|
|
188
|
+
// Upsert does not set createdAt and updatedAt
|
|
189
|
+
})
|
|
114
190
|
})
|
|
115
191
|
})
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
name:
|
|
120
|
-
role:
|
|
121
|
-
|
|
122
|
-
|
|
192
|
+
|
|
193
|
+
it('should updateMany() + upsert and emit one create event', async () => {
|
|
194
|
+
await User.updateMany(
|
|
195
|
+
{ name: { $in: ['John', 'Alice', 'Bob'] } },
|
|
196
|
+
{ name: 'Steve', role: 'admin' },
|
|
197
|
+
{ upsert: true }
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
const users = await User.findOne({ name: 'Steve', role: 'admin' })
|
|
201
|
+
|
|
202
|
+
const history = await History.find({})
|
|
203
|
+
expect(history).toHaveLength(0)
|
|
204
|
+
|
|
205
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
206
|
+
expect(em.emit).toHaveBeenNthCalledWith(1, USER_CREATED, {
|
|
207
|
+
doc: expect.objectContaining({
|
|
208
|
+
_id: users?._id,
|
|
209
|
+
name: users?.name,
|
|
210
|
+
role: users?.role
|
|
211
|
+
// Upsert does not set createdAt and updatedAt
|
|
212
|
+
})
|
|
213
|
+
})
|
|
214
|
+
})
|
|
215
|
+
|
|
216
|
+
it('should findOneAndUpdate() + upsert and emit one create event', async () => {
|
|
217
|
+
await User.findOneAndUpdate(
|
|
218
|
+
{ name: 'John' },
|
|
219
|
+
{ name: 'John', role: 'admin' },
|
|
220
|
+
{ upsert: true }
|
|
221
|
+
)
|
|
222
|
+
|
|
223
|
+
const user = await User.findOne({ name: 'John', role: 'admin' })
|
|
224
|
+
expect(user).not.toBeNull()
|
|
225
|
+
|
|
226
|
+
const history = await History.find({})
|
|
227
|
+
expect(history).toHaveLength(0)
|
|
228
|
+
|
|
229
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
230
|
+
expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
|
|
231
|
+
doc: expect.objectContaining({
|
|
232
|
+
_id: user?._id,
|
|
233
|
+
name: user?.name,
|
|
234
|
+
role: user?.role
|
|
235
|
+
// Upsert does not set createdAt and updatedAt
|
|
236
|
+
})
|
|
123
237
|
})
|
|
124
238
|
})
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
name:
|
|
129
|
-
role:
|
|
130
|
-
|
|
131
|
-
|
|
239
|
+
|
|
240
|
+
it('should findOneAndReplace() + upsert and emit one create event', async () => {
|
|
241
|
+
await User.findOneAndReplace(
|
|
242
|
+
{ name: 'John' },
|
|
243
|
+
{ name: 'John', role: 'admin' },
|
|
244
|
+
{ upsert: true }
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
const user = await User.findOne({ name: 'John', role: 'admin' })
|
|
248
|
+
expect(user).not.toBeNull()
|
|
249
|
+
|
|
250
|
+
const history = await History.find({})
|
|
251
|
+
expect(history).toHaveLength(0)
|
|
252
|
+
|
|
253
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
254
|
+
expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
|
|
255
|
+
doc: expect.objectContaining({
|
|
256
|
+
_id: user?._id,
|
|
257
|
+
name: user?.name,
|
|
258
|
+
role: user?.role
|
|
259
|
+
// Upsert does not set createdAt and updatedAt
|
|
260
|
+
})
|
|
261
|
+
})
|
|
262
|
+
})
|
|
263
|
+
|
|
264
|
+
it('should findByIdAndUpdate() + upsert and emit one create event', async () => {
|
|
265
|
+
const _id = new Types.ObjectId()
|
|
266
|
+
await User.findByIdAndUpdate(_id, { name: 'John', role: 'admin' }, { upsert: true })
|
|
267
|
+
|
|
268
|
+
const user = await User.findOne({ name: 'John', role: 'admin' })
|
|
269
|
+
expect(user).not.toBeNull()
|
|
270
|
+
|
|
271
|
+
const history = await History.find({})
|
|
272
|
+
expect(history).toHaveLength(0)
|
|
273
|
+
|
|
274
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
275
|
+
expect(em.emit).toHaveBeenCalledWith(USER_CREATED, {
|
|
276
|
+
doc: expect.objectContaining({
|
|
277
|
+
_id: user?._id,
|
|
278
|
+
name: user?.name,
|
|
279
|
+
role: user?.role
|
|
280
|
+
})
|
|
132
281
|
})
|
|
133
282
|
})
|
|
134
283
|
})
|
|
@@ -36,7 +36,20 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
36
36
|
await mongoose.connection.collection('history').deleteMany({})
|
|
37
37
|
})
|
|
38
38
|
|
|
39
|
-
it('should
|
|
39
|
+
it('should remove() and emit one delete event', async () => {
|
|
40
|
+
const john = await User.create({ name: 'John', role: 'user' })
|
|
41
|
+
await john.remove()
|
|
42
|
+
|
|
43
|
+
const history = await History.find({})
|
|
44
|
+
expect(history).toHaveLength(0)
|
|
45
|
+
|
|
46
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
47
|
+
expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
|
|
48
|
+
oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
it('should remove() and emit two delete events', async () => {
|
|
40
53
|
const users = await User.create([
|
|
41
54
|
{ name: 'John', role: 'user' },
|
|
42
55
|
{ name: 'Alice', role: 'user' },
|
|
@@ -45,7 +58,11 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
45
58
|
|
|
46
59
|
const [john, alice] = users
|
|
47
60
|
|
|
48
|
-
await User.
|
|
61
|
+
await User.remove({ role: 'user' }).exec()
|
|
62
|
+
|
|
63
|
+
const remaining = await User.find({})
|
|
64
|
+
|
|
65
|
+
expect(remaining).toHaveLength(1)
|
|
49
66
|
|
|
50
67
|
const history = await History.find({})
|
|
51
68
|
expect(history).toHaveLength(0)
|
|
@@ -59,7 +76,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
59
76
|
})
|
|
60
77
|
})
|
|
61
78
|
|
|
62
|
-
it('should
|
|
79
|
+
it('should remove() and emit one delete event { single: true }', async () => {
|
|
63
80
|
const users = await User.create([
|
|
64
81
|
{ name: 'John', role: 'user' },
|
|
65
82
|
{ name: 'Alice', role: 'user' },
|
|
@@ -68,7 +85,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
68
85
|
|
|
69
86
|
const [john] = users
|
|
70
87
|
|
|
71
|
-
await User.
|
|
88
|
+
await User.remove({ role: 'user' }, { single: true }).exec()
|
|
72
89
|
|
|
73
90
|
const history = await History.find({})
|
|
74
91
|
expect(history).toHaveLength(0)
|
|
@@ -79,7 +96,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
79
96
|
})
|
|
80
97
|
})
|
|
81
98
|
|
|
82
|
-
it('should
|
|
99
|
+
it('should findOneAndDelete() and emit one delete event', async () => {
|
|
83
100
|
const users = await User.create([
|
|
84
101
|
{ name: 'John', role: 'user' },
|
|
85
102
|
{ name: 'Alice', role: 'user' },
|
|
@@ -88,7 +105,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
88
105
|
|
|
89
106
|
const [john] = users
|
|
90
107
|
|
|
91
|
-
await User.
|
|
108
|
+
await User.findOneAndDelete({ role: 'user' }).exec()
|
|
92
109
|
|
|
93
110
|
const history = await History.find({})
|
|
94
111
|
expect(history).toHaveLength(0)
|
|
@@ -99,7 +116,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
99
116
|
})
|
|
100
117
|
})
|
|
101
118
|
|
|
102
|
-
it('should
|
|
119
|
+
it('should findOneAndRemove() and emit one delete event', async () => {
|
|
103
120
|
const users = await User.create([
|
|
104
121
|
{ name: 'John', role: 'user' },
|
|
105
122
|
{ name: 'Alice', role: 'user' },
|
|
@@ -108,7 +125,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
108
125
|
|
|
109
126
|
const [john] = users
|
|
110
127
|
|
|
111
|
-
await User.
|
|
128
|
+
await User.findOneAndRemove({ role: 'user' }).exec()
|
|
112
129
|
|
|
113
130
|
const history = await History.find({})
|
|
114
131
|
expect(history).toHaveLength(0)
|
|
@@ -119,7 +136,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
119
136
|
})
|
|
120
137
|
})
|
|
121
138
|
|
|
122
|
-
it('should
|
|
139
|
+
it('should findByIdAndDelete() and emit one delete event', async () => {
|
|
123
140
|
const users = await User.create([
|
|
124
141
|
{ name: 'John', role: 'user' },
|
|
125
142
|
{ name: 'Alice', role: 'user' },
|
|
@@ -128,7 +145,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
128
145
|
|
|
129
146
|
const [john] = users
|
|
130
147
|
|
|
131
|
-
await User.
|
|
148
|
+
await User.findByIdAndDelete(john._id).exec()
|
|
132
149
|
|
|
133
150
|
const history = await History.find({})
|
|
134
151
|
expect(history).toHaveLength(0)
|
|
@@ -139,7 +156,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
139
156
|
})
|
|
140
157
|
})
|
|
141
158
|
|
|
142
|
-
it('should
|
|
159
|
+
it('should findByIdAndRemove() and emit one delete event', async () => {
|
|
143
160
|
const users = await User.create([
|
|
144
161
|
{ name: 'John', role: 'user' },
|
|
145
162
|
{ name: 'Alice', role: 'user' },
|
|
@@ -148,7 +165,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
148
165
|
|
|
149
166
|
const [john] = users
|
|
150
167
|
|
|
151
|
-
await User.
|
|
168
|
+
await User.findByIdAndRemove(john._id).exec()
|
|
152
169
|
|
|
153
170
|
const history = await History.find({})
|
|
154
171
|
expect(history).toHaveLength(0)
|
|
@@ -159,7 +176,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
159
176
|
})
|
|
160
177
|
})
|
|
161
178
|
|
|
162
|
-
it('should
|
|
179
|
+
it('should deleteOne() and emit one delete event', async () => {
|
|
163
180
|
const users = await User.create([
|
|
164
181
|
{ name: 'John', role: 'user' },
|
|
165
182
|
{ name: 'Alice', role: 'user' },
|
|
@@ -168,7 +185,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
168
185
|
|
|
169
186
|
const [john] = users
|
|
170
187
|
|
|
171
|
-
await User.
|
|
188
|
+
await User.deleteOne({ role: 'user' }).exec()
|
|
172
189
|
|
|
173
190
|
const history = await History.find({})
|
|
174
191
|
expect(history).toHaveLength(0)
|
|
@@ -179,7 +196,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
179
196
|
})
|
|
180
197
|
})
|
|
181
198
|
|
|
182
|
-
it('should
|
|
199
|
+
it('should deleteMany() and emit two delete events', async () => {
|
|
183
200
|
const users = await User.create([
|
|
184
201
|
{ name: 'John', role: 'user' },
|
|
185
202
|
{ name: 'Alice', role: 'user' },
|
|
@@ -188,11 +205,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
188
205
|
|
|
189
206
|
const [john, alice] = users
|
|
190
207
|
|
|
191
|
-
await User.
|
|
192
|
-
|
|
193
|
-
const remaining = await User.find({})
|
|
194
|
-
|
|
195
|
-
expect(remaining).toHaveLength(1)
|
|
208
|
+
await User.deleteMany({ role: 'user' }).exec()
|
|
196
209
|
|
|
197
210
|
const history = await History.find({})
|
|
198
211
|
expect(history).toHaveLength(0)
|
|
@@ -206,7 +219,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
206
219
|
})
|
|
207
220
|
})
|
|
208
221
|
|
|
209
|
-
it('should
|
|
222
|
+
it('should deleteMany() and emit one delete event { single: true }', async () => {
|
|
210
223
|
const users = await User.create([
|
|
211
224
|
{ name: 'John', role: 'user' },
|
|
212
225
|
{ name: 'Alice', role: 'user' },
|
|
@@ -215,7 +228,7 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
215
228
|
|
|
216
229
|
const [john] = users
|
|
217
230
|
|
|
218
|
-
await User.
|
|
231
|
+
await User.deleteMany({ role: 'user' }, { single: true }).exec()
|
|
219
232
|
|
|
220
233
|
const history = await History.find({})
|
|
221
234
|
expect(history).toHaveLength(0)
|
|
@@ -238,17 +251,4 @@ describe('plugin - event delete & patch history disabled', () => {
|
|
|
238
251
|
oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
|
|
239
252
|
})
|
|
240
253
|
})
|
|
241
|
-
|
|
242
|
-
it('should create then remove and emit one delete event', async () => {
|
|
243
|
-
const john = await User.create({ name: 'John', role: 'user' })
|
|
244
|
-
await john.remove()
|
|
245
|
-
|
|
246
|
-
const history = await History.find({})
|
|
247
|
-
expect(history).toHaveLength(0)
|
|
248
|
-
|
|
249
|
-
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
250
|
-
expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
|
|
251
|
-
oldDoc: expect.objectContaining(john.toObject({ depopulate: true }))
|
|
252
|
-
})
|
|
253
|
-
})
|
|
254
254
|
})
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import mongoose, { model } from 'mongoose'
|
|
1
|
+
import mongoose, { Types, model } from 'mongoose'
|
|
2
2
|
|
|
3
3
|
import UserSchema from './schemas/UserSchema'
|
|
4
4
|
import { patchHistoryPlugin } from '../src/plugin'
|
|
@@ -37,7 +37,7 @@ describe('plugin - event updated & patch history disabled', () => {
|
|
|
37
37
|
await mongoose.connection.collection('history').deleteMany({})
|
|
38
38
|
})
|
|
39
39
|
|
|
40
|
-
it('should save
|
|
40
|
+
it('should save() and emit one update event', async () => {
|
|
41
41
|
await User.create({ name: 'Bob', role: 'user' })
|
|
42
42
|
const user = new User({ name: 'John', role: 'user' })
|
|
43
43
|
const created = await user.save()
|
|
@@ -74,7 +74,134 @@ describe('plugin - event updated & patch history disabled', () => {
|
|
|
74
74
|
})
|
|
75
75
|
})
|
|
76
76
|
|
|
77
|
-
it('should
|
|
77
|
+
it('should update() and emit three update event', async () => {
|
|
78
|
+
await User.create([
|
|
79
|
+
{ name: 'Alice', role: 'user' },
|
|
80
|
+
{ name: 'Bob', role: 'user' },
|
|
81
|
+
{ name: 'John', role: 'user' }
|
|
82
|
+
], { ordered: true })
|
|
83
|
+
|
|
84
|
+
await User.update({ role: 'user' }, { role: 'manager' })
|
|
85
|
+
const users = await User.find({ role: 'manager' })
|
|
86
|
+
expect(users).toHaveLength(3)
|
|
87
|
+
|
|
88
|
+
const history = await History.find({})
|
|
89
|
+
expect(history).toHaveLength(0)
|
|
90
|
+
|
|
91
|
+
expect(em.emit).toHaveBeenCalledTimes(3)
|
|
92
|
+
})
|
|
93
|
+
|
|
94
|
+
it('should updateOne() and emit one update event', async () => {
|
|
95
|
+
await User.create([
|
|
96
|
+
{ name: 'Alice', role: 'user' },
|
|
97
|
+
{ name: 'Bob', role: 'user' },
|
|
98
|
+
{ name: 'John', role: 'user' }
|
|
99
|
+
], { ordered: true })
|
|
100
|
+
|
|
101
|
+
await User.updateOne({ name: 'Bob' }, { role: 'manager' })
|
|
102
|
+
const users = await User.find({ role: 'manager' })
|
|
103
|
+
expect(users).toHaveLength(1)
|
|
104
|
+
|
|
105
|
+
const history = await History.find({})
|
|
106
|
+
expect(history).toHaveLength(0)
|
|
107
|
+
|
|
108
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
it('should replaceOne() and emit two update event', async () => {
|
|
112
|
+
await User.create([
|
|
113
|
+
{ name: 'Alice', role: 'user' },
|
|
114
|
+
{ name: 'Bob', role: 'user' },
|
|
115
|
+
{ name: 'John', role: 'user' }
|
|
116
|
+
], { ordered: true })
|
|
117
|
+
|
|
118
|
+
await User.replaceOne({ name: 'Bob' }, { name: 'Bob Doe', role: 'manager' })
|
|
119
|
+
const users = await User.find({ role: 'manager' })
|
|
120
|
+
expect(users).toHaveLength(1)
|
|
121
|
+
|
|
122
|
+
const history = await History.find({})
|
|
123
|
+
expect(history).toHaveLength(0)
|
|
124
|
+
|
|
125
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
126
|
+
expect(em.emit).toHaveBeenCalledWith(USER_UPDATED, {
|
|
127
|
+
oldDoc: expect.objectContaining({
|
|
128
|
+
__v: 0,
|
|
129
|
+
_id: expect.any(Types.ObjectId),
|
|
130
|
+
name: 'Bob',
|
|
131
|
+
role: 'user',
|
|
132
|
+
createdAt: expect.any(Date),
|
|
133
|
+
updatedAt: expect.any(Date)
|
|
134
|
+
}),
|
|
135
|
+
doc: expect.objectContaining({
|
|
136
|
+
__v: 0,
|
|
137
|
+
_id: expect.any(Types.ObjectId),
|
|
138
|
+
name: 'Bob Doe',
|
|
139
|
+
role: 'manager',
|
|
140
|
+
createdAt: expect.any(Date),
|
|
141
|
+
updatedAt: expect.any(Date)
|
|
142
|
+
}),
|
|
143
|
+
patch: expect.arrayContaining([
|
|
144
|
+
{ op: 'test', path: '/name', value: 'Bob' },
|
|
145
|
+
{ op: 'replace', path: '/name', value: 'Bob Doe' },
|
|
146
|
+
{ op: 'test', path: '/role', value: 'user' },
|
|
147
|
+
{ op: 'replace', path: '/role', value: 'manager' }
|
|
148
|
+
])
|
|
149
|
+
})
|
|
150
|
+
})
|
|
151
|
+
|
|
152
|
+
it('should updateMany() and emit two update event', async () => {
|
|
153
|
+
await User.create([
|
|
154
|
+
{ name: 'Alice', role: 'user' },
|
|
155
|
+
{ name: 'Bob', role: 'user' },
|
|
156
|
+
{ name: 'John', role: 'user' }
|
|
157
|
+
], { ordered: true })
|
|
158
|
+
|
|
159
|
+
await User.updateMany({ role: 'user' }, { role: 'manager' })
|
|
160
|
+
const users = await User.find({ role: 'manager' })
|
|
161
|
+
expect(users).toHaveLength(3)
|
|
162
|
+
|
|
163
|
+
const history = await History.find({})
|
|
164
|
+
expect(history).toHaveLength(0)
|
|
165
|
+
|
|
166
|
+
expect(em.emit).toHaveBeenCalledTimes(3)
|
|
167
|
+
})
|
|
168
|
+
|
|
169
|
+
it('should findOneAndUpdate() and emit one update event', async () => {
|
|
170
|
+
await User.create({ name: 'Bob', role: 'user' })
|
|
171
|
+
const created = await User.create({ name: 'John', role: 'user' })
|
|
172
|
+
await User.findOneAndUpdate({ _id: created._id }, { name: 'John Doe', role: 'manager' })
|
|
173
|
+
const updated = await User.findById(created._id).exec()
|
|
174
|
+
expect(updated).not.toBeNull()
|
|
175
|
+
|
|
176
|
+
const history = await History.find({})
|
|
177
|
+
expect(history).toHaveLength(0)
|
|
178
|
+
|
|
179
|
+
expect(em.emit).toHaveBeenCalledTimes(1)
|
|
180
|
+
expect(em.emit).toHaveBeenCalledWith(USER_UPDATED, {
|
|
181
|
+
oldDoc: expect.objectContaining({
|
|
182
|
+
__v: 0,
|
|
183
|
+
_id: created._id,
|
|
184
|
+
name: created.name,
|
|
185
|
+
role: created.role,
|
|
186
|
+
createdAt: created.createdAt
|
|
187
|
+
}),
|
|
188
|
+
doc: expect.objectContaining({
|
|
189
|
+
__v: 0,
|
|
190
|
+
_id: updated?._id,
|
|
191
|
+
name: updated?.name,
|
|
192
|
+
role: updated?.role,
|
|
193
|
+
createdAt: created.createdAt
|
|
194
|
+
}),
|
|
195
|
+
patch: expect.arrayContaining([
|
|
196
|
+
{ op: 'test', path: '/role', value: 'user' },
|
|
197
|
+
{ op: 'replace', path: '/role', value: 'manager' },
|
|
198
|
+
{ op: 'test', path: '/name', value: 'John' },
|
|
199
|
+
{ op: 'replace', path: '/name', value: 'John Doe' }
|
|
200
|
+
])
|
|
201
|
+
})
|
|
202
|
+
})
|
|
203
|
+
|
|
204
|
+
it('should findOneAndReplace() and emit one update event', async () => {
|
|
78
205
|
await User.create({ name: 'Bob', role: 'user' })
|
|
79
206
|
const created = await User.create({ name: 'John', role: 'user' })
|
|
80
207
|
await User.findOneAndReplace({ _id: created._id }, { name: 'John Doe', role: 'manager' })
|
|
@@ -111,12 +238,9 @@ describe('plugin - event updated & patch history disabled', () => {
|
|
|
111
238
|
})
|
|
112
239
|
})
|
|
113
240
|
|
|
114
|
-
it('should
|
|
115
|
-
await User.create({ name: 'Bob', role: 'user' })
|
|
116
|
-
|
|
117
|
-
await User.findOneAndUpdate({ _id: created._id }, { name: 'John Doe', role: 'manager' })
|
|
118
|
-
const updated = await User.findById(created._id).exec()
|
|
119
|
-
expect(updated).not.toBeNull()
|
|
241
|
+
it('should findByIdAndUpdate() and emit one update event', async () => {
|
|
242
|
+
const created = await User.create({ name: 'Bob', role: 'user' })
|
|
243
|
+
await User.findByIdAndUpdate(created._id, { name: 'John Doe', role: 'manager' })
|
|
120
244
|
|
|
121
245
|
const history = await History.find({})
|
|
122
246
|
expect(history).toHaveLength(0)
|
|
@@ -132,16 +256,16 @@ describe('plugin - event updated & patch history disabled', () => {
|
|
|
132
256
|
}),
|
|
133
257
|
doc: expect.objectContaining({
|
|
134
258
|
__v: 0,
|
|
135
|
-
_id:
|
|
136
|
-
name:
|
|
137
|
-
role:
|
|
259
|
+
_id: created._id,
|
|
260
|
+
name: 'John Doe',
|
|
261
|
+
role: 'manager',
|
|
138
262
|
createdAt: created.createdAt
|
|
139
263
|
}),
|
|
140
264
|
patch: expect.arrayContaining([
|
|
265
|
+
{ op: 'test', path: '/name', value: 'Bob' },
|
|
266
|
+
{ op: 'replace', path: '/name', value: 'John Doe' },
|
|
141
267
|
{ op: 'test', path: '/role', value: 'user' },
|
|
142
|
-
{ op: 'replace', path: '/role', value: 'manager' }
|
|
143
|
-
{ op: 'test', path: '/name', value: 'John' },
|
|
144
|
-
{ op: 'replace', path: '/name', value: 'John Doe' }
|
|
268
|
+
{ op: 'replace', path: '/role', value: 'manager' }
|
|
145
269
|
])
|
|
146
270
|
})
|
|
147
271
|
})
|