ts-patch-mongoose 1.2.3 → 2.0.0

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 (39) hide show
  1. package/README.md +94 -36
  2. package/dist/cjs/models/History.js +1 -1
  3. package/dist/cjs/models/History.js.map +1 -1
  4. package/dist/cjs/plugin.js +7 -9
  5. package/dist/cjs/plugin.js.map +1 -1
  6. package/dist/cjs/types/interfaces/IPluginOptions.d.ts +2 -2
  7. package/dist/cjs/types/interfaces/IPluginOptions.d.ts.map +1 -1
  8. package/dist/cjs/types/plugin.d.ts +1 -1
  9. package/dist/cjs/types/plugin.d.ts.map +1 -1
  10. package/dist/cjs/types/version.d.ts +3 -0
  11. package/dist/cjs/types/version.d.ts.map +1 -0
  12. package/dist/cjs/version.js +12 -0
  13. package/dist/cjs/version.js.map +1 -0
  14. package/dist/esm/models/History.js +1 -1
  15. package/dist/esm/models/History.js.map +1 -1
  16. package/dist/esm/plugin.js.map +1 -1
  17. package/dist/esm/plugin.mjs +7 -9
  18. package/dist/esm/types/interfaces/IPluginOptions.d.ts +2 -2
  19. package/dist/esm/types/interfaces/IPluginOptions.d.ts.map +1 -1
  20. package/dist/esm/types/plugin.d.ts +1 -1
  21. package/dist/esm/types/plugin.d.ts.map +1 -1
  22. package/dist/esm/types/version.d.ts +3 -0
  23. package/dist/esm/types/version.d.ts.map +1 -0
  24. package/dist/esm/version.js +8 -0
  25. package/dist/esm/version.js.map +1 -0
  26. package/jest.config.ts +3 -5
  27. package/package.json +6 -5
  28. package/src/interfaces/IPluginOptions.ts +2 -2
  29. package/src/models/History.ts +1 -1
  30. package/src/plugin.ts +7 -9
  31. package/src/version.ts +9 -0
  32. package/tests/plugin-event-created.test.ts +14 -5
  33. package/tests/plugin-event-deleted.test.ts +28 -5
  34. package/tests/plugin-event-updated.test.ts +8 -1
  35. package/tests/plugin-omit-all.test.ts +12 -2
  36. package/tests/plugin-patch-history-disabled.test.ts +12 -2
  37. package/tests/{plugin-callback.test.ts → plugin-pre-delete.test.ts} +5 -5
  38. package/tests/plugin.test.ts +12 -5
  39. package/tests/mongose.test.ts +0 -28
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ts-patch-mongoose
2
2
 
3
- Patch history & events plugin for mongoose
3
+ Patch history (audit log) & events plugin for mongoose
4
4
 
