ts-patch-mongoose 1.1.7 → 1.1.9

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.
Files changed (36) hide show
  1. package/.eslintrc +0 -1
  2. package/dist/cjs/models/History.js +6 -0
  3. package/dist/cjs/models/History.js.map +1 -1
  4. package/dist/cjs/patch.js +37 -3
  5. package/dist/cjs/patch.js.map +1 -1
  6. package/dist/cjs/plugin.js +8 -4
  7. package/dist/cjs/plugin.js.map +1 -1
  8. package/dist/cjs/types/interfaces/IHistory.d.ts +2 -0
  9. package/dist/cjs/types/interfaces/IHistory.d.ts.map +1 -1
  10. package/dist/cjs/types/interfaces/IPluginOptions.d.ts +6 -1
  11. package/dist/cjs/types/interfaces/IPluginOptions.d.ts.map +1 -1
  12. package/dist/cjs/types/models/History.d.ts.map +1 -1
  13. package/dist/cjs/types/patch.d.ts +7 -2
  14. package/dist/cjs/types/patch.d.ts.map +1 -1
  15. package/dist/cjs/types/plugin.d.ts.map +1 -1
  16. package/dist/esm/models/History.js +6 -0
  17. package/dist/esm/models/History.js.map +1 -1
  18. package/dist/esm/patch.js +32 -2
  19. package/dist/esm/patch.js.map +1 -1
  20. package/dist/esm/plugin.js.map +1 -1
  21. package/dist/esm/plugin.mjs +8 -4
  22. package/dist/esm/types/interfaces/IHistory.d.ts +2 -0
  23. package/dist/esm/types/interfaces/IHistory.d.ts.map +1 -1
  24. package/dist/esm/types/interfaces/IPluginOptions.d.ts +6 -1
  25. package/dist/esm/types/interfaces/IPluginOptions.d.ts.map +1 -1
  26. package/dist/esm/types/models/History.d.ts.map +1 -1
  27. package/dist/esm/types/patch.d.ts +7 -2
  28. package/dist/esm/types/patch.d.ts.map +1 -1
  29. package/dist/esm/types/plugin.d.ts.map +1 -1
  30. package/package.json +1 -1
  31. package/src/interfaces/IHistory.ts +2 -0
  32. package/src/interfaces/IPluginOptions.ts +7 -1
  33. package/src/models/History.ts +6 -0
  34. package/src/patch.ts +39 -4
  35. package/src/plugin.ts +12 -4
  36. package/tests/patch.test.ts +50 -3
package/.eslintrc CHANGED
@@ -33,7 +33,6 @@
33
33
  "@typescript-eslint/consistent-type-imports": "error",
34
34
  "@typescript-eslint/method-signature-style": "error",
35
35
  "@typescript-eslint/consistent-indexed-object-style": "error",
