ts-patch-mongoose 2.6.1 → 2.6.2

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 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": "18.x || 20.x || 22.x",
29
- "mongoose": "6.6.x || 7.x || 8.x",
29
+ "mongoose": ">=6.6.x || 7.x || 8.x",
30
30
  }
31
31
  ```
32
32
 
@@ -46,25 +46,29 @@ I need to track changes of mongoose models and save them as patch history (audit
46
46
 
47
47
  ```bash
48
48
  npm install ts-patch-mongoose
49
- yarn add ts-patch-mongoose
50
49
  pnpm add ts-patch-mongoose
50
+ yarn add ts-patch-mongoose
51
+ bun add ts-patch-mongoose
51
52
  ```
52
53
 
53
- - This plugin requires mongoose `6.6.x || 7.x || 8.x` to be installed as a peer dependency
54
+ - This plugin requires mongoose `>=6.6.x || 7.x || 8.x` to be installed as a peer dependency
54
55
 
55
56
  ```bash
56
- # For mongoose 6
57
- npm install mongoose@6.12.2
58
- yarn add mongoose@6.12.2
59
- pnpm add mongoose@6.12.2
60
- # For mongoose 7
61
- npm install mongoose@7.6.4
62
- yarn add mongoose@7.6.4
63
- pnpm add mongoose@7.6.4
64
- # For mongoose 8
65
- npm install mongoose@8.0.0
66
- yarn add mongoose@8.0.0
67
- pnpm add mongoose@8.0.0
57
+ # For latest mongoose 6
58
+ npm install mongoose@6
59
+ pnpm add mongoose@6
60
+ yarn add mongoose@6
61
+ bun add mongoose@6
62
+ # For latest mongoose 7
63
+ npm install mongoose@7
64
+ pnpm add mongoose@7
65
+ yarn add mongoose@7
66
+ bun add mongoose@7
67
+ # For latest mongoose 8
68
+ npm install mongoose@8
69
+ pnpm add mongoose@8
70
+ yarn add mongoose@8
71
+ bun add mongoose@8
68
72
  ```
69
73
 
70
74
  ## Example
package/dist/cjs/patch.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deletePatch = exports.updatePatch = exports.createPatch = exports.bulkPatch = exports.emitEvent = exports.getData = exports.getValue = exports.getMetadata = exports.getReason = exports.getUser = exports.getObjects = void 0;
3
+ exports.deletePatch = exports.updatePatch = exports.createPatch = exports.bulkPatch = exports.emitEvent = exports.getData = exports.getValue = exports.getMetadata = exports.getReason = exports.getUser = exports.getObjectOmit = exports.getJsonOmit = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const lodash_1 = tslib_1.__importDefault(require("lodash"));
6
6
  const omit_deep_1 = tslib_1.__importDefault(require("omit-deep"));
@@ -10,16 +10,21 @@ const em_1 = tslib_1.__importDefault(require("./em"));
10
10
  function isPatchHistoryEnabled(opts, context) {
11
11
  return !opts.patchHistoryDisabled && !context.ignorePatchHistory;
12
12
  }
13
- function getObjects(opts, current, original) {
14
- let currentObject = JSON.parse(JSON.stringify(current));
15
- let originalObject = JSON.parse(JSON.stringify(original));
13
+ function getJsonOmit(opts, doc) {
14
+ const object = JSON.parse(JSON.stringify(doc));
16
15
  if (opts.omit) {
17
- currentObject = (0, omit_deep_1.default)(currentObject, opts.omit);
18
- originalObject = (0, omit_deep_1.default)(originalObject, opts.omit);
16
+ return (0, omit_deep_1.default)(object, opts.omit);
19
17
  }
20
- return { currentObject, originalObject };
18
+ return object;
21
19
  }
22
- exports.getObjects = getObjects;
20
+ exports.getJsonOmit = getJsonOmit;
21
+ function getObjectOmit(opts, doc) {
22
+ if (opts.omit) {
23
+ return (0, omit_deep_1.default)(lodash_1.default.isFunction(doc?.toObject) ? doc.toObject() : doc, opts.omit);
24
+ }
25
+ return doc;
26
+ }
27
+ exports.getObjectOmit = getObjectOmit;
23
28
  async function getUser(opts) {
24
29
  if (lodash_1.default.isFunction(opts.getUser)) {
25
30
  return await opts.getUser();
@@ -84,7 +89,7 @@ async function bulkPatch(opts, context, eventKey, docsKey) {
84
89
  modelName: context.modelName,
85
90
  collectionName: context.collectionName,
86
91
  collectionId: doc._id,
87
- doc,
92
+ doc: getObjectOmit(opts, doc),
88
93
  user,
89
94
  reason,
90
95
  metadata,
@@ -106,7 +111,8 @@ async function createPatch(opts, context) {
106
111
  exports.createPatch = createPatch;
107
112
  async function updatePatch(opts, context, current, original) {
108
113
  const history = isPatchHistoryEnabled(opts, context);
109
- const { currentObject, originalObject } = getObjects(opts, current, original);
114
+ const currentObject = getJsonOmit(opts, current);
115
+ const originalObject = getJsonOmit(opts, original);
110
116
  if (lodash_1.default.isEmpty(originalObject) || lodash_1.default.isEmpty(currentObject))
111
117
  return;
112
118
  const patch = fast_json_patch_1.default.compare(originalObject, currentObject, true);
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":";;;;AAAA,4DAAsB;AACtB,kEAA4B;AAC5B,8EAAuC;AASvC,uEAAsC;AACtC,sDAAqB;AAErB,SAAS,qBAAqB,CAAI,IAAuB,EAAE,OAAoB;IAC7E,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAA;AAClE,CAAC;AAED,SAAgB,WAAW,CAAI,IAAuB,EAAE,GAAwB;IAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAe,CAAA;IAE5D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,IAAA,mBAAI,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AARD,kCAQC;AAED,SAAgB,aAAa,CAAI,IAAuB,EAAE,GAAwB;IAChF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAEd,OAAO,IAAA,mBAAI,EAAC,gBAAC,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5E,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAPD,sCAOC;AAEM,KAAK,UAAU,OAAO,CAAI,IAAuB;IACtD,IAAI,gBAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AALD,0BAKC;AAEM,KAAK,UAAU,SAAS,CAAI,IAAuB;IACxD,IAAI,gBAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;IAC/B,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AALD,8BAKC;AAEM,KAAK,UAAU,WAAW,CAAI,IAAuB;IAC1D,IAAI,gBAAC,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;IACjC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AALD,kCAKC;AAED,SAAgB,QAAQ,CAAI,IAA6B;IACvD,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAC7D,CAAC;AAFD,4BAEC;AAEM,KAAK,UAAU,OAAO,CAAI,IAAuB;IACtD,OAAO,OAAO;SACX,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/D,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE;QACjC,OAAO;YACL,QAAQ,CAAC,IAAI,CAAC;YACd,QAAQ,CAAC,MAAM,CAAC;YAChB,QAAQ,CAAC,QAAQ,CAAC;SACnB,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC;AAVD,0BAUC;AAED,SAAgB,SAAS,CAAI,OAAoB,EAAE,KAAyB,EAAE,IAAe;IAC3F,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAClC,YAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACtB,CAAC;AACH,CAAC;AAJD,8BAIC;AAEM,KAAK,UAAU,SAAS,CAAI,IAAuB,EAAE,OAAoB,EAAE,QAAyC,EAAE,OAAsC;IACjK,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACpD,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,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC;QAAE,OAAM;IAEnD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpD,MAAM,MAAM,GAAG,gBAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,EAAE,CAAA;QAEf,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;YAEzC,IAAI,OAAO,EAAE,CAAC;gBACZ,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,EAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC;4BAC7B,IAAI;4BACJ,MAAM;4BACN,QAAQ;4BACR,OAAO,EAAE,CAAC;yBACX;qBACF;iBACF,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,iBAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;AACH,CAAC;AAxCD,8BAwCC;AAEM,KAAK,UAAU,WAAW,CAAI,IAAuB,EAAE,OAAoB;IAChF,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAC/D,CAAC;AAFD,kCAEC;AAEM,KAAK,UAAU,WAAW,CAAI,IAAuB,EAAE,OAAoB,EAAE,OAA4B,EAAE,QAA6B;IAC7I,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAEpD,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAChD,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAClD,IAAI,gBAAC,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QAAE,OAAM;IAEjE,MAAM,KAAK,GAAG,yBAAS,CAAC,OAAO,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IACpE,IAAI,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAM;IAE5B,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;IAEhF,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,MAAM,WAAW,GAAG,MAAM,iBAAO,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;QAEnH,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC5C,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,CAAC,CAAA;QACnC,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;QAEpD,MAAM,iBAAO,CAAC,MAAM,CAAC;YACnB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,YAAY,EAAE,QAAQ,CAAC,GAAqB;YAC5C,KAAK;YACL,IAAI;YACJ,MAAM;YACN,QAAQ;YACR,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAnCD,kCAmCC;AAEM,KAAK,UAAU,WAAW,CAAI,IAAuB,EAAE,OAAoB;IAChF,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAC/D,CAAC;AAFD,kCAEC"}
@@ -28,10 +28,8 @@ import type IEvent from './interfaces/IEvent';
28
28
  import type IContext from './interfaces/IContext';
29
29
  import type IPluginOptions from './interfaces/IPluginOptions';
30
30
  import type { User, Metadata } from './interfaces/IPluginOptions';
31
- export declare function getObjects<T>(opts: IPluginOptions<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): {
32
- currentObject: Partial<T>;
33
- originalObject: Partial<T>;
34
- };
31
+ export declare function getJsonOmit<T>(opts: IPluginOptions<T>, doc: HydratedDocument<T>): Partial<T>;
32
+ export declare function getObjectOmit<T>(opts: IPluginOptions<T>, doc: HydratedDocument<T>): Partial<T>;
35
33
  export declare function getUser<T>(opts: IPluginOptions<T>): Promise<User | undefined>;
36
34
  export declare function getReason<T>(opts: IPluginOptions<T>): Promise<string | undefined>;
37
35
  export declare function getMetadata<T>(opts: IPluginOptions<T>): Promise<Metadata | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/patch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,UAAU,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AASjE,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG;IAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAU7K;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAKnF;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKvF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAK3F;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAExE;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAU/H;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAInG;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwClL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC9J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/patch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,UAAU,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AASjE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ5F;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO9F;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAKnF;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKvF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAK3F;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAExE;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAU/H;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAInG;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwClL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC9J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG"}
package/dist/esm/patch.js CHANGED
@@ -6,14 +6,18 @@ import em from './em.js';
6
6
  function isPatchHistoryEnabled(opts, context) {
7
7
  return !opts.patchHistoryDisabled && !context.ignorePatchHistory;
8
8
  }
9
- export function getObjects(opts, current, original) {
10
- let currentObject = JSON.parse(JSON.stringify(current));
11
- let originalObject = JSON.parse(JSON.stringify(original));
9
+ export function getJsonOmit(opts, doc) {
10
+ const object = JSON.parse(JSON.stringify(doc));
12
11
  if (opts.omit) {
13
- currentObject = omit(currentObject, opts.omit);
14
- originalObject = omit(originalObject, opts.omit);
12
+ return omit(object, opts.omit);
15
13
  }
16
- return { currentObject, originalObject };
14
+ return object;
15
+ }
16
+ export function getObjectOmit(opts, doc) {
17
+ if (opts.omit) {
18
+ return omit(_.isFunction(doc?.toObject) ? doc.toObject() : doc, opts.omit);
19
+ }
20
+ return doc;
17
21
  }
18
22
  export async function getUser(opts) {
19
23
  if (_.isFunction(opts.getUser)) {
@@ -73,7 +77,7 @@ export async function bulkPatch(opts, context, eventKey, docsKey) {
73
77
  modelName: context.modelName,
74
78
  collectionName: context.collectionName,
75
79
  collectionId: doc._id,
76
- doc,
80
+ doc: getObjectOmit(opts, doc),
77
81
  user,
78
82
  reason,
79
83
  metadata,
@@ -93,7 +97,8 @@ export async function createPatch(opts, context) {
93
97
  }
94
98
  export async function updatePatch(opts, context, current, original) {
95
99
  const history = isPatchHistoryEnabled(opts, context);
96
- const { currentObject, originalObject } = getObjects(opts, current, original);
100
+ const currentObject = getJsonOmit(opts, current);
101
+ const originalObject = getJsonOmit(opts, original);
97
102
  if (_.isEmpty(originalObject) || _.isEmpty(currentObject))
98
103
  return;
99
104
  const patch = jsonpatch.compare(originalObject, currentObject, true);
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,SAAS,MAAM,iBAAiB,CAAA;AASvC,OAAO,OAAO,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,MAAM,MAAM,CAAA;AAErB,SAAS,qBAAqB,CAAI,IAAuB,EAAE,OAAoB;IAC7E,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,IAAuB,EAAE,OAA4B,EAAE,QAA6B;IAChH,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,CAAC;QACd,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9C,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAI,IAAuB;IACtD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,IAAuB;IACxD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;IAC/B,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,IAAuB;IAC1D,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;IACjC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,IAA6B;IACvD,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAI,IAAuB;IACtD,OAAO,OAAO;SACX,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/D,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE;QACjC,OAAO;YACL,QAAQ,CAAC,IAAI,CAAC;YACd,QAAQ,CAAC,MAAM,CAAC;YAChB,QAAQ,CAAC,QAAQ,CAAC;SACnB,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,OAAoB,EAAE,KAAyB,EAAE,IAAe;IAC3F,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAClC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACtB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,IAAuB,EAAE,OAAoB,EAAE,QAAyC,EAAE,OAAsC;IACjK,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACpD,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,CAAC,OAAO,CAAC;QAAE,OAAM;IAEnD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,EAAE,CAAA;QAEf,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;YAEzC,IAAI,OAAO,EAAE,CAAC;gBACZ,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,IAAI;4BACJ,MAAM;4BACN,QAAQ;4BACR,OAAO,EAAE,CAAC;yBACX;qBACF;iBACF,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,IAAuB,EAAE,OAAoB;IAChF,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,IAAuB,EAAE,OAAoB,EAAE,OAA4B,EAAE,QAA6B;IAC7I,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAEpD,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC7E,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;IACpE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAM;IAE5B,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;IAEhF,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,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;QAEnH,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC5C,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,CAAC,CAAA;QACnC,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;QAEpD,MAAM,OAAO,CAAC,MAAM,CAAC;YACnB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,YAAY,EAAE,QAAQ,CAAC,GAAqB;YAC5C,KAAK;YACL,IAAI;YACJ,MAAM;YACN,QAAQ;YACR,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,IAAuB,EAAE,OAAoB;IAChF,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
@@ -28,10 +28,8 @@ import type IEvent from './interfaces/IEvent';
28
28
  import type IContext from './interfaces/IContext';
29
29
  import type IPluginOptions from './interfaces/IPluginOptions';
30
30
  import type { User, Metadata } from './interfaces/IPluginOptions';
31
- export declare function getObjects<T>(opts: IPluginOptions<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): {
32
- currentObject: Partial<T>;
33
- originalObject: Partial<T>;
34
- };
31
+ export declare function getJsonOmit<T>(opts: IPluginOptions<T>, doc: HydratedDocument<T>): Partial<T>;
32
+ export declare function getObjectOmit<T>(opts: IPluginOptions<T>, doc: HydratedDocument<T>): Partial<T>;
35
33
  export declare function getUser<T>(opts: IPluginOptions<T>): Promise<User | undefined>;
36
34
  export declare function getReason<T>(opts: IPluginOptions<T>): Promise<string | undefined>;
37
35
  export declare function getMetadata<T>(opts: IPluginOptions<T>): Promise<Metadata | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/patch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,UAAU,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AASjE,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG;IAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAU7K;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAKnF;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKvF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAK3F;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAExE;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAU/H;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAInG;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwClL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC9J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/patch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,UAAU,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AASjE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ5F;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO9F;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAKnF;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKvF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAK3F;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAExE;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAU/H;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAInG;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwClL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC9J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-patch-mongoose",
3
- "version": "2.6.1",
3
+ "version": "2.6.2",
4
4
  "description": "Patch history & events for mongoose models",
5
5
  "author": "Alex Eagle",
6
6
  "license": "MIT",
@@ -85,25 +85,25 @@
85
85
  },
86
86
  "devDependencies": {
87
87
  "@shelf/jest-mongodb": "4.3.2",
88
- "@stylistic/eslint-plugin": "2.1.0",
88
+ "@stylistic/eslint-plugin": "2.2.0",
89
89
  "@swc/cli": "0.3.12",
90
- "@swc/core": "1.5.7",
90
+ "@swc/core": "1.6.0",
91
91
  "@swc/helpers": "0.5.11",
92
92
  "@swc/jest": "0.2.36",
93
93
  "@swc/register": "0.1.10",
94
94
  "@types/jest": "29.5.12",
95
- "@types/lodash": "4.17.4",
95
+ "@types/lodash": "4.17.5",
96
96
  "@types/node": "20",
97
97
  "@types/semver": "7.5.8",
98
- "@typescript-eslint/eslint-plugin": "7.9.0",
99
- "@typescript-eslint/parser": "7.9.0",
98
+ "@typescript-eslint/eslint-plugin": "7.13.0",
99
+ "@typescript-eslint/parser": "7.13.0",
100
100
  "eslint": "8.57.0",
101
- "eslint-plugin-jest": "28.5.0",
101
+ "eslint-plugin-jest": "28.6.0",
102
102
  "eslint-plugin-jest-formatting": "3.1.0",
103
103
  "eslint-plugin-sonarjs": "0.25.1",
104
104
  "jest": "29.7.0",
105
105
  "merge": "2.1.1",
106
- "mongoose": "8.4.0",
106
+ "mongoose": "8.4.1",
107
107
  "open-cli": "8.0.0",
108
108
  "typescript": "5.4.5"
109
109
  },
package/src/patch.ts CHANGED
@@ -16,16 +16,23 @@ function isPatchHistoryEnabled<T>(opts: IPluginOptions<T>, context: IContext<T>)
16
16
  return !opts.patchHistoryDisabled && !context.ignorePatchHistory
17
17
  }
18
18
 
19
- export function getObjects<T>(opts: IPluginOptions<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): { currentObject: Partial<T>, originalObject: Partial<T> } {
20
- let currentObject = JSON.parse(JSON.stringify(current)) as Partial<T>
21
- let originalObject = JSON.parse(JSON.stringify(original)) as Partial<T>
19
+ export function getJsonOmit<T>(opts: IPluginOptions<T>, doc: HydratedDocument<T>): Partial<T> {
20
+ const object = JSON.parse(JSON.stringify(doc)) as Partial<T>
22
21
 
23
22
  if (opts.omit) {
24
- currentObject = omit(currentObject, opts.omit)
25
- originalObject = omit(originalObject, opts.omit)
23
+ return omit(object, opts.omit)
26
24
  }
27
25
 
28
- return { currentObject, originalObject }
26
+ return object
27
+ }
28
+
29
+ export function getObjectOmit<T>(opts: IPluginOptions<T>, doc: HydratedDocument<T>): Partial<T> {
30
+ if (opts.omit) {
31
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/unbound-method
32
+ return omit(_.isFunction(doc?.toObject) ? doc.toObject() : doc, opts.omit)
33
+ }
34
+
35
+ return doc
29
36
  }
30
37
 
31
38
  export async function getUser<T>(opts: IPluginOptions<T>): Promise<User | undefined> {
@@ -96,7 +103,7 @@ export async function bulkPatch<T>(opts: IPluginOptions<T>, context: IContext<T>
96
103
  modelName: context.modelName,
97
104
  collectionName: context.collectionName,
98
105
  collectionId: doc._id as Types.ObjectId,
99
- doc,
106
+ doc: getObjectOmit(opts, doc),
100
107
  user,
101
108
  reason,
102
109
  metadata,
@@ -120,7 +127,8 @@ export async function createPatch<T>(opts: IPluginOptions<T>, context: IContext<
120
127
  export async function updatePatch<T>(opts: IPluginOptions<T>, context: IContext<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): Promise<void> {
121
128
  const history = isPatchHistoryEnabled(opts, context)
122
129
 
123
- const { currentObject, originalObject } = getObjects(opts, current, original)
130
+ const currentObject = getJsonOmit(opts, current)
131
+ const originalObject = getJsonOmit(opts, original)
124
132
  if (_.isEmpty(originalObject) || _.isEmpty(currentObject)) return
125
133
 
126
134
  const patch = jsonpatch.compare(originalObject, currentObject, true)
@@ -1,6 +1,6 @@
1
1
  import mongoose, { model } from 'mongoose'
2
2
 
3
- import { getUser, getReason, getMetadata, getData, getValue, getObjects, bulkPatch, updatePatch } from '../src/patch'
3
+ import { getUser, getReason, getMetadata, getData, getValue, getJsonOmit, bulkPatch, updatePatch } from '../src/patch'
4
4
  import { patchHistoryPlugin } from '../src/plugin'
5
5
 
6
6
  import UserSchema from './schemas/UserSchema'
@@ -53,7 +53,8 @@ describe('patch tests', () => {
53
53
  omit: ['createdAt'],
54
54
  }
55
55
 
56
- const { currentObject, originalObject } = getObjects(pluginOptions, current, original)
56
+ const currentObject = getJsonOmit(pluginOptions, current)
57
+ const originalObject = getJsonOmit(pluginOptions, original)
57
58
 
58
59
  expect(currentObject.name).toBe('John')
59
60
  expect(currentObject.role).toBe('admin')
@@ -68,7 +69,10 @@ describe('patch tests', () => {
68
69
  const original = await User.create({ name: 'John', role: 'user' })
69
70
  const current = await User.create({ name: 'John', role: 'admin' })
70
71
 
71
- const { currentObject, originalObject } = getObjects({}, current, original)
72
+ const pluginOptions = {}
73
+
74
+ const currentObject = getJsonOmit(pluginOptions, current)
75
+ const originalObject = getJsonOmit(pluginOptions, original)
72
76
 
73
77
  expect(currentObject.name).toBe('John')
74
78
  expect(currentObject.role).toBe('admin')
@@ -137,7 +137,7 @@ describe('plugin - event delete & patch history disabled', () => {
137
137
 
138
138
  const [john] = users
139
139
 
140
- await User.findOneAndDelete({ role: 'user' }).exec()
140
+ await User.findOneAndDelete({ name: 'John' }).exec()
141
141
 
142
142
  const history = await History.find({})
143
143
  expect(history).toHaveLength(0)
@@ -64,8 +64,8 @@ describe('plugin - global', () => {
64
64
  expect(first.doc).toHaveProperty('_id', product._id)
65
65
  expect(first.doc).toHaveProperty('name', 'paper')
66
66
  expect(first.doc).toHaveProperty('groups', [])
67
- expect(first.doc).toHaveProperty('createdAt')
68
- expect(first.doc).toHaveProperty('updatedAt')
67
+ expect(first.doc).not.toHaveProperty('createdAt')
68
+ expect(first.doc).not.toHaveProperty('updatedAt')
69
69
 
70
70
  expect(first.patch).toHaveLength(0)
71
71
 
@@ -138,8 +138,8 @@ describe('plugin - global', () => {
138
138
  expect(first.doc).toHaveProperty('_id', product._id)
139
139
  expect(first.doc).toHaveProperty('name', 'paper')
140
140
  expect(first.doc).toHaveProperty('groups', [])
141
- expect(first.doc).toHaveProperty('createdAt')
142
- expect(first.doc).toHaveProperty('updatedAt')
141
+ expect(first.doc).not.toHaveProperty('createdAt')
142
+ expect(first.doc).not.toHaveProperty('updatedAt')
143
143
 
144
144
  expect(first.patch).toHaveLength(0)
145
145
 
@@ -210,8 +210,8 @@ describe('plugin - global', () => {
210
210
  expect(first.doc).toHaveProperty('_id', product._id)
211
211
  expect(first.doc).toHaveProperty('name', 'paper')
212
212
  expect(first.doc).toHaveProperty('description', { summary: 'test1' })
213
- expect(first.doc).toHaveProperty('createdAt')
214
- expect(first.doc).toHaveProperty('updatedAt')
213
+ expect(first.doc).not.toHaveProperty('createdAt')
214
+ expect(first.doc).not.toHaveProperty('updatedAt')
215
215
 
216
216
  expect(first.patch).toHaveLength(0)
217
217
 
@@ -286,8 +286,8 @@ describe('plugin - global', () => {
286
286
  expect(first.doc).toHaveProperty('_id', product._id)
287
287
  expect(first.doc).toHaveProperty('name', 'paper')
288
288
  expect(first.doc).toHaveProperty('description', { summary: 'test1' })
289
- expect(first.doc).toHaveProperty('createdAt')
290
- expect(first.doc).toHaveProperty('updatedAt')
289
+ expect(first.doc).not.toHaveProperty('createdAt')
290
+ expect(first.doc).not.toHaveProperty('updatedAt')
291
291
 
292
292
  expect(first.patch).toHaveLength(0)
293
293
 
@@ -361,8 +361,8 @@ describe('plugin - global', () => {
361
361
  expect(first.doc).toHaveProperty('_id', john._id)
362
362
  expect(first.doc).toHaveProperty('name', 'John')
363
363
  expect(first.doc).toHaveProperty('role', 'user')
364
- expect(first.doc).toHaveProperty('createdAt')
365
- expect(first.doc).toHaveProperty('updatedAt')
364
+ expect(first.doc).not.toHaveProperty('createdAt')
365
+ expect(first.doc).not.toHaveProperty('updatedAt')
366
366
 
367
367
  expect(first.patch).toHaveLength(0)
368
368
 
@@ -377,8 +377,8 @@ describe('plugin - global', () => {
377
377
  expect(second.doc).toHaveProperty('_id', alice._id)
378
378
  expect(second.doc).toHaveProperty('name', 'Alice')
379
379
  expect(second.doc).toHaveProperty('role', 'user')
380
- expect(second.doc).toHaveProperty('createdAt')
381
- expect(second.doc).toHaveProperty('updatedAt')
380
+ expect(second.doc).not.toHaveProperty('createdAt')
381
+ expect(second.doc).not.toHaveProperty('updatedAt')
382
382
 
383
383
  expect(second.patch).toHaveLength(0)
384
384
 
@@ -392,8 +392,8 @@ describe('plugin - global', () => {
392
392
  expect(third.doc).toHaveProperty('_id', product._id)
393
393
  expect(third.doc).toHaveProperty('name', 'paper')
394
394
  expect(third.doc).toHaveProperty('addedBy', john._id)
395
- expect(third.doc).toHaveProperty('createdAt')
396
- expect(third.doc).toHaveProperty('updatedAt')
395
+ expect(third.doc).not.toHaveProperty('createdAt')
396
+ expect(third.doc).not.toHaveProperty('updatedAt')
397
397
 
398
398
  expect(third.patch).toHaveLength(0)
399
399
 
@@ -454,8 +454,8 @@ describe('plugin - global', () => {
454
454
  expect(first.doc).toHaveProperty('_id', john._id)
455
455
  expect(first.doc).toHaveProperty('name', 'John')
456
456
  expect(first.doc).toHaveProperty('role', 'user')
457
- expect(first.doc).toHaveProperty('createdAt')
458
- expect(first.doc).toHaveProperty('updatedAt')
457
+ expect(first.doc).not.toHaveProperty('createdAt')
458
+ expect(first.doc).not.toHaveProperty('updatedAt')
459
459
 
460
460
  expect(first.patch).toHaveLength(0)
461
461
 
@@ -470,8 +470,8 @@ describe('plugin - global', () => {
470
470
  expect(second.doc).toHaveProperty('_id', alice._id)
471
471
  expect(second.doc).toHaveProperty('name', 'Alice')
472
472
  expect(second.doc).toHaveProperty('role', 'user')
473
- expect(second.doc).toHaveProperty('createdAt')
474
- expect(second.doc).toHaveProperty('updatedAt')
473
+ expect(first.doc).not.toHaveProperty('createdAt')
474
+ expect(first.doc).not.toHaveProperty('updatedAt')
475
475
 
476
476
  expect(second.patch).toHaveLength(0)
477
477
 
@@ -485,8 +485,8 @@ describe('plugin - global', () => {
485
485
  expect(third.doc).toHaveProperty('_id', product._id)
486
486
  expect(third.doc).toHaveProperty('name', 'paper')
487
487
  expect(third.doc).toHaveProperty('addedBy', john._id)
488
- expect(third.doc).toHaveProperty('createdAt')
489
- expect(third.doc).toHaveProperty('updatedAt')
488
+ expect(first.doc).not.toHaveProperty('createdAt')
489
+ expect(first.doc).not.toHaveProperty('updatedAt')
490
490
 
491
491
  expect(third.patch).toHaveLength(0)
492
492
 
@@ -58,10 +58,10 @@ describe('plugin - omit all', () => {
58
58
  expect(first.version).toBe(0)
59
59
  expect(first.patch).toHaveLength(0)
60
60
 
61
- expect(first.doc).toHaveProperty('name', 'John')
62
- expect(first.doc).toHaveProperty('role', 'user')
63
- expect(first.doc).toHaveProperty('createdAt')
64
- expect(first.doc).toHaveProperty('updatedAt')
61
+ expect(first.doc).not.toHaveProperty('name')
62
+ expect(first.doc).not.toHaveProperty('role')
63
+ expect(first.doc).not.toHaveProperty('createdAt')
64
+ expect(first.doc).not.toHaveProperty('updatedAt')
65
65
  expect(first.doc).toHaveProperty('_id', user._id)
66
66
 
67
67
  expect(second.op).toBe('deleteMany')
@@ -71,10 +71,10 @@ describe('plugin - omit all', () => {
71
71
  expect(second.version).toBe(0)
72
72
  expect(second.patch).toHaveLength(0)
73
73
 
74
- expect(second.doc).toHaveProperty('name', 'Bob')
75
- expect(second.doc).toHaveProperty('role', 'user')
76
- expect(second.doc).toHaveProperty('createdAt')
77
- expect(second.doc).toHaveProperty('updatedAt')
74
+ expect(second.doc).not.toHaveProperty('name')
75
+ expect(second.doc).not.toHaveProperty('role')
76
+ expect(second.doc).not.toHaveProperty('createdAt')
77
+ expect(second.doc).not.toHaveProperty('updatedAt')
78
78
  expect(second.doc).toHaveProperty('_id', user._id)
79
79
 
80
80
  expect(em.emit).toHaveBeenCalledTimes(0)
@@ -99,10 +99,10 @@ describe('plugin - omit all', () => {
99
99
  expect(first.version).toBe(0)
100
100
  expect(first.patch).toHaveLength(0)
101
101
 
102
- expect(first.doc).toHaveProperty('name', 'John')
103
- expect(first.doc).toHaveProperty('role', 'user')
104
- expect(first.doc).toHaveProperty('createdAt')
105
- expect(first.doc).toHaveProperty('updatedAt')
102
+ expect(first.doc).not.toHaveProperty('name')
103
+ expect(first.doc).not.toHaveProperty('role')
104
+ expect(first.doc).not.toHaveProperty('createdAt')
105
+ expect(first.doc).not.toHaveProperty('updatedAt')
106
106
  expect(first.doc).toHaveProperty('_id', user._id)
107
107
 
108
108
  expect(em.emit).toHaveBeenCalledTimes(0)
@@ -126,10 +126,10 @@ describe('plugin - omit all', () => {
126
126
  expect(first.version).toBe(0)
127
127
  expect(first.patch).toHaveLength(0)
128
128
 
129
- expect(first.doc).toHaveProperty('name', 'John')
130
- expect(first.doc).toHaveProperty('role', 'user')
131
- expect(first.doc).toHaveProperty('createdAt')
132
- expect(first.doc).toHaveProperty('updatedAt')
129
+ expect(first.doc).not.toHaveProperty('name')
130
+ expect(first.doc).not.toHaveProperty('role')
131
+ expect(first.doc).not.toHaveProperty('createdAt')
132
+ expect(first.doc).not.toHaveProperty('updatedAt')
133
133
  expect(first.doc).toHaveProperty('_id', user._id)
134
134
 
135
135
  expect(em.emit).toHaveBeenCalledTimes(0)
@@ -153,10 +153,10 @@ describe('plugin - omit all', () => {
153
153
  expect(first.version).toBe(0)
154
154
  expect(first.patch).toHaveLength(0)
155
155
 
156
- expect(first.doc).toHaveProperty('name', 'John')
157
- expect(first.doc).toHaveProperty('role', 'user')
158
- expect(first.doc).toHaveProperty('createdAt')
159
- expect(first.doc).toHaveProperty('updatedAt')
156
+ expect(first.doc).not.toHaveProperty('name')
157
+ expect(first.doc).not.toHaveProperty('role')
158
+ expect(first.doc).not.toHaveProperty('createdAt')
159
+ expect(first.doc).not.toHaveProperty('updatedAt')
160
160
  expect(first.doc).toHaveProperty('_id', user._id)
161
161
 
162
162
  expect(em.emit).toHaveBeenCalledTimes(0)
@@ -184,10 +184,10 @@ describe('plugin - omit all', () => {
184
184
  expect(first.version).toBe(0)
185
185
  expect(first.patch).toHaveLength(0)
186
186
 
187
- expect(first.doc).toHaveProperty('name', 'John')
188
- expect(first.doc).toHaveProperty('role', 'user')
189
- expect(first.doc).toHaveProperty('createdAt')
190
- expect(first.doc).toHaveProperty('updatedAt')
187
+ expect(first.doc).not.toHaveProperty('name')
188
+ expect(first.doc).not.toHaveProperty('role')
189
+ expect(first.doc).not.toHaveProperty('createdAt')
190
+ expect(first.doc).not.toHaveProperty('updatedAt')
191
191
  expect(first.doc).toHaveProperty('_id', user._id)
192
192
 
193
193
  expect(em.emit).toHaveBeenCalledTimes(0)
@@ -217,10 +217,10 @@ describe('plugin - omit all', () => {
217
217
  expect(first.version).toBe(0)
218
218
  expect(first.patch).toHaveLength(0)
219
219
 
220
- expect(first.doc).toHaveProperty('name', 'John')
221
- expect(first.doc).toHaveProperty('role', 'user')
222
- expect(first.doc).toHaveProperty('createdAt')
223
- expect(first.doc).toHaveProperty('updatedAt')
220
+ expect(first.doc).not.toHaveProperty('name')
221
+ expect(first.doc).not.toHaveProperty('role')
222
+ expect(first.doc).not.toHaveProperty('createdAt')
223
+ expect(first.doc).not.toHaveProperty('updatedAt')
224
224
  expect(first.doc).toHaveProperty('_id', john._id)
225
225
 
226
226
  expect(second.op).toBe('create')
@@ -230,10 +230,10 @@ describe('plugin - omit all', () => {
230
230
  expect(second.version).toBe(0)
231
231
  expect(second.patch).toHaveLength(0)
232
232
 
233
- expect(second.doc).toHaveProperty('name', 'Alice')
234
- expect(second.doc).toHaveProperty('role', 'user')
235
- expect(second.doc).toHaveProperty('createdAt')
236
- expect(second.doc).toHaveProperty('updatedAt')
233
+ expect(second.doc).not.toHaveProperty('name')
234
+ expect(second.doc).not.toHaveProperty('role')
235
+ expect(second.doc).not.toHaveProperty('createdAt')
236
+ expect(second.doc).not.toHaveProperty('updatedAt')
237
237
  expect(second.doc).toHaveProperty('_id', alice._id)
238
238
 
239
239
  expect(em.emit).toHaveBeenCalledTimes(0)
@@ -255,10 +255,10 @@ describe('plugin - omit all', () => {
255
255
  expect(first.version).toBe(0)
256
256
  expect(first.patch).toHaveLength(0)
257
257
 
258
- expect(first.doc).toHaveProperty('name', 'John')
259
- expect(first.doc).toHaveProperty('role', 'user')
260
- expect(first.doc).toHaveProperty('createdAt')
261
- expect(first.doc).toHaveProperty('updatedAt')
258
+ expect(first.doc).not.toHaveProperty('name')
259
+ expect(first.doc).not.toHaveProperty('role')
260
+ expect(first.doc).not.toHaveProperty('createdAt')
261
+ expect(first.doc).not.toHaveProperty('updatedAt')
262
262
  expect(first.doc).toHaveProperty('_id')
263
263
 
264
264
  expect(second.op).toBe('create')
@@ -268,10 +268,10 @@ describe('plugin - omit all', () => {
268
268
  expect(second.version).toBe(0)
269
269
  expect(second.patch).toHaveLength(0)
270
270
 
271
- expect(second.doc).toHaveProperty('name', 'Alice')
272
- expect(second.doc).toHaveProperty('role', 'user')
273
- expect(second.doc).toHaveProperty('createdAt')
274
- expect(second.doc).toHaveProperty('updatedAt')
271
+ expect(second.doc).not.toHaveProperty('name')
272
+ expect(second.doc).not.toHaveProperty('role')
273
+ expect(second.doc).not.toHaveProperty('createdAt')
274
+ expect(second.doc).not.toHaveProperty('updatedAt')
275
275
  expect(second.doc).toHaveProperty('_id')
276
276
 
277
277
  expect(em.emit).toHaveBeenCalledTimes(0)
@@ -294,8 +294,8 @@ describe('plugin - omit all', () => {
294
294
  expect(first.version).toBe(0)
295
295
  expect(first.patch).toHaveLength(0)
296
296
 
297
- expect(first.doc).toHaveProperty('name', 'Bob')
298
- expect(first.doc).toHaveProperty('role', 'user')
297
+ expect(first.doc).not.toHaveProperty('name')
298
+ expect(first.doc).not.toHaveProperty('role')
299
299
  expect(first.doc).toHaveProperty('_id')
300
300
 
301
301
  expect(em.emit).toHaveBeenCalledTimes(0)
@@ -321,10 +321,10 @@ describe('plugin - omit all', () => {
321
321
  expect(first.version).toBe(0)
322
322
  expect(first.patch).toHaveLength(0)
323
323
 
324
- expect(first.doc).toHaveProperty('name', 'John')
325
- expect(first.doc).toHaveProperty('role', 'user')
326
- expect(first.doc).toHaveProperty('createdAt')
327
- expect(first.doc).toHaveProperty('updatedAt')
324
+ expect(first.doc).not.toHaveProperty('name')
325
+ expect(first.doc).not.toHaveProperty('role')
326
+ expect(first.doc).not.toHaveProperty('createdAt')
327
+ expect(first.doc).not.toHaveProperty('updatedAt')
328
328
  expect(first.doc).toHaveProperty('_id', john._id)
329
329
 
330
330
  expect(second.op).toBe('create')
@@ -334,10 +334,10 @@ describe('plugin - omit all', () => {
334
334
  expect(second.version).toBe(0)
335
335
  expect(second.patch).toHaveLength(0)
336
336
 
337
- expect(second.doc).toHaveProperty('name', 'Alice')
338
- expect(second.doc).toHaveProperty('role', 'user')
339
- expect(second.doc).toHaveProperty('createdAt')
340
- expect(second.doc).toHaveProperty('updatedAt')
337
+ expect(second.doc).not.toHaveProperty('name')
338
+ expect(second.doc).not.toHaveProperty('role')
339
+ expect(second.doc).not.toHaveProperty('createdAt')
340
+ expect(second.doc).not.toHaveProperty('updatedAt')
341
341
  expect(second.doc).toHaveProperty('_id', alice._id)
342
342
 
343
343
  expect(em.emit).toHaveBeenCalledTimes(0)
@@ -0,0 +1,53 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import mongoose, { model } from 'mongoose'
3
+
4
+ import UserSchema from './schemas/UserSchema'
5
+ import { patchHistoryPlugin } from '../src/plugin'
6
+
7
+ import { USER_CREATED } from './constants/events'
8
+
9
+ import em from '../src/em'
10
+
11
+ jest.mock('../src/em', () => {
12
+ return { emit: jest.fn() }
13
+ })
14
+
15
+ describe('plugin - preSave test', () => {
16
+ const uri = `${globalThis.__MONGO_URI__}${globalThis.__MONGO_DB_NAME__}`
17
+
18
+ UserSchema.plugin(patchHistoryPlugin, {
19
+ eventCreated: USER_CREATED,
20
+ omit: ['__v', 'role'],
21
+ })
22
+
23
+ const User = model('User', UserSchema)
24
+
25
+ beforeAll(async () => {
26
+ await mongoose.connect(uri)
27
+ })
28
+
29
+ afterAll(async () => {
30
+ await mongoose.connection.close()
31
+ })
32
+
33
+ beforeEach(async () => {
34
+ await mongoose.connection.collection('users').deleteMany({})
35
+ await mongoose.connection.collection('history').deleteMany({})
36
+ })
37
+
38
+ it('should create a User and execute save, and omit User role in history', async () => {
39
+ const john = await User.create({ name: 'John', role: 'user' })
40
+ const { __v, role, ...doc } = john.toJSON()
41
+
42
+ expect(em.emit).toHaveBeenCalledTimes(1)
43
+ expect(em.emit).toHaveBeenCalledWith(USER_CREATED, { doc })
44
+
45
+ expect(john).toMatchObject({ name: 'John', role: 'user' })
46
+
47
+ const entry = await mongoose.connection.collection('history').findOne({ collectionId: john._id })
48
+ expect(entry).not.toBeNull()
49
+ expect(entry?.doc).toMatchObject({ name: 'John' })
50
+ expect(entry?.doc.role).toBeUndefined()
51
+ expect(entry?.patch).toEqual([])
52
+ })
53
+ })
@@ -64,9 +64,9 @@ describe('plugin', () => {
64
64
 
65
65
  expect(first.doc).toHaveProperty('_id', user._id)
66
66
  expect(first.doc).toHaveProperty('name', 'John')
67
- expect(first.doc).toHaveProperty('role', 'user')
68
- expect(first.doc).toHaveProperty('createdAt')
69
- expect(first.doc).toHaveProperty('updatedAt')
67
+ expect(first.doc).not.toHaveProperty('role')
68
+ expect(first.doc).not.toHaveProperty('createdAt')
69
+ expect(first.doc).not.toHaveProperty('updatedAt')
70
70
 
71
71
  expect(first.patch).toHaveLength(0)
72
72
 
@@ -109,26 +109,26 @@ describe('plugin', () => {
109
109
 
110
110
  expect(fourth.doc).toHaveProperty('_id', user._id)
111
111
  expect(fourth.doc).toHaveProperty('name', 'Bob')
112
- expect(fourth.doc).toHaveProperty('role', 'user')
113
- expect(fourth.doc).toHaveProperty('createdAt')
114
- expect(fourth.doc).toHaveProperty('updatedAt')
112
+ expect(fourth.doc).not.toHaveProperty('role')
113
+ expect(fourth.doc).not.toHaveProperty('createdAt')
114
+ expect(fourth.doc).not.toHaveProperty('updatedAt')
115
115
 
116
116
  expect(fourth.patch).toHaveLength(0)
117
117
 
118
118
  expect(em.emit).toHaveBeenCalledTimes(4)
119
119
  expect(em.emit).toHaveBeenCalledWith(USER_CREATED, { doc: first.doc })
120
120
  expect(em.emit).toHaveBeenCalledWith(USER_UPDATED, {
121
- oldDoc: expect.objectContaining({ _id: user._id, name: 'John', role: 'user' }),
122
- doc: expect.objectContaining({ _id: user._id, name: 'Alice', role: 'user' }),
121
+ oldDoc: expect.objectContaining({ _id: user._id, name: 'John' }),
122
+ doc: expect.objectContaining({ _id: user._id, name: 'Alice' }),
123
123
  patch: second.patch,
124
124
  })
125
125
  expect(em.emit).toHaveBeenCalledWith(USER_UPDATED, {
126
- oldDoc: expect.objectContaining({ _id: user._id, name: 'Alice', role: 'user' }),
127
- doc: expect.objectContaining({ _id: user._id, name: 'Bob', role: 'user' }),
126
+ oldDoc: expect.objectContaining({ _id: user._id, name: 'Alice' }),
127
+ doc: expect.objectContaining({ _id: user._id, name: 'Bob' }),
128
128
  patch: third.patch,
129
129
  })
130
130
  expect(em.emit).toHaveBeenCalledWith(USER_DELETED, {
131
- oldDoc: expect.objectContaining({ _id: user._id, name: 'Bob', role: 'user' }),
131
+ oldDoc: expect.objectContaining({ _id: user._id, name: 'Bob' }),
132
132
  })
133
133
  })
134
134
 
@@ -153,9 +153,9 @@ describe('plugin', () => {
153
153
 
154
154
  expect(first.doc).toHaveProperty('_id', user._id)
155
155
  expect(first.doc).toHaveProperty('name', 'John')
156
- expect(first.doc).toHaveProperty('role', 'user')
157
- expect(first.doc).toHaveProperty('createdAt')
158
- expect(first.doc).toHaveProperty('updatedAt')
156
+ expect(first.doc).not.toHaveProperty('role')
157
+ expect(first.doc).not.toHaveProperty('createdAt')
158
+ expect(first.doc).not.toHaveProperty('updatedAt')
159
159
 
160
160
  expect(first.patch).toHaveLength(0)
161
161
 
@@ -184,9 +184,9 @@ describe('plugin', () => {
184
184
 
185
185
  expect(first.doc).toHaveProperty('_id', user._id)
186
186
  expect(first.doc).toHaveProperty('name', 'John')
187
- expect(first.doc).toHaveProperty('role', 'user')
188
- expect(first.doc).toHaveProperty('createdAt')
189
- expect(first.doc).toHaveProperty('updatedAt')
187
+ expect(first.doc).not.toHaveProperty('role')
188
+ expect(first.doc).not.toHaveProperty('createdAt')
189
+ expect(first.doc).not.toHaveProperty('updatedAt')
190
190
 
191
191
  expect(first.patch).toHaveLength(0)
192
192
 
@@ -234,9 +234,9 @@ describe('plugin', () => {
234
234
 
235
235
  expect(first.doc).toHaveProperty('_id', user._id)
236
236
  expect(first.doc).toHaveProperty('name', 'John')
237
- expect(first.doc).toHaveProperty('role', 'user')
238
- expect(first.doc).toHaveProperty('createdAt')
239
- expect(first.doc).toHaveProperty('updatedAt')
237
+ expect(first.doc).not.toHaveProperty('role')
238
+ expect(first.doc).not.toHaveProperty('createdAt')
239
+ expect(first.doc).not.toHaveProperty('updatedAt')
240
240
 
241
241
  expect(first.patch).toHaveLength(0)
242
242
 
@@ -288,9 +288,9 @@ describe('plugin', () => {
288
288
 
289
289
  expect(first.doc).toHaveProperty('_id', user._id)
290
290
  expect(first.doc).toHaveProperty('name', 'John')
291
- expect(first.doc).toHaveProperty('role', 'user')
292
- expect(first.doc).toHaveProperty('createdAt')
293
- expect(first.doc).toHaveProperty('updatedAt')
291
+ expect(first.doc).not.toHaveProperty('role')
292
+ expect(first.doc).not.toHaveProperty('createdAt')
293
+ expect(first.doc).not.toHaveProperty('updatedAt')
294
294
 
295
295
  expect(first.patch).toHaveLength(0)
296
296
 
@@ -343,9 +343,9 @@ describe('plugin', () => {
343
343
 
344
344
  expect(first.doc).toHaveProperty('_id', john._id)
345
345
  expect(first.doc).toHaveProperty('name', 'John')
346
- expect(first.doc).toHaveProperty('role', 'user')
347
- expect(first.doc).toHaveProperty('createdAt')
348
- expect(first.doc).toHaveProperty('updatedAt')
346
+ expect(first.doc).not.toHaveProperty('role')
347
+ expect(first.doc).not.toHaveProperty('createdAt')
348
+ expect(first.doc).not.toHaveProperty('updatedAt')
349
349
 
350
350
  expect(first.patch).toHaveLength(0)
351
351
 
@@ -358,9 +358,9 @@ describe('plugin', () => {
358
358
 
359
359
  expect(second.doc).toHaveProperty('_id', alice._id)
360
360
  expect(second.doc).toHaveProperty('name', 'Alice')
361
- expect(second.doc).toHaveProperty('role', 'user')
362
- expect(second.doc).toHaveProperty('createdAt')
363
- expect(second.doc).toHaveProperty('updatedAt')
361
+ expect(second.doc).not.toHaveProperty('role')
362
+ expect(second.doc).not.toHaveProperty('createdAt')
363
+ expect(second.doc).not.toHaveProperty('updatedAt')
364
364
 
365
365
  expect(second.patch).toHaveLength(0)
366
366
 
@@ -424,9 +424,9 @@ describe('plugin', () => {
424
424
 
425
425
  expect(first.doc).toHaveProperty('_id')
426
426
  expect(first.doc).toHaveProperty('name', 'Alice')
427
- expect(first.doc).toHaveProperty('role', 'user')
428
- expect(first.doc).toHaveProperty('createdAt')
429
- expect(first.doc).toHaveProperty('updatedAt')
427
+ expect(first.doc).not.toHaveProperty('role')
428
+ expect(first.doc).not.toHaveProperty('createdAt')
429
+ expect(first.doc).not.toHaveProperty('updatedAt')
430
430
 
431
431
  expect(first.patch).toHaveLength(0)
432
432
 
@@ -438,9 +438,9 @@ describe('plugin', () => {
438
438
 
439
439
  expect(second.doc).toHaveProperty('_id')
440
440
  expect(second.doc).toHaveProperty('name', 'John')
441
- expect(second.doc).toHaveProperty('role', 'user')
442
- expect(second.doc).toHaveProperty('createdAt')
443
- expect(second.doc).toHaveProperty('updatedAt')
441
+ expect(second.doc).not.toHaveProperty('role')
442
+ expect(second.doc).not.toHaveProperty('createdAt')
443
+ expect(second.doc).not.toHaveProperty('updatedAt')
444
444
 
445
445
  expect(second.patch).toHaveLength(0)
446
446
 
@@ -467,12 +467,12 @@ describe('plugin', () => {
467
467
 
468
468
  expect(first.doc).toHaveProperty('_id')
469
469
  expect(first.doc).toHaveProperty('name', 'Bob')
470
- expect(first.doc).toHaveProperty('role', 'user')
470
+ expect(first.doc).not.toHaveProperty('role')
471
471
 
472
472
  // Upsert don't have createdAt and updatedAt and validation errors
473
473
  // Investigate this case later
474
- // expect(first.doc).toHaveProperty('createdAt')
475
- // expect(first.doc).toHaveProperty('updatedAt')
474
+ // expect(first.doc).not.toHaveProperty('createdAt')
475
+ // expect(first.doc).not.toHaveProperty('updatedAt')
476
476
 
477
477
  expect(first.patch).toHaveLength(0)
478
478
 
@@ -503,9 +503,9 @@ describe('plugin', () => {
503
503
 
504
504
  expect(first.doc).toHaveProperty('_id', john._id)
505
505
  expect(first.doc).toHaveProperty('name', 'John')
506
- expect(first.doc).toHaveProperty('role', 'user')
507
- expect(first.doc).toHaveProperty('createdAt')
508
- expect(first.doc).toHaveProperty('updatedAt')
506
+ expect(first.doc).not.toHaveProperty('role')
507
+ expect(first.doc).not.toHaveProperty('createdAt')
508
+ expect(first.doc).not.toHaveProperty('updatedAt')
509
509
 
510
510
  expect(first.patch).toHaveLength(0)
511
511
 
@@ -519,9 +519,9 @@ describe('plugin', () => {
519
519
 
520
520
  expect(second.doc).toHaveProperty('_id', alice._id)
521
521
  expect(second.doc).toHaveProperty('name', 'Alice')
522
- expect(second.doc).toHaveProperty('role', 'user')
523
- expect(second.doc).toHaveProperty('createdAt')
524
- expect(second.doc).toHaveProperty('updatedAt')
522
+ expect(second.doc).not.toHaveProperty('role')
523
+ expect(second.doc).not.toHaveProperty('createdAt')
524
+ expect(second.doc).not.toHaveProperty('updatedAt')
525
525
 
526
526
  expect(second.patch).toHaveLength(0)
527
527