5
5
  [![npm](https://img.shields.io/npm/v/ts-patch-mongoose)](https://www.npmjs.com/package/ts-patch-mongoose)
6
6
  [![npm](https://img.shields.io/npm/dt/ts-patch-mongoose)](https://www.npmjs.com/package/ts-patch-mongoose)
@@ -21,6 +21,15 @@ ts-patch-mongoose is a plugin for mongoose
21
21
  \
22
22
  I need to track changes of mongoose models and save them as patch history (audit log) in separate collection. Changes must also emit events that I can subscribe to and react in other parts of my application. I also want to omit some fields from patch history.
23
23
 
24
+ ## Supports and tested with
25
+
26
+ ```json
27
+ {
28
+ "node": "16.x || 18.x || 20.x",
29
+ "mongoose": ">=6.6.x || 7.x",
30
+ }
31
+ ```
32
+
24
33
  ## Features
25
34
 
26
35
  - Track changes in mongoose models
@@ -40,6 +49,17 @@ npm install ts-patch-mongoose
40
49
  yarn add ts-patch-mongoose
41
50
  ```
42
51
 
52
+ - This plugin requires mongoose `>=6.6.x || 7.x` to be installed as a peer dependency
53
+
54
+ ```bash
55
+ # For mongoose 6
56
+ npm install mongoose@legacy
57
+ yarn add mongoose mongoose@legacy
58
+ # For mongoose 7
59
+ npm install mongoose@latest
60
+ yarn add mongoose@latest
61
+ ```
62
+
43
63
  ## Example
44
64
 
45
65
  How to use it with express [ts-express-swc](https://github.com/ilovepixelart/ts-express-swc)
@@ -47,94 +67,132 @@ How to use it with express [ts-express-swc](https://github.com/ilovepixelart/ts-
47
67
  Create your event constants `events.ts`
48
68
 
49
69
  ```typescript
50
- export const USER_CREATED = 'user-created'
51
- export const USER_UPDATED = 'user-updated'
52
- export const USER_DELETED = 'user-deleted'
70
+ export const BOOK_CREATED = 'book-created'
71
+ export const BOOK_UPDATED = 'book-updated'
72
+ export const BOOK_DELETED = 'book-deleted'
53
73
  ```
54
74
 
55
- Create your interface `IUser.ts`
75
+ Create your interface `IBook.ts`
56
76
 
57
77
  ```typescript
58
- interface IUser {
59
- name: string
60
- role: string
78
+ import type { Types } from 'mongoose'
79
+
80
+ interface IBook {
81
+ title: string
82
+ description?: string
83
+ authorId: Types.ObjectId
61
84
  createdAt?: Date
62
85
  updatedAt?: Date
63
86
  }
64
87
 
65
- export default IUser
88
+ export default IBook
66
89
  ```
67
90
 
68
- Setup your mongoose model `User.ts`
91
+ Setup your mongoose model `Book.ts`
69
92
 
70
93
  ```typescript
71
94
  import { Schema, model } from 'mongoose'
72
95
 
73
- import type IUser from '../interfaces/IUser'
96
+ import type { HydratedDocument, Types } from 'mongoose'
97
+ import type IBook from '../interfaces/IBook'
74
98
 
75
99
  import { patchHistoryPlugin } from 'ts-patch-mongoose'
76
- import { USER_CREATED, USER_UPDATED, USER_DELETED } from '../constants/events'
100
+ import { BOOK_CREATED, BOOK_UPDATED, BOOK_DELETED } from '../constants/events'
77
101
 
78
- const UserSchema = new Schema<IUser>({
102
+ const BookSchema = new Schema<IBook>({
79
103
  name: {
80
- type: String,
104
+ title: String,
81
105
  required: true
82
106
  },
83
- role: {
107
+ description: {
84
108
  type: String,
85
- enum: ['admin', 'manager', 'user'],
109
+ },
110
+ authorId: {
111
+ type: Types.ObjectId,
86
112
  required: true
87
113
  }
88
114
  }, { timestamps: true })
89
115
 
90
- UserSchema.plugin(patchHistoryPlugin, {
91
- // In case you just want to track changes in your models using events below.
92
- // And don't want to save changes to patch history collection
93
- patchHistoryDisabled: true,
94
-
95
- // Create event constants provide them to plugin and use them to subscribe to events
96
- eventCreated: USER_CREATED,
97
- eventUpdated: USER_UPDATED,
98
- eventDeleted: USER_DELETED,
116
+ BookSchema.plugin(patchHistoryPlugin, {
117
+ // Provide your event constants to plugin
118
+ eventCreated: BOOK_CREATED,
119
+ eventUpdated: BOOK_UPDATED,
120
+ eventDeleted: BOOK_DELETED,
99
121
 
100
122
  // You can omit some properties in case you don't want to save them to patch history
101
- omit: ['__v', 'createdAt', 'updatedAt']
123
+ omit: ['__v', 'createdAt', 'updatedAt'],
124
+
125
+ // Addition options for ts-match-mongoose plugin
126
+ // Everything bellow is optional and just shows you what you can do:
127
+
128
+ // Code bellow is abstract example, you can use any other way to get user, reason, metadata
129
+ // These three properties will be added to patch history document automatically and give you flexibility to track who, why and when made changes to your documents
130
+ getUser: async () => {
131
+ // For example: get user from http context
132
+ // You should return an object, in case you want to save user to patch history
133
+ return httpContext.get('user') as Record<string, unknown>
134
+ },
135
+
136
+ // Reason of document (create/update/delete) like: 'Excel upload', 'Manual update', 'API call', etc.
137
+ getReason: async () => {
138
+ // For example: get reason from http context, or any other place of your application
139
+ // You shout return a string, in case you want to save reason to patch history
140
+ return httpContext.get('reason') as string
141
+ },
142
+
143
+ // You can provide any information you want to save in along with patch history
144
+ getMetadata: async () => {
145
+ // For example: get metadata from http context, or any other place of your application
146
+ // You should return an object, in case you want to save metadata to patch history
147
+ return httpContext.get('metadata') as Record<string, unknown>
148
+ },
149
+
150
+ // Do something before deleting documents
151
+ // This method will be executed before deleting document or documents and always returns a nonempty array of documents
152
+ preDelete: async (docs: HydratedDocument<IBook>[]) => {
153
+ const bookIds = docs.map((doc) => doc._id)
154
+ await SomeOtherModel.deleteMany({ bookId: { $in: bookIds } })
155
+ },
156
+
157
+ // In case you just want to track changes in your models using events below.
158
+ // And don't want to save changes to patch history collection
159
+ patchHistoryDisabled: true,
102
160
  })
103
161
 
104
- const User = model('User', UserSchema)
162
+ const Book = model('Book', BookSchema)
105
163
 
106
- export default User
164
+ export default Book
107
165
  ```
108
166
 
109
167
  ## Subscribe
110
168
 
111
- You can subscribe to events using patchEventEmitter anywhere in your application `handlers/UserHandler.ts`
169
+ You can subscribe to events using patchEventEmitter anywhere in your application `handlers/BookHandler.ts`
112
170
 
113
171
  ```typescript
114
172
  import { patchEventEmitter } from 'ts-patch-mongoose'
115
- import { USER_CREATED, USER_UPDATED, USER_DELETED } from '../constants/events'
173
+ import { BOOK_CREATED, BOOK_UPDATED, BOOK_DELETED } from '../constants/events'
116
174
 
117
- patchEventEmitter.on(USER_CREATED, ({ doc }) => {
175
+ patchEventEmitter.on(BOOK_CREATED, ({ doc }) => {
118
176
  try {
119
- console.log('Event - user created', doc)
177
+ console.log('Event - book created', doc)
120
178
  // Do something with doc here
121
179
  } catch (error) {
122
180
  console.error(error)
123
181
  }
124
182
  })
125
183
 
126
- patchEventEmitter.on(USER_UPDATED, ({ doc, oldDoc, patch }) => {
184
+ patchEventEmitter.on(BOOK_UPDATED, ({ doc, oldDoc, patch }) => {
127
185
  try {
128
- console.log('Event - user updated', doc, oldDoc, patch)
186
+ console.log('Event - book updated', doc, oldDoc, patch)
129
187
  // Do something with doc, oldDoc and patch here
130
188
  } catch (error) {
131
189
  console.error(error)
132
190
  }
133
191
  })
134
192
 
135
- patchEventEmitter.on(USER_DELETED, ({ oldDoc }) => {
193
+ patchEventEmitter.on(BOOK_DELETED, ({ oldDoc }) => {
136
194
  try {
137
- console.log('Event - user deleted', oldDoc)
195
+ console.log('Event - book deleted', oldDoc)
138
196
  // Do something with doc here
139
197
  } catch (error) {
140
198
  console.error(error)
@@ -39,7 +39,7 @@ const HistorySchema = new mongoose_1.Schema({
39
39
  default: 0
40
40
  }
41
41
  }, { timestamps: true });
42
- HistorySchema.index({ op: 1, modelName: 1, collectionName: 1, collectionId: 1, version: 1 });
42
+ HistorySchema.index({ op: 1, modelName: 1, collectionName: 1, collectionId: 1, reason: 1, version: 1 });
43
43
  const History = (0, mongoose_1.model)('History', HistorySchema, 'history');
44
44
  exports.default = History;
45
45
  //# sourceMappingURL=History.js.map
@@ -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,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"}
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,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;AAEvG,MAAM,OAAO,GAAG,IAAA,gBAAK,EAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;AAE1D,kBAAe,OAAO,CAAA"}
@@ -5,11 +5,9 @@ const tslib_1 = require("tslib");
5
5
  const lodash_1 = tslib_1.__importDefault(require("lodash"));
6
6
  const power_assign_1 = require("power-assign");
7
7
  const patch_1 = require("./patch");
8
+ const version_1 = require("./version");
8
9
  const em_1 = tslib_1.__importDefault(require("./em"));
9
- const options = {
10
- document: false,
11
- query: true
12
- };
10
+ const remove = version_1.isMongooseLessThan7 ? 'remove' : 'deleteOne';
13
11
  const toObjectOptions = {
14
12
  depopulate: true,
15
13
  virtuals: false
@@ -127,7 +125,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
127
125
  }
128
126
  }
129
127
  });
130
- schema.post('remove', async function () {
128
+ schema.post(remove, { document: true, query: false }, async function () {
131
129
  const original = this.toObject(toObjectOptions);
132
130
  const model = this.constructor;
133
131
  const context = {
@@ -140,7 +138,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
140
138
  }
141
139
  await (0, patch_1.deletePatch)(opts, context);
142
140
  });
143
- schema.pre(deleteMethods, options, async function () {
141
+ schema.pre(deleteMethods, { document: false, query: true }, async function () {
144
142
  const options = this.getOptions();
145
143
  if (options.ignoreHook)
146
144
  return;
@@ -162,11 +160,11 @@ const patchHistoryPlugin = function plugin(schema, opts) {
162
160
  this._context.deletedDocs = [doc];
163
161
  }
164
162
  }
165
- if (opts.preDeleteCallback && lodash_1.default.isArray(this._context.deletedDocs) && !lodash_1.default.isEmpty(this._context.deletedDocs)) {
166
- await opts.preDeleteCallback(this._context.deletedDocs);
163
+ if (opts.preDelete && lodash_1.default.isArray(this._context.deletedDocs) && !lodash_1.default.isEmpty(this._context.deletedDocs)) {
164
+ await opts.preDelete(this._context.deletedDocs);
167
165
  }
168
166
  });
169
- schema.post(deleteMethods, options, async function () {
167
+ schema.post(deleteMethods, { document: false, query: true }, async function () {
170
168
  const options = this.getOptions();
171
169
  if (options.ignoreHook)
172
170
  return;
@@ -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,12 +8,12 @@ interface IPluginOptions<T> {
8
8
  eventUpdated?: string;
9
9
  eventCreated?: string;
10
10
  eventDeleted?: string;
11
- patchHistoryDisabled?: boolean;
12
- preDeleteCallback?: (docs: HydratedDocument<T>[]) => Promise<void>;
13
11
  getUser?: () => Promise<User> | User;
14
12
  getReason?: () => Promise<Reason> | Reason;
15
13
  getMetadata?: () => Promise<Metadata> | Metadata;
16
14
  omit?: string[];
15
+ patchHistoryDisabled?: boolean;
16
+ preDelete?: (docs: HydratedDocument<T>[]) => Promise<void>;
17
17
  }
18
18
  export default IPluginOptions;
19
19
  //# sourceMappingURL=IPluginOptions.d.ts.map
@@ -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,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
+ {"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,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;IACf,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAED,eAAe,cAAc,CAAA"}
@@ -36,7 +36,7 @@ export declare const patchEventEmitter: {
36
36
  listeners(eventName: string | symbol): Function[];
37
37
  rawListeners(eventName: string | symbol): Function[];
38
38
  emit(eventName: string | symbol, ...args: any[]): boolean;
39
- listenerCount(eventName: string | symbol): number;
39
+ listenerCount(eventName: string | symbol, listener?: Function | undefined): number;
40
40
  prependListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
41
41
  prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
42
42
  eventNames(): (string | symbol)[];
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAA2B,MAAM,EAA+D,MAAM,UAAU,CAAA;AAErJ,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAwE7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IAoIlG,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAA2B,MAAM,EAA+D,MAAM,UAAU,CAAA;AAErJ,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAsE7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IAoIlG,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const isMongooseLessThan7: boolean;
2
+ export declare const isMongoose6: boolean;
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/version.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,SAAoC,CAAA;AACpE,eAAO,MAAM,WAAW,SAAmC,CAAA"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMongoose6 = exports.isMongooseLessThan7 = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const semver_1 = require("semver");
6
+ const mongoose_1 = tslib_1.__importDefault(require("mongoose"));
7
+ exports.isMongooseLessThan7 = (0, semver_1.satisfies)(mongoose_1.default.version, '<7');
8
+ exports.isMongoose6 = (0, semver_1.satisfies)(mongoose_1.default.version, '6');
9
+ if (exports.isMongoose6) {
10
+ mongoose_1.default.set('strictQuery', false);
11
+ }
12
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;;AAAA,mCAAkC;AAClC,gEAA+B;AAElB,QAAA,mBAAmB,GAAG,IAAA,kBAAS,EAAC,kBAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACvD,QAAA,WAAW,GAAG,IAAA,kBAAS,EAAC,kBAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AAE3D,IAAI,mBAAW,EAAE;IACf,kBAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;CACnC"}
@@ -37,7 +37,7 @@ const HistorySchema = new Schema({
37
37
  default: 0
38
38
  }
39
39
  }, { timestamps: true });
40
- HistorySchema.index({ op: 1, modelName: 1, collectionName: 1, collectionId: 1, version: 1 });
40
+ HistorySchema.index({ op: 1, modelName: 1, collectionName: 1, collectionId: 1, reason: 1, version: 1 });
41
41
  const History = model('History', HistorySchema, 'history');
42
42
  export default History;
43
43
  //# sourceMappingURL=History.js.map
@@ -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,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"}
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,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;AAEvG,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;AAE1D,eAAe,OAAO,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,9 @@
1
1
  import _ from 'lodash';
2
2
  import { assign } from 'power-assign';
3
3
  import { createPatch, updatePatch, deletePatch } from './patch';
4
+ import { isMongooseLessThan7 } from './version';
4
5
  import em from './em';
5
- const options = {
6
- document: false,
7
- query: true
8
- };
6
+ const remove = isMongooseLessThan7 ? 'remove' : 'deleteOne';
9
7
  const toObjectOptions = {
10
8
  depopulate: true,
11
9
  virtuals: false
@@ -123,7 +121,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
123
121
  }
124
122
  }
125
123
  });
126
- schema.post('remove', async function () {
124
+ schema.post(remove, { document: true, query: false }, async function () {
127
125
  const original = this.toObject(toObjectOptions);
128
126
  const model = this.constructor;
129
127
  const context = {
@@ -136,7 +134,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
136
134
  }
137
135
  await deletePatch(opts, context);
138
136
  });
139
- schema.pre(deleteMethods, options, async function () {
137
+ schema.pre(deleteMethods, { document: false, query: true }, async function () {
140
138
  const options = this.getOptions();
141
139
  if (options.ignoreHook)
142
140
  return;
@@ -158,11 +156,11 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
158
156
  this._context.deletedDocs = [doc];
159
157
  }
160
158
  }
161
- if (opts.preDeleteCallback && _.isArray(this._context.deletedDocs) && !_.isEmpty(this._context.deletedDocs)) {
162
- await opts.preDeleteCallback(this._context.deletedDocs);
159
+ if (opts.preDelete && _.isArray(this._context.deletedDocs) && !_.isEmpty(this._context.deletedDocs)) {
160
+ await opts.preDelete(this._context.deletedDocs);
163
161
  }
164
162
  });
165
- schema.post(deleteMethods, options, async function () {
163
+ schema.post(deleteMethods, { document: false, query: true }, async function () {
166
164
  const options = this.getOptions();
167
165
  if (options.ignoreHook)
168
166
  return;
@@ -8,12 +8,12 @@ interface IPluginOptions<T> {
8
8
  eventUpdated?: string;
9
9
  eventCreated?: string;
10
10
  eventDeleted?: string;
11
- patchHistoryDisabled?: boolean;
12
- preDeleteCallback?: (docs: HydratedDocument<T>[]) => Promise<void>;
13
11
  getUser?: () => Promise<User> | User;
14
12
  getReason?: () => Promise<Reason> | Reason;
15
13
  getMetadata?: () => Promise<Metadata> | Metadata;
16
14
  omit?: string[];
15
+ patchHistoryDisabled?: boolean;
16
+ preDelete?: (docs: HydratedDocument<T>[]) => Promise<void>;
17
17
  }
18
18
  export default IPluginOptions;
19
19
  //# sourceMappingURL=IPluginOptions.d.ts.map
@@ -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,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
+ {"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,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;IACf,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAED,eAAe,cAAc,CAAA"}
@@ -36,7 +36,7 @@ export declare const patchEventEmitter: {
36
36
  listeners(eventName: string | symbol): Function[];
37
37
  rawListeners(eventName: string | symbol): Function[];
38
38
  emit(eventName: string | symbol, ...args: any[]): boolean;
39
- listenerCount(eventName: string | symbol): number;
39
+ listenerCount(eventName: string | symbol, listener?: Function | undefined): number;
40
40
  prependListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
41
41
  prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
42
42
  eventNames(): (string | symbol)[];
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAA2B,MAAM,EAA+D,MAAM,UAAU,CAAA;AAErJ,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAwE7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IAoIlG,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAA2B,MAAM,EAA+D,MAAM,UAAU,CAAA;AAErJ,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAsE7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IAoIlG,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const isMongooseLessThan7: boolean;
2
+ export declare const isMongoose6: boolean;
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/version.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,SAAoC,CAAA;AACpE,eAAO,MAAM,WAAW,SAAmC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { satisfies } from 'semver';
2
+ import mongoose from 'mongoose';
3
+ export const isMongooseLessThan7 = satisfies(mongoose.version, '<7');
4
+ export const isMongoose6 = satisfies(mongoose.version, '6');
5
+ if (isMongoose6) {
6
+ mongoose.set('strictQuery', false);
7
+ }
8
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,QAAQ,MAAM,UAAU,CAAA;AAE/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACpE,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AAE3D,IAAI,WAAW,EAAE;IACf,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;CACnC"}
package/jest.config.ts CHANGED
@@ -11,18 +11,16 @@ const config = recursive(mongo, {
11
11
  clearMocks: true,
12
12
  collectCoverage: true,
13
13
  collectCoverageFrom: [
14
- 'src/**/*.[jt]s?(x)',
15
- '!src/bin.ts',
14
+ 'src/**/*.ts',
16
15
  '!src/**/*.d.ts',
17
- '!src/interfaces/**/*.[jt]s?(x)',
18
- '!src/template.ts'
16
+ '!src/interfaces/**/*.ts'
19
17
  ],
20
18
  coverageDirectory: 'coverage',
21
19
  testMatch: [
22
20
  '<rootDir>/tests/**/*.test.ts'
23
21
  ],
24
22
  transform: {
25
- '^.+\\.tsx?$': '@swc/jest'
23
+ '^.+\\.(t|j)sx?$': '@swc/jest'
26
24
  },
27
25
  testPathIgnorePatterns: [
28
26
  'node_modules'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-patch-mongoose",
3
- "version": "1.2.3",
3
+ "version": "2.0.0",
4
4
  "description": "Patch history & events for mongoose models",
5
5
  "author": "Alex Eagle",
6
6
  "license": "MIT",
@@ -72,13 +72,14 @@
72
72
  "build": "npm run clean && npm run build:cjs && npm run build:esm",
73
73
  "build:cjs": "tsc -p config/tsconfig.cjs.json",
74
74
  "build:esm": "tsc -p config/tsconfig.esm.json && mv ./dist/esm/plugin.js ./dist/esm/plugin.mjs",
75
- "release": "npm run lint && npm run build && np"
75
+ "release": "npm install && npm run lint && npm run build && np"
76
76
  },
77
77
  "dependencies": {
78
78
  "fast-json-patch": "3.1.1",
79
79
  "lodash": "4.17.21",
80
80
  "omit-deep": "0.3.0",
81
- "power-assign": "0.2.10"
81
+ "power-assign": "0.2.10",
82
+ "semver": "7.5.0"
82
83
  },
83
84
  "devDependencies": {
84
85
  "@shelf/jest-mongodb": "4.1.7",
@@ -89,7 +90,7 @@
89
90
  "@swc/register": "0.1.10",
90
91
  "@types/jest": "29.5.1",
91
92
  "@types/lodash": "4.14.194",
92
- "@types/node": "18.15.13",
93
+ "@types/node": "18.16.0",
93
94
  "@typescript-eslint/eslint-plugin": "5.59.0",
94
95
  "@typescript-eslint/parser": "5.59.0",
95
96
  "eslint": "8.39.0",
@@ -109,6 +110,6 @@
109
110
  "typescript": "5.0.4"
110
111
  },
111
112
  "peerDependencies": {
112
- "mongoose": ">=6.6.0 < 7"
113
+ "mongoose": ">=6.6.0 < 8"
113
114
  }
114
115
  }
@@ -10,12 +10,12 @@ interface IPluginOptions<T> {
10
10
  eventUpdated?: string
11
11
  eventCreated?: string
12
12
  eventDeleted?: string
13
- patchHistoryDisabled?: boolean
14
- preDeleteCallback?: (docs: HydratedDocument<T>[]) => Promise<void>
15
13
  getUser?: () => Promise<User> | User
16
14
  getReason?: () => Promise<Reason> | Reason
17
15
  getMetadata?: () => Promise<Metadata> | Metadata
18
16
  omit?: string[]
17
+ patchHistoryDisabled?: boolean
18
+ preDelete?: (docs: HydratedDocument<T>[]) => Promise<void>
19
19
  }
20
20
 
21
21
  export default IPluginOptions
@@ -41,7 +41,7 @@ const HistorySchema = new Schema<IHistory>({
41
41
  }
42
42
  }, { timestamps: true })
43
43
 
44
- HistorySchema.index({ op: 1, modelName: 1, collectionName: 1, collectionId: 1, version: 1 })
44
+ HistorySchema.index({ op: 1, modelName: 1, collectionName: 1, collectionId: 1, reason: 1, version: 1 })
45
45
 
46
46
  const History = model('History', HistorySchema, 'history')
47
47
 
package/src/plugin.ts CHANGED
@@ -8,12 +8,10 @@ import type IContext from './interfaces/IContext'
8
8
  import type IHookContext from './interfaces/IHookContext'
9
9
 
10
10
  import { createPatch, updatePatch, deletePatch } from './patch'
11
+ import { isMongooseLessThan7 } from './version'
11
12
  import em from './em'
12
13
 
13
- const options = {
14
- document: false,
15
- query: true
16
- }
14
+ const remove = isMongooseLessThan7 ? 'remove' : 'deleteOne'
17
15
 
18
16
  const toObjectOptions: ToObjectOptions = {
19
17
  depopulate: true,
@@ -163,7 +161,7 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
163
161
  }
164
162
  })
165
163
 
166
- schema.post('remove', async function (this: HydratedDocument<T>) {
164
+ schema.post(remove, { document: true, query: false }, async function (this: HydratedDocument<T>) {
167
165
  const original = this.toObject(toObjectOptions)
168
166
  const model = this.constructor as Model<T>
169
167
 
@@ -180,7 +178,7 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
180
178
  await deletePatch(opts, context)
181
179
  })
182
180
 
183
- schema.pre(deleteMethods as MongooseQueryMiddleware[], options, async function (this: IHookContext<T>) {
181
+ schema.pre(deleteMethods as MongooseQueryMiddleware[], { document: false, query: true }, async function (this: IHookContext<T>) {
184
182
  const options = this.getOptions()
185
183
  if (options.ignoreHook) return
186
184
 
@@ -204,12 +202,12 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
204
202
  }
205
203
  }
206
204
 
207
- if (opts.preDeleteCallback && _.isArray(this._context.deletedDocs) && !_.isEmpty(this._context.deletedDocs)) {
208
- await opts.preDeleteCallback(this._context.deletedDocs)
205
+ if (opts.preDelete && _.isArray(this._context.deletedDocs) && !_.isEmpty(this._context.deletedDocs)) {
206
+ await opts.preDelete(this._context.deletedDocs)
209
207
  }
210
208
  })
211
209
 
212
- schema.post(deleteMethods as MongooseQueryMiddleware[], options, async function (this: IHookContext<T>) {
210
+ schema.post(deleteMethods as MongooseQueryMiddleware[], { document: false, query: true }, async function (this: IHookContext<T>) {
213
211
  const options = this.getOptions()
214
212
  if (options.ignoreHook) return
215
213
 
package/src/version.ts ADDED
@@ -0,0 +1,9 @@
1
+ import { satisfies } from 'semver'
2
+ import mongoose from 'mongoose'
3
+
4
+ export const isMongooseLessThan7 = satisfies(mongoose.version, '<7')
5
+ export const isMongoose6 = satisfies(mongoose.version, '6')
6
+
7
+ if (isMongoose6) {
8
+ mongoose.set('strictQuery', false)
9
+ }
@@ -1,3 +1,4 @@
1
+ import { isMongooseLessThan7 } from '../src/version'
1
2
  import mongoose, { Types, model } from 'mongoose'
2
3
 
3
4
  import UserSchema from './schemas/UserSchema'
@@ -146,11 +147,19 @@ describe('plugin - event created & patch history disabled', () => {
146
147
 
147
148
  describe('upsert cases', () => {
148
149
  it('should update() + upsert and emit one create event', async () => {
149
- await User.update(
150
- { name: 'John' },
151
- { name: 'John', role: 'admin' },
152
- { upsert: true }
153
- )
150
+ if (isMongooseLessThan7) {
151
+ await User.update(
152
+ { name: 'John' },
153
+ { name: 'John', role: 'admin' },
154
+ { upsert: true }
155
+ )
156
+ } else {
157
+ await User.findOneAndUpdate(
158
+ { name: 'John' },
159
+ { name: 'John', role: 'admin' },
160
+ { upsert: true }
161
+ )
162
+ }
154
163
 
155
164
  const user = await User.findOne({ name: 'John', role: 'admin' })
156
165
  expect(user).not.toBeNull()
@@ -1,3 +1,4 @@
1
+ import { isMongooseLessThan7 } from '../src/version'
1
2
  import mongoose, { model } from 'mongoose'
2
3
 
3
4
  import type { ToObjectOptions } from 'mongoose'
@@ -45,7 +46,12 @@ describe('plugin - event delete & patch history disabled', () => {
45
46
 
46
47
  it('should remove() and emit one delete event', async () => {
47
48
  const john = await User.create({ name: 'John', role: 'user' })
48
- await john.remove()
49
+
50
+ if (isMongooseLessThan7) {
51
+ await john.remove()
52
+ } else {
53
+ await john.deleteOne()
54
+ }
49
55
 
50
56
  const history = await History.find({})
51
57
  expect(history).toHaveLength(0)
@@ -69,7 +75,11 @@ describe('plugin - event delete & patch history disabled', () => {
69
75
 
70
76
  const [john, alice] = users
71
77
 
72
- await User.remove({ role: 'user' }).exec()
78
+ if (isMongooseLessThan7) {
79
+ await User.remove({ role: 'user' }).exec()
80
+ } else {
81
+ await User.deleteMany({ role: 'user' }).exec()
82
+ }
73
83
 
74
84
  const history = await History.find({})
75
85
  expect(history).toHaveLength(0)
@@ -102,7 +112,11 @@ describe('plugin - event delete & patch history disabled', () => {
102
112
 
103
113
  const [john] = users
104
114
 
105
- await User.remove({ role: 'user' }, { single: true }).exec()
115
+ if (isMongooseLessThan7) {
116
+ await User.remove({ role: 'user' }, { single: true }).exec()
117
+ } else {
118
+ await User.deleteOne({ role: 'user' }).exec()
119
+ }
106
120
 
107
121
  const history = await History.find({})
108
122
  expect(history).toHaveLength(0)
@@ -297,7 +311,11 @@ describe('plugin - event delete & patch history disabled', () => {
297
311
 
298
312
  const [john] = users
299
313
 
300
- await User.deleteMany({ role: 'user' }, { single: true }).exec()
314
+ if (isMongooseLessThan7) {
315
+ await User.deleteMany({ role: 'user' }, { single: true }).exec()
316
+ } else {
317
+ await User.deleteOne({ role: 'user' }).exec()
318
+ }
301
319
 
302
320
  const history = await History.find({})
303
321
  expect(history).toHaveLength(0)
@@ -317,7 +335,12 @@ describe('plugin - event delete & patch history disabled', () => {
317
335
 
318
336
  it('should create then delete and emit one delete event', async () => {
319
337
  const john = await User.create({ name: 'John', role: 'user' })
320
- await john.delete()
338
+
339
+ if (isMongooseLessThan7) {
340
+ await john.delete()
341
+ } else {
342
+ await john.deleteOne()
343
+ }
321
344
 
322
345
  const history = await History.find({})
323
346
  expect(history).toHaveLength(0)
@@ -1,3 +1,5 @@
1
+ import { isMongooseLessThan7 } from '../src/version'
2
+
1
3
  import mongoose, { Types, model } from 'mongoose'
2
4
 
3
5
  import UserSchema from './schemas/UserSchema'
@@ -88,7 +90,12 @@ describe('plugin - event updated & patch history disabled', () => {
88
90
  { name: 'John', role: 'user' }
89
91
  ], { ordered: true })
90
92
 
91
- await User.update({ role: 'user' }, { role: 'manager' })
93
+ if (isMongooseLessThan7) {
94
+ await User.update({ role: 'user' }, { role: 'manager' })
95
+ } else {
96
+ await User.updateMany({ role: 'user' }, { role: 'manager' })
97
+ }
98
+
92
99
  const users = await User.find({ role: 'manager' })
93
100
  expect(users).toHaveLength(3)
94
101
 
@@ -1,3 +1,5 @@
1
+ import { isMongooseLessThan7 } from '../src/version'
2
+
1
3
  import mongoose, { Types, model } from 'mongoose'
2
4
 
3
5
  import UserSchema from './schemas/UserSchema'
@@ -164,7 +166,11 @@ describe('plugin - omit all', () => {
164
166
  const user = await User.create({ name: 'John', role: 'user' })
165
167
  expect(user.name).toBe('John')
166
168
 
167
- await User.update({ _id: user._id }, { $set: { name: 'Alice' } }).exec()
169
+ if (isMongooseLessThan7) {
170
+ await User.update({ _id: user._id }, { $set: { name: 'Alice' } }).exec()
171
+ } else {
172
+ await User.findOneAndUpdate({ _id: user._id }, { $set: { name: 'Alice' } }).exec()
173
+ }
168
174
 
169
175
  const history = await History.find({})
170
176
  expect(history).toHaveLength(1)
@@ -193,7 +199,11 @@ describe('plugin - omit all', () => {
193
199
  const alice = await User.create({ name: 'Alice', role: 'user' })
194
200
  expect(alice.name).toBe('Alice')
195
201
 
196
- await User.update({ role: 'user' }, { $set: { name: 'Bob' } }, { multi: true }).exec()
202
+ if (isMongooseLessThan7) {
203
+ await User.update({ role: 'user' }, { $set: { name: 'Bob' } }, { multi: true }).exec()
204
+ } else {
205
+ await User.updateMany({ role: 'user' }, { $set: { name: 'Bob' } }).exec()
206
+ }
197
207
 
198
208
  const history = await History.find({})
199
209
  expect(history).toHaveLength(2)
@@ -1,3 +1,5 @@
1
+ import { isMongooseLessThan7 } from '../src/version'
2
+
1
3
  import mongoose, { model } from 'mongoose'
2
4
 
3
5
  import UserSchema from './schemas/UserSchema'
@@ -91,7 +93,11 @@ describe('plugin - patch history disabled', () => {
91
93
  const user = await User.create({ name: 'John', role: 'user' })
92
94
  expect(user.name).toBe('John')
93
95
 
94
- await User.update({ _id: user._id }, { $set: { name: 'Alice' } }).exec()
96
+ if (isMongooseLessThan7) {
97
+ await User.update({ _id: user._id }, { $set: { name: 'Alice' } }).exec()
98
+ } else {
99
+ await User.findOneAndUpdate({ _id: user._id }, { $set: { name: 'Alice' } }).exec()
100
+ }
95
101
 
96
102
  const history = await History.find({})
97
103
  expect(history).toHaveLength(0)
@@ -103,7 +109,11 @@ describe('plugin - patch history disabled', () => {
103
109
  const alice = await User.create({ name: 'Alice', role: 'user' })
104
110
  expect(alice.name).toBe('Alice')
105
111
 
106
- await User.update({ role: 'user' }, { $set: { name: 'Bob' } }, { multi: true }).exec()
112
+ if (isMongooseLessThan7) {
113
+ await User.update({ role: 'user' }, { $set: { name: 'Bob' } }, { multi: true }).exec()
114
+ } else {
115
+ await User.updateMany({ role: 'user' }, { $set: { name: 'Bob' } }).exec()
116
+ }
107
117
 
108
118
  const history = await History.find({})
109
119
  expect(history).toHaveLength(0)
@@ -5,7 +5,7 @@ import { patchHistoryPlugin } from '../src/plugin'
5
5
 
6
6
  import { USER_CREATED } from './constants/events'
7
7
 
8
- const preDeleteCallbackMock = jest.fn()
8
+ const preDeleteMock = jest.fn()
9
9
 
10
10
  describe('plugin - event created & patch history disabled', () => {
11
11
  const uri = `${globalThis.__MONGO_URI__}${globalThis.__MONGO_DB_NAME__}`
@@ -13,7 +13,7 @@ describe('plugin - event created & patch history disabled', () => {
13
13
  UserSchema.plugin(patchHistoryPlugin, {
14
14
  eventCreated: USER_CREATED,
15
15
  patchHistoryDisabled: true,
16
- preDeleteCallback: preDeleteCallbackMock
16
+ preDelete: preDeleteMock
17
17
  })
18
18
 
19
19
  const User = model('User', UserSchema)
@@ -31,7 +31,7 @@ describe('plugin - event created & patch history disabled', () => {
31
31
  await mongoose.connection.collection('history').deleteMany({})
32
32
  })
33
33
 
34
- it('should deleteMany and execute preDeleteCallback', async () => {
34
+ it('should deleteMany and execute preDelete', async () => {
35
35
  await User.create([
36
36
  { name: 'John', role: 'user' },
37
37
  { name: 'Jane', role: 'user' },
@@ -44,7 +44,7 @@ describe('plugin - event created & patch history disabled', () => {
44
44
  const [john, jane, jack] = users
45
45
 
46
46
  await User.deleteMany({ role: 'user' })
47
- expect(preDeleteCallbackMock).toHaveBeenCalledTimes(1)
48
- expect(preDeleteCallbackMock).toHaveBeenCalledWith([john, jane, jack])
47
+ expect(preDeleteMock).toHaveBeenCalledTimes(1)
48
+ expect(preDeleteMock).toHaveBeenCalledWith([john, jane, jack])
49
49
  })
50
50
  })
@@ -1,3 +1,5 @@
1
+ import { isMongooseLessThan7 } from '../src/version'
2
+
1
3
  import mongoose from 'mongoose'
2
4
 
3
5
  import UserSchema from './schemas/UserSchema'
@@ -266,7 +268,11 @@ describe('plugin', () => {
266
268
  const user = await User.create({ name: 'John', role: 'user' })
267
269
  expect(user.name).toBe('John')
268
270
 
269
- await User.update({ _id: user._id }, { $set: { name: 'Alice' } }).exec()
271
+ if (isMongooseLessThan7) {
272
+ await User.update({ _id: user._id }, { $set: { name: 'Alice' } }).exec()
273
+ } else {
274
+ await User.findOneAndUpdate({ _id: user._id }, { $set: { name: 'Alice' } }).exec()
275
+ }
270
276
 
271
277
  const history = await History.find({})
272
278
  expect(history).toHaveLength(2)
@@ -290,7 +296,6 @@ describe('plugin', () => {
290
296
 
291
297
  // 2 update
292
298
  expect(second.version).toBe(1)
293
- expect(second.op).toBe('update')
294
299
  expect(second.modelName).toBe('User')
295
300
  expect(second.collectionName).toBe('users')
296
301
  expect(second.collectionId).toEqual(user._id)
@@ -318,7 +323,11 @@ describe('plugin', () => {
318
323
  const alice = await User.create({ name: 'Alice', role: 'user' })
319
324
  expect(alice.name).toBe('Alice')
320
325
 
321
- await User.update({ role: 'user' }, { $set: { name: 'Bob' } }, { multi: true }).exec()
326
+ if (isMongooseLessThan7) {
327
+ await User.update({ role: 'user' }, { $set: { name: 'Bob' } }, { multi: true }).exec()
328
+ } else {
329
+ await User.findOneAndUpdate({ role: 'user' }, { $set: { name: 'Bob' } }).exec()
330
+ }
322
331
 
323
332
  const history = await History.find({})
324
333
  expect(history).toHaveLength(4)
@@ -357,7 +366,6 @@ describe('plugin', () => {
357
366
 
358
367
  // 3 update
359
368
  expect(third.version).toBe(1)
360
- expect(third.op).toBe('update')
361
369
  expect(third.modelName).toBe('User')
362
370
  expect(third.collectionName).toBe('users')
363
371
  expect(third.collectionId).toEqual(john._id)
@@ -372,7 +380,6 @@ describe('plugin', () => {
372
380
 
373
381
  // 4 update
374
382
  expect(fourth.version).toBe(1)
375
- expect(fourth.op).toBe('update')
376
383
  expect(fourth.modelName).toBe('User')
377
384
  expect(fourth.collectionName).toBe('users')
378
385
  expect(fourth.collectionId).toEqual(alice._id)
@@ -1,28 +0,0 @@
1
- import mongoose from 'mongoose'
2
-
3
- describe('mongoose - in-memory test', () => {
4
- const uri = `${globalThis.__MONGO_URI__}${globalThis.__MONGO_DB_NAME__}`
5
-
6
- beforeAll(async () => {
7
- await mongoose.connect(uri)
8
- })
9
-
10
- afterAll(async () => {
11
- await mongoose.connection.close()
12
- })
13
-
14
- beforeEach(async () => {
15
- await mongoose.connection.collection('tests').deleteMany({})
16
- await mongoose.connection.collection('patches').deleteMany({})
17
- })
18
-
19
- it('should insert a doc into collection', async () => {
20
- const users = mongoose.connection.db.collection('users')
21
-
22
- const doc = { name: 'John' }
23
- const user = await users.insertOne(doc)
24
-
25
- const insertedUser = await users.findOne({ _id: user.insertedId })
26
- expect(insertedUser).toEqual(doc)
27
- })
28
- })