36
- "@typescript-eslint/sort-type-union-intersection-members": "error",
37
36
  "indent": [
38
37
  "error",
39
38
  2
@@ -27,6 +27,12 @@ const HistorySchema = new mongoose_1.Schema({
27
27
  user: {
28
28
  type: Object
29
29
  },
30
+ reason: {
31
+ type: String
32
+ },
33
+ metadata: {
34
+ type: Object
35
+ },
30
36
  version: {
31
37
  type: Number,
32
38
  min: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"History.js","sourceRoot":"","sources":["../../../src/models/History.ts"],"names":[],"mappings":";;AAAA,uCAAwC;AAIxC,MAAM,aAAa,GAAG,IAAI,iBAAM,CAAW;IACzC,EAAE,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,QAAQ;QAC3B,QAAQ,EAAE,IAAI;KACf;IACD,GAAG,EAAE;QACH,IAAI,EAAE,MAAM;KACb;IACD,KAAK,EAAE;QACL,IAAI,EAAE,KAAK;KACZ;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;KACb;IACD,OAAO,EAAE;QACP,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,CAAC;KACX;CACF,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;AAExB,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;AAE5F,MAAM,OAAO,GAAG,IAAA,gBAAK,EAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;AAE1D,kBAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"History.js","sourceRoot":"","sources":["../../../src/models/History.ts"],"names":[],"mappings":";;AAAA,uCAAwC;AAIxC,MAAM,aAAa,GAAG,IAAI,iBAAM,CAAW;IACzC,EAAE,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,QAAQ;QAC3B,QAAQ,EAAE,IAAI;KACf;IACD,GAAG,EAAE;QACH,IAAI,EAAE,MAAM;KACb;IACD,KAAK,EAAE;QACL,IAAI,EAAE,KAAK;KACZ;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;KACb;IACD,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;KACb;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM;KACb;IACD,OAAO,EAAE;QACP,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,CAAC;KACX;CACF,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;AAExB,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;AAE5F,MAAM,OAAO,GAAG,IAAA,gBAAK,EAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;AAE1D,kBAAe,OAAO,CAAA"}
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.getUser = exports.getObjects = void 0;
3
+ exports.deletePatch = exports.updatePatch = exports.createPatch = exports.bulkPatch = exports.getData = exports.getValue = exports.getMetadata = exports.getReason = exports.getUser = exports.getObjects = 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"));
@@ -24,13 +24,43 @@ async function getUser(opts) {
24
24
  return undefined;
25
25
  }
26
26
  exports.getUser = getUser;
27
+ async function getReason(opts) {
28
+ if (lodash_1.default.isFunction(opts.getReason)) {
29
+ return await opts.getReason();
30
+ }
31
+ return undefined;
32
+ }
33
+ exports.getReason = getReason;
34
+ async function getMetadata(opts) {
35
+ if (lodash_1.default.isFunction(opts.getMetadata)) {
36
+ return await opts.getMetadata();
37
+ }
38
+ return undefined;
39
+ }
40
+ exports.getMetadata = getMetadata;
41
+ function getValue(item) {
42
+ return item.status === 'fulfilled' ? item.value : undefined;
43
+ }
44
+ exports.getValue = getValue;
45
+ async function getData(opts) {
46
+ return Promise
47
+ .allSettled([getUser(opts), getReason(opts), getMetadata(opts)])
48
+ .then(([user, reason, metadata]) => {
49
+ return [
50
+ getValue(user),
51
+ getValue(reason),
52
+ getValue(metadata)
53
+ ];
54
+ });
55
+ }
56
+ exports.getData = getData;
27
57
  async function bulkPatch(opts, context, eventKey, docsKey) {
28
58
  const event = opts[eventKey];
29
59
  const docs = context[docsKey];
30
60
  const key = eventKey === 'eventCreated' ? 'doc' : 'oldDoc';
31
61
  if (lodash_1.default.isEmpty(docs) || (!event && opts.patchHistoryDisabled))
32
62
  return;
33
- const user = await getUser(opts);
63
+ const [user, reason, metadata] = await getData(opts);
34
64
  const chunks = lodash_1.default.chunk(docs, 1000);
35
65
  for await (const chunk of chunks) {
36
66
  const bulk = [];
@@ -47,6 +77,8 @@ async function bulkPatch(opts, context, eventKey, docsKey) {
47
77
  collectionId: doc._id,
48
78
  doc,
49
79
  user,
80
+ reason,
81
+ metadata,
50
82
  version: 0
51
83
  }
52
84
  }
@@ -80,7 +112,7 @@ async function updatePatch(opts, context, current, original) {
80
112
  if (lastHistory && lastHistory.version >= 0) {
81
113
  version = lastHistory.version + 1;
82
114
  }
83
- const user = await getUser(opts);
115
+ const [user, reason, metadata] = await getData(opts);
84
116
  await History_1.default.create({
85
117
  op: context.op,
86
118
  modelName: context.modelName,
@@ -88,6 +120,8 @@ async function updatePatch(opts, context, current, original) {
88
120
  collectionId: original._id,
89
121
  patch,
90
122
  user,
123
+ reason,
124
+ metadata,
91
125
  version
92
126
  });
93
127
  }
@@ -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":"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"}
@@ -54,7 +54,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
54
54
  }
55
55
  next();
56
56
  });
57
- schema.post('insertMany', async function (docs) {
57
+ schema.post('insertMany', async function (docs, next) {
58
58
  const context = {
59
59
  op: 'create',
60
60
  modelName: opts.modelName ?? this.modelName,
@@ -62,6 +62,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
62
62
  createdDocs: docs
63
63
  };
64
64
  await (0, patch_1.createPatch)(opts, context);
65
+ next();
65
66
  });
66
67
  schema.pre(updateMethods, async function (next) {
67
68
  const options = this.getOptions();
@@ -100,7 +101,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
100
101
  });
101
102
  next();
102
103
  });
103
- schema.post(updateMethods, async function () {
104
+ schema.post(updateMethods, async function (_, next) {
104
105
  const options = this.getOptions();
105
106
  if (options.ignoreHook)
106
107
  return;
@@ -113,8 +114,9 @@ const patchHistoryPlugin = function plugin(schema, opts) {
113
114
  this._context.createdDocs = [current];
114
115
  await (0, patch_1.createPatch)(opts, this._context);
115
116
  }
117
+ next();
116
118
  });
117
- schema.post('remove', async function () {
119
+ schema.post('remove', async function (_, next) {
118
120
  const original = this.toObject(toObjectOptions);
119
121
  const model = this.constructor;
120
122
  const context = {
@@ -126,6 +128,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
126
128
  em_1.default.emit(opts.eventDeleted, { oldDoc: original });
127
129
  }
128
130
  await (0, patch_1.deletePatch)(opts, context);
131
+ next();
129
132
  });
130
133
  schema.pre(deleteMethods, options, async function (next) {
131
134
  const options = this.getOptions();
@@ -154,11 +157,12 @@ const patchHistoryPlugin = function plugin(schema, opts) {
154
157
  }
155
158
  next();
156
159
  });
157
- schema.post(deleteMethods, options, async function () {
160
+ schema.post(deleteMethods, options, async function (_, next) {
158
161
  const options = this.getOptions();
159
162
  if (options.ignoreHook)
160
163
  return;
161
164
  await (0, patch_1.deletePatch)(opts, this._context);
165
+ next();
162
166
  });
163
167
  };
164
168
  exports.patchHistoryPlugin = patchHistoryPlugin;
@@ -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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"}
@@ -8,6 +8,8 @@ interface IHistory {
8
8
  version: number;
9
9
  doc?: object;
10
10
  user?: object;
11
+ reason?: string;
12
+ metadata?: object;
11
13
  patch?: Operation[];
12
14
  }
13
15
  export default IHistory;
@@ -1 +1 @@
1
- {"version":3,"file":"IHistory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"IHistory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,QAAQ,CAAA"}
@@ -1,4 +1,7 @@
1
1
  import type { HydratedDocument } from 'mongoose';
2
+ export type User = Record<string, unknown>;
3
+ export type Reason = string;
4
+ export type Metadata = Record<string, unknown>;
2
5
  interface IPluginOptions<T> {
3
6
  modelName?: string;
4
7
  collectionName?: string;
@@ -7,7 +10,9 @@ interface IPluginOptions<T> {
7
10
  eventDeleted?: string;
8
11
  patchHistoryDisabled?: boolean;
9
12
  preDeleteCallback?: (docs: HydratedDocument<T>[]) => Promise<void>;
10
- getUser?: () => Promise<Record<string, unknown>> | Record<string, unknown>;
13
+ getUser?: () => Promise<User> | User;
14
+ getReason?: () => Promise<Reason> | Reason;
15
+ getMetadata?: () => Promise<Metadata> | Metadata;
11
16
  omit?: string[];
12
17
  }
13
18
  export default IPluginOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"IPluginOptions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IPluginOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,cAAc,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1E,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"IPluginOptions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IPluginOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC1C,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE9C,UAAU,cAAc,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;IAChD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,eAAe,cAAc,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../src/models/History.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,UAAU,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAqClD,QAAA,MAAM,OAAO,6LAA6C,CAAA;AAE1D,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../src/models/History.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,UAAU,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AA2ClD,QAAA,MAAM,OAAO,6LAA6C,CAAA;AAE1D,eAAe,OAAO,CAAA"}
@@ -1,11 +1,16 @@
1
1
  import type { HydratedDocument } from 'mongoose';
2
- import type IPluginOptions from './interfaces/IPluginOptions';
3
2
  import type IContext from './interfaces/IContext';
3
+ import type IPluginOptions from './interfaces/IPluginOptions';
4
+ import type { User, Reason, Metadata } from './interfaces/IPluginOptions';
4
5
  export declare function getObjects<T>(opts: IPluginOptions<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): {
5
6
  currentObject: Partial<T>;
6
7
  originalObject: Partial<T>;
7
8
  };
8
- export declare function getUser<T>(opts: IPluginOptions<T>): Promise<Record<string, unknown> | undefined>;
9
+ export declare function getUser<T>(opts: IPluginOptions<T>): Promise<User | undefined>;
10
+ export declare function getReason<T>(opts: IPluginOptions<T>): Promise<Reason | undefined>;
11
+ export declare function getMetadata<T>(opts: IPluginOptions<T>): Promise<Metadata | undefined>;
12
+ export declare function getValue<T>(item: PromiseSettledResult<T>): T | undefined;
13
+ export declare function getData<T>(opts: IPluginOptions<T>): Promise<[User | undefined, Reason | undefined, Metadata | undefined]>;
9
14
  export declare function bulkPatch<T>(opts: IPluginOptions<T>, context: IContext<T>, eventKey: 'eventCreated' | 'eventDeleted', docsKey: 'createdDocs' | 'deletedDocs'): Promise<void>;
10
15
  export declare function createPatch<T>(opts: IPluginOptions<T>, context: IContext<T>): Promise<void>;
11
16
  export declare function updatePatch<T>(opts: IPluginOptions<T>, context: IContext<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): Promise<void>;
@@ -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,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AAKjD,wBAAgB,UAAU,CAAC,CAAC,EAAG,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,CAU9K;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAKvG;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAG,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,CAsCnL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,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,CAkC/J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG"}
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,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAKzE,wBAAgB,UAAU,CAAC,CAAC,EAAG,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,CAU9K;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAKpF;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKxF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAK5F;AAED,wBAAgB,QAAQ,CAAE,CAAC,EAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAE1E;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAUhI;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAG,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,CAwCnL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,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,CAoC/J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAA2B,MAAM,EAAmB,MAAM,UAAU,CAAA;AAEzG,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAwC7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IAuJlG,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAA2B,MAAM,EAAmB,MAAM,UAAU,CAAA;AAEzG,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAwC7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IA+JlG,CAAA"}
@@ -25,6 +25,12 @@ const HistorySchema = new Schema({
25
25
  user: {
26
26
  type: Object
27
27
  },
28
+ reason: {
29
+ type: String
30
+ },
31
+ metadata: {
32
+ type: Object
33
+ },
28
34
  version: {
29
35
  type: Number,
30
36
  min: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"History.js","sourceRoot":"","sources":["../../../src/models/History.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAIxC,MAAM,aAAa,GAAG,IAAI,MAAM,CAAW;IACzC,EAAE,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;QAC3B,QAAQ,EAAE,IAAI;KACf;IACD,GAAG,EAAE;QACH,IAAI,EAAE,MAAM;KACb;IACD,KAAK,EAAE;QACL,IAAI,EAAE,KAAK;KACZ;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;KACb;IACD,OAAO,EAAE;QACP,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,CAAC;KACX;CACF,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;AAExB,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;AAE5F,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;AAE1D,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"History.js","sourceRoot":"","sources":["../../../src/models/History.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAIxC,MAAM,aAAa,GAAG,IAAI,MAAM,CAAW;IACzC,EAAE,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;QAC3B,QAAQ,EAAE,IAAI;KACf;IACD,GAAG,EAAE;QACH,IAAI,EAAE,MAAM;KACb;IACD,KAAK,EAAE;QACL,IAAI,EAAE,KAAK;KACZ;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;KACb;IACD,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;KACb;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM;KACb;IACD,OAAO,EAAE;QACP,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,CAAC;KACX;CACF,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;AAExB,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;AAE5F,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;AAE1D,eAAe,OAAO,CAAA"}
package/dist/esm/patch.js CHANGED
@@ -18,13 +18,39 @@ export async function getUser(opts) {
18
18
  }
19
19
  return undefined;
20
20
  }
21
+ export async function getReason(opts) {
22
+ if (_.isFunction(opts.getReason)) {
23
+ return await opts.getReason();
24
+ }
25
+ return undefined;
26
+ }
27
+ export async function getMetadata(opts) {
28
+ if (_.isFunction(opts.getMetadata)) {
29
+ return await opts.getMetadata();
30
+ }
31
+ return undefined;
32
+ }
33
+ export function getValue(item) {
34
+ return item.status === 'fulfilled' ? item.value : undefined;
35
+ }
36
+ export async function getData(opts) {
37
+ return Promise
38
+ .allSettled([getUser(opts), getReason(opts), getMetadata(opts)])
39
+ .then(([user, reason, metadata]) => {
40
+ return [
41
+ getValue(user),
42
+ getValue(reason),
43
+ getValue(metadata)
44
+ ];
45
+ });
46
+ }
21
47
  export async function bulkPatch(opts, context, eventKey, docsKey) {
22
48
  const event = opts[eventKey];
23
49
  const docs = context[docsKey];
24
50
  const key = eventKey === 'eventCreated' ? 'doc' : 'oldDoc';
25
51
  if (_.isEmpty(docs) || (!event && opts.patchHistoryDisabled))
26
52
  return;
27
- const user = await getUser(opts);
53
+ const [user, reason, metadata] = await getData(opts);
28
54
  const chunks = _.chunk(docs, 1000);
29
55
  for await (const chunk of chunks) {
30
56
  const bulk = [];
@@ -41,6 +67,8 @@ export async function bulkPatch(opts, context, eventKey, docsKey) {
41
67
  collectionId: doc._id,
42
68
  doc,
43
69
  user,
70
+ reason,
71
+ metadata,
44
72
  version: 0
45
73
  }
46
74
  }
@@ -72,7 +100,7 @@ export async function updatePatch(opts, context, current, original) {
72
100
  if (lastHistory && lastHistory.version >= 0) {
73
101
  version = lastHistory.version + 1;
74
102
  }
75
- const user = await getUser(opts);
103
+ const [user, reason, metadata] = await getData(opts);
76
104
  await History.create({
77
105
  op: context.op,
78
106
  modelName: context.modelName,
@@ -80,6 +108,8 @@ export async function updatePatch(opts, context, current, original) {
80
108
  collectionId: original._id,
81
109
  patch,
82
110
  user,
111
+ reason,
112
+ metadata,
83
113
  version
84
114
  });
85
115
  }
@@ -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":"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"}
@@ -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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"}
@@ -50,7 +50,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
50
50
  }
51
51
  next();
52
52
  });
53
- schema.post('insertMany', async function (docs) {
53
+ schema.post('insertMany', async function (docs, next) {
54
54
  const context = {
55
55
  op: 'create',
56
56
  modelName: opts.modelName ?? this.modelName,
@@ -58,6 +58,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
58
58
  createdDocs: docs
59
59
  };
60
60
  await createPatch(opts, context);
61
+ next();
61
62
  });
62
63
  schema.pre(updateMethods, async function (next) {
63
64
  const options = this.getOptions();
@@ -96,7 +97,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
96
97
  });
97
98
  next();
98
99
  });
99
- schema.post(updateMethods, async function () {
100
+ schema.post(updateMethods, async function (_, next) {
100
101
  const options = this.getOptions();
101
102
  if (options.ignoreHook)
102
103
  return;
@@ -109,8 +110,9 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
109
110
  this._context.createdDocs = [current];
110
111
  await createPatch(opts, this._context);
111
112
  }
113
+ next();
112
114
  });
113
- schema.post('remove', async function () {
115
+ schema.post('remove', async function (_, next) {
114
116
  const original = this.toObject(toObjectOptions);
115
117
  const model = this.constructor;
116
118
  const context = {
@@ -122,6 +124,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
122
124
  em.emit(opts.eventDeleted, { oldDoc: original });
123
125
  }
124
126
  await deletePatch(opts, context);
127
+ next();
125
128
  });
126
129
  schema.pre(deleteMethods, options, async function (next) {
127
130
  const options = this.getOptions();
@@ -150,11 +153,12 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
150
153
  }
151
154
  next();
152
155
  });
153
- schema.post(deleteMethods, options, async function () {
156
+ schema.post(deleteMethods, options, async function (_, next) {
154
157
  const options = this.getOptions();
155
158
  if (options.ignoreHook)
156
159
  return;
157
160
  await deletePatch(opts, this._context);
161
+ next();
158
162
  });
159
163
  };
160
164
  //# sourceMappingURL=plugin.js.map
@@ -8,6 +8,8 @@ interface IHistory {
8
8
  version: number;
9
9
  doc?: object;
10
10
  user?: object;
11
+ reason?: string;
12
+ metadata?: object;
11
13
  patch?: Operation[];
12
14
  }
13
15
  export default IHistory;
@@ -1 +1 @@
1
- {"version":3,"file":"IHistory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"IHistory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,QAAQ,CAAA"}
@@ -1,4 +1,7 @@
1
1
  import type { HydratedDocument } from 'mongoose';
2
+ export type User = Record<string, unknown>;
3
+ export type Reason = string;
4
+ export type Metadata = Record<string, unknown>;
2
5
  interface IPluginOptions<T> {
3
6
  modelName?: string;
4
7
  collectionName?: string;
@@ -7,7 +10,9 @@ interface IPluginOptions<T> {
7
10
  eventDeleted?: string;
8
11
  patchHistoryDisabled?: boolean;
9
12
  preDeleteCallback?: (docs: HydratedDocument<T>[]) => Promise<void>;
10
- getUser?: () => Promise<Record<string, unknown>> | Record<string, unknown>;
13
+ getUser?: () => Promise<User> | User;
14
+ getReason?: () => Promise<Reason> | Reason;
15
+ getMetadata?: () => Promise<Metadata> | Metadata;
11
16
  omit?: string[];
12
17
  }
13
18
  export default IPluginOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"IPluginOptions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IPluginOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,cAAc,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1E,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"IPluginOptions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IPluginOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC1C,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE9C,UAAU,cAAc,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;IAChD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,eAAe,cAAc,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../src/models/History.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,UAAU,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAqClD,QAAA,MAAM,OAAO,6LAA6C,CAAA;AAE1D,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../src/models/History.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,UAAU,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AA2ClD,QAAA,MAAM,OAAO,6LAA6C,CAAA;AAE1D,eAAe,OAAO,CAAA"}
@@ -1,11 +1,16 @@
1
1
  import type { HydratedDocument } from 'mongoose';
2
- import type IPluginOptions from './interfaces/IPluginOptions';
3
2
  import type IContext from './interfaces/IContext';
3
+ import type IPluginOptions from './interfaces/IPluginOptions';
4
+ import type { User, Reason, Metadata } from './interfaces/IPluginOptions';
4
5
  export declare function getObjects<T>(opts: IPluginOptions<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): {
5
6
  currentObject: Partial<T>;
6
7
  originalObject: Partial<T>;
7
8
  };
8
- export declare function getUser<T>(opts: IPluginOptions<T>): Promise<Record<string, unknown> | undefined>;
9
+ export declare function getUser<T>(opts: IPluginOptions<T>): Promise<User | undefined>;
10
+ export declare function getReason<T>(opts: IPluginOptions<T>): Promise<Reason | undefined>;
11
+ export declare function getMetadata<T>(opts: IPluginOptions<T>): Promise<Metadata | undefined>;
12
+ export declare function getValue<T>(item: PromiseSettledResult<T>): T | undefined;
13
+ export declare function getData<T>(opts: IPluginOptions<T>): Promise<[User | undefined, Reason | undefined, Metadata | undefined]>;
9
14
  export declare function bulkPatch<T>(opts: IPluginOptions<T>, context: IContext<T>, eventKey: 'eventCreated' | 'eventDeleted', docsKey: 'createdDocs' | 'deletedDocs'): Promise<void>;
10
15
  export declare function createPatch<T>(opts: IPluginOptions<T>, context: IContext<T>): Promise<void>;
11
16
  export declare function updatePatch<T>(opts: IPluginOptions<T>, context: IContext<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): Promise<void>;
@@ -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,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AAKjD,wBAAgB,UAAU,CAAC,CAAC,EAAG,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,CAU9K;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAKvG;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAG,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,CAsCnL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,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,CAkC/J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG"}
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,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAKzE,wBAAgB,UAAU,CAAC,CAAC,EAAG,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,CAU9K;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAKpF;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKxF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAK5F;AAED,wBAAgB,QAAQ,CAAE,CAAC,EAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAE1E;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAUhI;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAG,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,CAwCnL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,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,CAoC/J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAA2B,MAAM,EAAmB,MAAM,UAAU,CAAA;AAEzG,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAwC7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IAuJlG,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAA2B,MAAM,EAAmB,MAAM,UAAU,CAAA;AAEzG,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAwC7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IA+JlG,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-patch-mongoose",
3
- "version": "1.1.7",
3
+ "version": "1.1.9",
4
4
  "description": "Patch history & events for mongoose models",
5
5
  "author": "Alex Eagle",
6
6
  "license": "MIT",
@@ -9,6 +9,8 @@ interface IHistory {
9
9
  version: number
10
10
  doc?: object
11
11
  user?: object
12
+ reason?: string
13
+ metadata?: object
12
14
  patch?: Operation[]
13
15
  }
14
16
 
@@ -1,5 +1,9 @@
1
1
  import type { HydratedDocument } from 'mongoose'
2
2
 
3
+ export type User = Record<string, unknown>
4
+ export type Reason = string
5
+ export type Metadata = Record<string, unknown>
6
+
3
7
  interface IPluginOptions<T> {
4
8
  modelName?: string
5
9
  collectionName?: string
@@ -8,7 +12,9 @@ interface IPluginOptions<T> {
8
12
  eventDeleted?: string
9
13
  patchHistoryDisabled?: boolean
10
14
  preDeleteCallback?: (docs: HydratedDocument<T>[]) => Promise<void>
11
- getUser?: () => Promise<Record<string, unknown>> | Record<string, unknown>
15
+ getUser?: () => Promise<User> | User
16
+ getReason?: () => Promise<Reason> | Reason
17
+ getMetadata?: () => Promise<Metadata> | Metadata
12
18
  omit?: string[]
13
19
  }
14
20
 
@@ -28,6 +28,12 @@ const HistorySchema = new Schema<IHistory>({
28
28
  user: {
29
29
  type: Object
30
30
  },
31
+ reason: {
32
+ type: String
33
+ },
34
+ metadata: {
35
+ type: Object
36
+ },
31
37
  version: {
32
38
  type: Number,
33
39
  min: 0,
package/src/patch.ts CHANGED
@@ -4,8 +4,9 @@ import jsonpatch from 'fast-json-patch'
4
4
 
5
5
  import type { HydratedDocument, Types } from 'mongoose'
6
6
 
7
- import type IPluginOptions from './interfaces/IPluginOptions'
8
7
  import type IContext from './interfaces/IContext'
8
+ import type IPluginOptions from './interfaces/IPluginOptions'
9
+ import type { User, Reason, Metadata } from './interfaces/IPluginOptions'
9
10
 
10
11
  import History from './models/History'
11
12
  import em from './em'
@@ -22,13 +23,43 @@ export function getObjects<T> (opts: IPluginOptions<T>, current: HydratedDocumen
22
23
  return { currentObject, originalObject }
23
24
  }
24
25
 
25
- export async function getUser<T> (opts: IPluginOptions<T>): Promise<Record<string, unknown> | undefined> {
26
+ export async function getUser<T> (opts: IPluginOptions<T>): Promise<User | undefined> {
26
27
  if (_.isFunction(opts.getUser)) {
27
28
  return await opts.getUser()
28
29
  }
29
30
  return undefined
30
31
  }
31
32
 
33
+ export async function getReason<T> (opts: IPluginOptions<T>): Promise<Reason | undefined> {
34
+ if (_.isFunction(opts.getReason)) {
35
+ return await opts.getReason()
36
+ }
37
+ return undefined
38
+ }
39
+
40
+ export async function getMetadata<T> (opts: IPluginOptions<T>): Promise<Metadata | undefined> {
41
+ if (_.isFunction(opts.getMetadata)) {
42
+ return await opts.getMetadata()
43
+ }
44
+ return undefined
45
+ }
46
+
47
+ export function getValue <T> (item: PromiseSettledResult<T>): T | undefined {
48
+ return item.status === 'fulfilled' ? item.value : undefined
49
+ }
50
+
51
+ export async function getData<T> (opts: IPluginOptions<T>): Promise<[User | undefined, Reason | undefined, Metadata | undefined]> {
52
+ return Promise
53
+ .allSettled([getUser(opts), getReason(opts), getMetadata(opts)])
54
+ .then(([user, reason, metadata]) => {
55
+ return [
56
+ getValue(user),
57
+ getValue(reason),
58
+ getValue(metadata)
59
+ ]
60
+ })
61
+ }
62
+
32
63
  export async function bulkPatch<T> (opts: IPluginOptions<T>, context: IContext<T>, eventKey: 'eventCreated' | 'eventDeleted', docsKey: 'createdDocs' | 'deletedDocs'): Promise<void> {
33
64
  const event = opts[eventKey]
34
65
  const docs = context[docsKey]
@@ -36,7 +67,7 @@ export async function bulkPatch<T> (opts: IPluginOptions<T>, context: IContext<T
36
67
 
37
68
  if (_.isEmpty(docs) || (!event && opts.patchHistoryDisabled)) return
38
69
 
39
- const user = await getUser(opts)
70
+ const [user, reason, metadata] = await getData(opts)
40
71
 
41
72
  const chunks = _.chunk(docs, 1000)
42
73
 
@@ -56,6 +87,8 @@ export async function bulkPatch<T> (opts: IPluginOptions<T>, context: IContext<T
56
87
  collectionId: doc._id as Types.ObjectId,
57
88
  doc,
58
89
  user,
90
+ reason,
91
+ metadata,
59
92
  version: 0
60
93
  }
61
94
  }
@@ -96,7 +129,7 @@ export async function updatePatch<T> (opts: IPluginOptions<T>, context: IContext
96
129
  version = lastHistory.version + 1
97
130
  }
98
131
 
99
- const user = await getUser(opts)
132
+ const [user, reason, metadata] = await getData(opts)
100
133
 
101
134
  await History.create({
102
135
  op: context.op,
@@ -105,6 +138,8 @@ export async function updatePatch<T> (opts: IPluginOptions<T>, context: IContext
105
138
  collectionId: original._id as Types.ObjectId,
106
139
  patch,
107
140
  user,
141
+ reason,
142
+ metadata,
108
143
  version
109
144
  })
110
145
  }
package/src/plugin.ts CHANGED
@@ -75,7 +75,7 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
75
75
  next()
76
76
  })
77
77
 
78
- schema.post('insertMany', async function (docs) {
78
+ schema.post('insertMany', async function (docs, next) {
79
79
  const context = {
80
80
  op: 'create',
81
81
  modelName: opts.modelName ?? this.modelName,
@@ -84,6 +84,8 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
84
84
  }
85
85
 
86
86
  await createPatch(opts, context)
87
+
88
+ next()
87
89
  })
88
90
 
89
91
  schema.pre(updateMethods as MongooseQueryMiddleware[], async function (this: IHookContext<T>, next) {
@@ -131,7 +133,7 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
131
133
  next()
132
134
  })
133
135
 
134
- schema.post(updateMethods as MongooseQueryMiddleware[], async function (this: IHookContext<T>) {
136
+ schema.post(updateMethods as MongooseQueryMiddleware[], async function (this: IHookContext<T>, _, next) {
135
137
  const options = this.getOptions()
136
138
  if (options.ignoreHook) return
137
139
 
@@ -146,9 +148,11 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
146
148
 
147
149
  await createPatch(opts, this._context)
148
150
  }
151
+
152
+ next()
149
153
  })
150
154
 
151
- schema.post('remove', async function (this: HydratedDocument<T>) {
155
+ schema.post('remove', async function (this: HydratedDocument<T>, _, next) {
152
156
  const original = this.toObject(toObjectOptions)
153
157
  const model = this.constructor as Model<T>
154
158
 
@@ -163,6 +167,8 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
163
167
  }
164
168
 
165
169
  await deletePatch(opts, context)
170
+
171
+ next()
166
172
  })
167
173
 
168
174
  schema.pre(deleteMethods as MongooseQueryMiddleware[], options, async function (this: IHookContext<T>, next) {
@@ -196,10 +202,12 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
196
202
  next()
197
203
  })
198
204
 
199
- schema.post(deleteMethods as MongooseQueryMiddleware[], options, async function (this: IHookContext<T>) {
205
+ schema.post(deleteMethods as MongooseQueryMiddleware[], options, async function (this: IHookContext<T>, _, next) {
200
206
  const options = this.getOptions()
201
207
  if (options.ignoreHook) return
202
208
 
203
209
  await deletePatch(opts, this._context)
210
+
211
+ next()
204
212
  })
205
213
  }
@@ -1,6 +1,6 @@
1
1
  import mongoose, { model } from 'mongoose'
2
2
 
3
- import { getUser, getObjects, bulkPatch, updatePatch } from '../src/patch'
3
+ import { getUser, getReason, getMetadata, getData, getValue, getObjects, bulkPatch, updatePatch } from '../src/patch'
4
4
  import { patchHistoryPlugin } from '../src/plugin'
5
5
 
6
6
  import UserSchema from './schemas/UserSchema'
@@ -8,6 +8,7 @@ import UserSchema from './schemas/UserSchema'
8
8
  import { USER_DELETED } from './constants/events'
9
9
 
10
10
  import type { HydratedDocument } from 'mongoose'
11
+ import type { User } from '../src/interfaces/IPluginOptions'
11
12
  import type IPluginOptions from '../src/interfaces/IPluginOptions'
12
13
  import type IUser from './interfaces/IUser'
13
14
  import type IContext from '../src/interfaces/IContext'
@@ -140,12 +141,58 @@ describe('patch tests', () => {
140
141
  })
141
142
 
142
143
  describe('should getUser()', () => {
143
- it('should return user', async () => {
144
+ it('should return user, reason, metadata', async () => {
144
145
  const opts: IPluginOptions<IUser> = {
145
- getUser: () => ({ name: 'test' })
146
+ getUser: () => ({ name: 'test' }),
147
+ getReason: () => 'test',
148
+ getMetadata: () => ({ test: 'test' })
146
149
  }
147
150
 
148
151
  await expect(getUser(opts)).resolves.toEqual({ name: 'test' })
152
+ await expect(getReason(opts)).resolves.toBe('test')
153
+ await expect(getMetadata(opts)).resolves.toEqual({ test: 'test' })
154
+ })
155
+ })
156
+
157
+ describe('should getData()', () => {
158
+ it('should return user, reason, metadata', async () => {
159
+ const opts: IPluginOptions<IUser> = {
160
+ getUser: () => ({ name: 'test' }),
161
+ getReason: () => 'test',
162
+ getMetadata: () => ({ test: 'test' })
163
+ }
164
+
165
+ await expect(getData(opts)).resolves.toEqual([{ name: 'test' }, 'test', { test: 'test' }])
166
+ })
167
+
168
+ it('should return user, reason, metadata undefined', async () => {
169
+ const opts: IPluginOptions<IUser> = {
170
+ getUser: () => ({ name: 'test' }),
171
+ getReason: () => 'test',
172
+ getMetadata: () => {
173
+ throw new Error('test')
174
+ }
175
+ }
176
+
177
+ await expect(getData(opts)).resolves.toEqual([{ name: 'test' }, 'test', undefined])
178
+ })
179
+
180
+ it('should getValue', () => {
181
+ const item1: PromiseSettledResult<User> = {
182
+ status: 'fulfilled',
183
+ value: {
184
+ name: 'test'
185
+ }
186
+ }
187
+
188
+ expect(getValue(item1)).toEqual({ name: 'test' })
189
+
190
+ const item2: PromiseSettledResult<User> = {
191
+ status: 'rejected',
192
+ reason: new Error('test')
193
+ }
194
+
195
+ expect(getValue(item2)).toBeUndefined()
149
196
  })
150
197
  })
151
198
  })