ts-patch-mongoose 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/cjs/interfaces/IEvent.js +3 -0
- package/dist/cjs/interfaces/IEvent.js.map +1 -0
- package/dist/cjs/patch.js +35 -27
- package/dist/cjs/patch.js.map +1 -1
- package/dist/cjs/plugin.js +13 -6
- package/dist/cjs/plugin.js.map +1 -1
- package/dist/cjs/types/interfaces/IContext.d.ts +2 -0
- package/dist/cjs/types/interfaces/IContext.d.ts.map +1 -1
- package/dist/cjs/types/interfaces/IEvent.d.ts +9 -0
- package/dist/cjs/types/interfaces/IEvent.d.ts.map +1 -0
- package/dist/cjs/types/patch.d.ts +2 -0
- package/dist/cjs/types/patch.d.ts.map +1 -1
- package/dist/cjs/types/plugin.d.ts.map +1 -1
- package/dist/esm/interfaces/IEvent.js +2 -0
- package/dist/esm/interfaces/IEvent.js.map +1 -0
- package/dist/esm/patch.js +33 -26
- package/dist/esm/patch.js.map +1 -1
- package/dist/esm/plugin.js.map +1 -1
- package/dist/esm/plugin.mjs +13 -6
- package/dist/esm/types/interfaces/IContext.d.ts +2 -0
- package/dist/esm/types/interfaces/IContext.d.ts.map +1 -1
- package/dist/esm/types/interfaces/IEvent.d.ts +9 -0
- package/dist/esm/types/interfaces/IEvent.d.ts.map +1 -0
- package/dist/esm/types/patch.d.ts +2 -0
- package/dist/esm/types/patch.d.ts.map +1 -1
- package/dist/esm/types/plugin.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/interfaces/IContext.ts +2 -0
- package/src/interfaces/IEvent.ts +10 -0
- package/src/patch.ts +38 -29
- package/src/plugin.ts +15 -7
- package/tests/em.test.ts +34 -0
- package/tests/patch.test.ts +1 -1
package/README.md
CHANGED
|
@@ -122,7 +122,7 @@ BookSchema.plugin(patchHistoryPlugin, {
|
|
|
122
122
|
// You can omit some properties in case you don't want to save them to patch history
|
|
123
123
|
omit: ['__v', 'createdAt', 'updatedAt'],
|
|
124
124
|
|
|
125
|
-
// Addition options for
|
|
125
|
+
// Addition options for patchHistoryPlugin plugin
|
|
126
126
|
// Everything bellow is optional and just shows you what you can do:
|
|
127
127
|
|
|
128
128
|
// Code bellow is abstract example, you can use any other way to get user, reason, metadata
|
|
@@ -149,7 +149,7 @@ BookSchema.plugin(patchHistoryPlugin, {
|
|
|
149
149
|
|
|
150
150
|
// Do something before deleting documents
|
|
151
151
|
// This method will be executed before deleting document or documents and always returns a nonempty array of documents
|
|
152
|
-
preDelete: async (docs
|
|
152
|
+
preDelete: async (docs) => {
|
|
153
153
|
const bookIds = docs.map((doc) => doc._id)
|
|
154
154
|
await SomeOtherModel.deleteMany({ bookId: { $in: bookIds } })
|
|
155
155
|
},
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IEvent.js","sourceRoot":"","sources":["../../../src/interfaces/IEvent.ts"],"names":[],"mappings":""}
|
package/dist/cjs/patch.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deletePatch = exports.updatePatch = exports.createPatch = exports.bulkPatch = exports.getData = exports.getValue = exports.getMetadata = exports.getReason = exports.getUser = exports.getObjects = void 0;
|
|
3
|
+
exports.deletePatch = exports.updatePatch = exports.createPatch = exports.bulkPatch = exports.emitEvent = exports.getData = exports.getValue = exports.getMetadata = exports.getReason = exports.getUser = exports.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"));
|
|
7
7
|
const fast_json_patch_1 = tslib_1.__importDefault(require("fast-json-patch"));
|
|
8
8
|
const History_1 = tslib_1.__importDefault(require("./models/History"));
|
|
9
9
|
const em_1 = tslib_1.__importDefault(require("./em"));
|
|
10
|
+
function isPatchHistoryEnabled(opts, context) {
|
|
11
|
+
return !opts.patchHistoryDisabled && !context.ignorePatchHistory;
|
|
12
|
+
}
|
|
10
13
|
function getObjects(opts, current, original) {
|
|
11
14
|
let currentObject = JSON.parse(JSON.stringify(current));
|
|
12
15
|
let originalObject = JSON.parse(JSON.stringify(original));
|
|
@@ -54,20 +57,26 @@ async function getData(opts) {
|
|
|
54
57
|
});
|
|
55
58
|
}
|
|
56
59
|
exports.getData = getData;
|
|
60
|
+
function emitEvent(context, event, data) {
|
|
61
|
+
if (event && !context.ignoreEvent) {
|
|
62
|
+
em_1.default.emit(event, data);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.emitEvent = emitEvent;
|
|
57
66
|
async function bulkPatch(opts, context, eventKey, docsKey) {
|
|
67
|
+
const history = isPatchHistoryEnabled(opts, context);
|
|
58
68
|
const event = opts[eventKey];
|
|
59
69
|
const docs = context[docsKey];
|
|
60
70
|
const key = eventKey === 'eventCreated' ? 'doc' : 'oldDoc';
|
|
61
|
-
if (lodash_1.default.isEmpty(docs) || (!event &&
|
|
71
|
+
if (lodash_1.default.isEmpty(docs) || (!event && !history))
|
|
62
72
|
return;
|
|
63
73
|
const [user, reason, metadata] = await getData(opts);
|
|
64
74
|
const chunks = lodash_1.default.chunk(docs, 1000);
|
|
65
75
|
for await (const chunk of chunks) {
|
|
66
76
|
const bulk = [];
|
|
67
77
|
for (const doc of chunk) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (!opts.patchHistoryDisabled) {
|
|
78
|
+
emitEvent(context, event, { [key]: doc });
|
|
79
|
+
if (history) {
|
|
71
80
|
bulk.push({
|
|
72
81
|
insertOne: {
|
|
73
82
|
document: {
|
|
@@ -85,7 +94,7 @@ async function bulkPatch(opts, context, eventKey, docsKey) {
|
|
|
85
94
|
});
|
|
86
95
|
}
|
|
87
96
|
}
|
|
88
|
-
if (
|
|
97
|
+
if (history) {
|
|
89
98
|
await History_1.default.bulkWrite(bulk, { ordered: false });
|
|
90
99
|
}
|
|
91
100
|
}
|
|
@@ -96,34 +105,33 @@ async function createPatch(opts, context) {
|
|
|
96
105
|
}
|
|
97
106
|
exports.createPatch = createPatch;
|
|
98
107
|
async function updatePatch(opts, context, current, original) {
|
|
108
|
+
const history = isPatchHistoryEnabled(opts, context);
|
|
99
109
|
const { currentObject, originalObject } = getObjects(opts, current, original);
|
|
100
110
|
if (lodash_1.default.isEmpty(originalObject) || lodash_1.default.isEmpty(currentObject))
|
|
101
111
|
return;
|
|
102
112
|
const patch = fast_json_patch_1.default.compare(originalObject, currentObject, true);
|
|
103
113
|
if (lodash_1.default.isEmpty(patch))
|
|
104
114
|
return;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
115
|
+
emitEvent(context, opts.eventUpdated, { oldDoc: original, doc: current, patch });
|
|
116
|
+
if (history) {
|
|
117
|
+
let version = 0;
|
|
118
|
+
const lastHistory = await History_1.default.findOne({ collectionId: original._id }).sort('-version').exec();
|
|
119
|
+
if (lastHistory && lastHistory.version >= 0) {
|
|
120
|
+
version = lastHistory.version + 1;
|
|
121
|
+
}
|
|
122
|
+
const [user, reason, metadata] = await getData(opts);
|
|
123
|
+
await History_1.default.create({
|
|
124
|
+
op: context.op,
|
|
125
|
+
modelName: context.modelName,
|
|
126
|
+
collectionName: context.collectionName,
|
|
127
|
+
collectionId: original._id,
|
|
128
|
+
patch,
|
|
129
|
+
user,
|
|
130
|
+
reason,
|
|
131
|
+
metadata,
|
|
132
|
+
version
|
|
133
|
+
});
|
|
114
134
|
}
|
|
115
|
-
const [user, reason, metadata] = await getData(opts);
|
|
116
|
-
await History_1.default.create({
|
|
117
|
-
op: context.op,
|
|
118
|
-
modelName: context.modelName,
|
|
119
|
-
collectionName: context.collectionName,
|
|
120
|
-
collectionId: original._id,
|
|
121
|
-
patch,
|
|
122
|
-
user,
|
|
123
|
-
reason,
|
|
124
|
-
metadata,
|
|
125
|
-
version
|
|
126
|
-
});
|
|
127
135
|
}
|
|
128
136
|
exports.updatePatch = updatePatch;
|
|
129
137
|
async function deletePatch(opts, context) {
|
package/dist/cjs/patch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":";;;;AAAA,4DAAsB;AACtB,kEAA4B;AAC5B,8EAAuC;
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -30,6 +30,9 @@ const deleteMethods = [
|
|
|
30
30
|
'deleteOne',
|
|
31
31
|
'deleteMany'
|
|
32
32
|
];
|
|
33
|
+
function isHookIgnored(options) {
|
|
34
|
+
return options.ignoreHook === true || (options.ignoreEvent === true && options.ignorePatchHistory === true);
|
|
35
|
+
}
|
|
33
36
|
function splitUpdateAndCommands(updateQuery) {
|
|
34
37
|
let update = {};
|
|
35
38
|
const commands = [];
|
|
@@ -88,7 +91,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
88
91
|
});
|
|
89
92
|
schema.pre(updateMethods, async function () {
|
|
90
93
|
const options = this.getOptions();
|
|
91
|
-
if (options
|
|
94
|
+
if (isHookIgnored(options))
|
|
92
95
|
return;
|
|
93
96
|
const model = this.model;
|
|
94
97
|
const filter = this.getFilter();
|
|
@@ -97,7 +100,9 @@ const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
97
100
|
op: this.op,
|
|
98
101
|
modelName: opts.modelName ?? this.model.modelName,
|
|
99
102
|
collectionName: opts.collectionName ?? this.model.collection.collectionName,
|
|
100
|
-
isNew: options.upsert && count === 0
|
|
103
|
+
isNew: options.upsert && count === 0,
|
|
104
|
+
ignoreEvent: options.ignoreEvent,
|
|
105
|
+
ignorePatchHistory: options.ignorePatchHistory
|
|
101
106
|
};
|
|
102
107
|
const updateQuery = this.getUpdate();
|
|
103
108
|
const { update, commands } = splitUpdateAndCommands(updateQuery);
|
|
@@ -108,7 +113,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
108
113
|
});
|
|
109
114
|
schema.post(updateMethods, async function () {
|
|
110
115
|
const options = this.getOptions();
|
|
111
|
-
if (options
|
|
116
|
+
if (isHookIgnored(options))
|
|
112
117
|
return;
|
|
113
118
|
if (!this._context.isNew)
|
|
114
119
|
return;
|
|
@@ -143,14 +148,16 @@ const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
143
148
|
});
|
|
144
149
|
schema.pre(deleteMethods, { document: false, query: true }, async function () {
|
|
145
150
|
const options = this.getOptions();
|
|
146
|
-
if (options
|
|
151
|
+
if (isHookIgnored(options))
|
|
147
152
|
return;
|
|
148
153
|
const model = this.model;
|
|
149
154
|
const filter = this.getFilter();
|
|
150
155
|
this._context = {
|
|
151
156
|
op: this.op,
|
|
152
157
|
modelName: opts.modelName ?? this.model.modelName,
|
|
153
|
-
collectionName: opts.collectionName ?? this.model.collection.collectionName
|
|
158
|
+
collectionName: opts.collectionName ?? this.model.collection.collectionName,
|
|
159
|
+
ignoreEvent: options.ignoreEvent,
|
|
160
|
+
ignorePatchHistory: options.ignorePatchHistory
|
|
154
161
|
};
|
|
155
162
|
if (['remove', 'deleteMany'].includes(this._context.op) && !options.single) {
|
|
156
163
|
const docs = await model.find(filter).lean().exec();
|
|
@@ -170,7 +177,7 @@ const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
170
177
|
});
|
|
171
178
|
schema.post(deleteMethods, { document: false, query: true }, async function () {
|
|
172
179
|
const options = this.getOptions();
|
|
173
|
-
if (options
|
|
180
|
+
if (isHookIgnored(options))
|
|
174
181
|
return;
|
|
175
182
|
await (0, patch_1.deletePatch)(opts, this._context);
|
|
176
183
|
});
|
package/dist/cjs/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IContext.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,QAAQ,CAAC,CAAC;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"IContext.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,QAAQ,CAAC,CAAC;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,eAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Operation } from 'fast-json-patch';
|
|
2
|
+
import type { HydratedDocument } from 'mongoose';
|
|
3
|
+
interface IEvent<T> {
|
|
4
|
+
oldDoc?: HydratedDocument<T>;
|
|
5
|
+
doc?: HydratedDocument<T>;
|
|
6
|
+
patch?: Operation[];
|
|
7
|
+
}
|
|
8
|
+
export default IEvent;
|
|
9
|
+
//# sourceMappingURL=IEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IEvent.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,MAAM,CAAC,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAC5B,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { HydratedDocument } from 'mongoose';
|
|
2
|
+
import type IEvent from './interfaces/IEvent';
|
|
2
3
|
import type IContext from './interfaces/IContext';
|
|
3
4
|
import type IPluginOptions from './interfaces/IPluginOptions';
|
|
4
5
|
import type { User, Reason, Metadata } from './interfaces/IPluginOptions';
|
|
@@ -11,6 +12,7 @@ export declare function getReason<T>(opts: IPluginOptions<T>): Promise<Reason |
|
|
|
11
12
|
export declare function getMetadata<T>(opts: IPluginOptions<T>): Promise<Metadata | undefined>;
|
|
12
13
|
export declare function getValue<T>(item: PromiseSettledResult<T>): T | undefined;
|
|
13
14
|
export declare function getData<T>(opts: IPluginOptions<T>): Promise<[User | undefined, Reason | undefined, Metadata | undefined]>;
|
|
15
|
+
export declare function emitEvent<T>(context: IContext<T>, event: string | undefined, data: IEvent<T>): void;
|
|
14
16
|
export declare function bulkPatch<T>(opts: IPluginOptions<T>, context: IContext<T>, eventKey: 'eventCreated' | 'eventDeleted', docsKey: 'createdDocs' | 'deletedDocs'): Promise<void>;
|
|
15
17
|
export declare function createPatch<T>(opts: IPluginOptions<T>, context: IContext<T>): Promise<void>;
|
|
16
18
|
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,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/patch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,UAAU,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AASzE,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,wBAAgB,SAAS,CAAC,CAAC,EAAG,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAIpG;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,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAAyC,MAAM,EAA+D,MAAM,UAAU,CAAA;AAEnK,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AA0E7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IA4IlG,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IEvent.js","sourceRoot":"","sources":["../../../src/interfaces/IEvent.ts"],"names":[],"mappings":""}
|
package/dist/esm/patch.js
CHANGED
|
@@ -3,6 +3,9 @@ import omit from 'omit-deep';
|
|
|
3
3
|
import jsonpatch from 'fast-json-patch';
|
|
4
4
|
import History from './models/History';
|
|
5
5
|
import em from './em';
|
|
6
|
+
function isPatchHistoryEnabled(opts, context) {
|
|
7
|
+
return !opts.patchHistoryDisabled && !context.ignorePatchHistory;
|
|
8
|
+
}
|
|
6
9
|
export function getObjects(opts, current, original) {
|
|
7
10
|
let currentObject = JSON.parse(JSON.stringify(current));
|
|
8
11
|
let originalObject = JSON.parse(JSON.stringify(original));
|
|
@@ -44,20 +47,25 @@ export async function getData(opts) {
|
|
|
44
47
|
];
|
|
45
48
|
});
|
|
46
49
|
}
|
|
50
|
+
export function emitEvent(context, event, data) {
|
|
51
|
+
if (event && !context.ignoreEvent) {
|
|
52
|
+
em.emit(event, data);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
47
55
|
export async function bulkPatch(opts, context, eventKey, docsKey) {
|
|
56
|
+
const history = isPatchHistoryEnabled(opts, context);
|
|
48
57
|
const event = opts[eventKey];
|
|
49
58
|
const docs = context[docsKey];
|
|
50
59
|
const key = eventKey === 'eventCreated' ? 'doc' : 'oldDoc';
|
|
51
|
-
if (_.isEmpty(docs) || (!event &&
|
|
60
|
+
if (_.isEmpty(docs) || (!event && !history))
|
|
52
61
|
return;
|
|
53
62
|
const [user, reason, metadata] = await getData(opts);
|
|
54
63
|
const chunks = _.chunk(docs, 1000);
|
|
55
64
|
for await (const chunk of chunks) {
|
|
56
65
|
const bulk = [];
|
|
57
66
|
for (const doc of chunk) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (!opts.patchHistoryDisabled) {
|
|
67
|
+
emitEvent(context, event, { [key]: doc });
|
|
68
|
+
if (history) {
|
|
61
69
|
bulk.push({
|
|
62
70
|
insertOne: {
|
|
63
71
|
document: {
|
|
@@ -75,7 +83,7 @@ export async function bulkPatch(opts, context, eventKey, docsKey) {
|
|
|
75
83
|
});
|
|
76
84
|
}
|
|
77
85
|
}
|
|
78
|
-
if (
|
|
86
|
+
if (history) {
|
|
79
87
|
await History.bulkWrite(bulk, { ordered: false });
|
|
80
88
|
}
|
|
81
89
|
}
|
|
@@ -84,34 +92,33 @@ export async function createPatch(opts, context) {
|
|
|
84
92
|
await bulkPatch(opts, context, 'eventCreated', 'createdDocs');
|
|
85
93
|
}
|
|
86
94
|
export async function updatePatch(opts, context, current, original) {
|
|
95
|
+
const history = isPatchHistoryEnabled(opts, context);
|
|
87
96
|
const { currentObject, originalObject } = getObjects(opts, current, original);
|
|
88
97
|
if (_.isEmpty(originalObject) || _.isEmpty(currentObject))
|
|
89
98
|
return;
|
|
90
99
|
const patch = jsonpatch.compare(originalObject, currentObject, true);
|
|
91
100
|
if (_.isEmpty(patch))
|
|
92
101
|
return;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
+
emitEvent(context, opts.eventUpdated, { oldDoc: original, doc: current, patch });
|
|
103
|
+
if (history) {
|
|
104
|
+
let version = 0;
|
|
105
|
+
const lastHistory = await History.findOne({ collectionId: original._id }).sort('-version').exec();
|
|
106
|
+
if (lastHistory && lastHistory.version >= 0) {
|
|
107
|
+
version = lastHistory.version + 1;
|
|
108
|
+
}
|
|
109
|
+
const [user, reason, metadata] = await getData(opts);
|
|
110
|
+
await History.create({
|
|
111
|
+
op: context.op,
|
|
112
|
+
modelName: context.modelName,
|
|
113
|
+
collectionName: context.collectionName,
|
|
114
|
+
collectionId: original._id,
|
|
115
|
+
patch,
|
|
116
|
+
user,
|
|
117
|
+
reason,
|
|
118
|
+
metadata,
|
|
119
|
+
version
|
|
120
|
+
});
|
|
102
121
|
}
|
|
103
|
-
const [user, reason, metadata] = await getData(opts);
|
|
104
|
-
await History.create({
|
|
105
|
-
op: context.op,
|
|
106
|
-
modelName: context.modelName,
|
|
107
|
-
collectionName: context.collectionName,
|
|
108
|
-
collectionId: original._id,
|
|
109
|
-
patch,
|
|
110
|
-
user,
|
|
111
|
-
reason,
|
|
112
|
-
metadata,
|
|
113
|
-
version
|
|
114
|
-
});
|
|
115
122
|
}
|
|
116
123
|
export async function deletePatch(opts, context) {
|
|
117
124
|
await bulkPatch(opts, context, 'eventDeleted', 'deletedDocs');
|
package/dist/esm/patch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,SAAS,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/plugin.mjs
CHANGED
|
@@ -26,6 +26,9 @@ const deleteMethods = [
|
|
|
26
26
|
'deleteOne',
|
|
27
27
|
'deleteMany'
|
|
28
28
|
];
|
|
29
|
+
function isHookIgnored(options) {
|
|
30
|
+
return options.ignoreHook === true || (options.ignoreEvent === true && options.ignorePatchHistory === true);
|
|
31
|
+
}
|
|
29
32
|
function splitUpdateAndCommands(updateQuery) {
|
|
30
33
|
let update = {};
|
|
31
34
|
const commands = [];
|
|
@@ -84,7 +87,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
84
87
|
});
|
|
85
88
|
schema.pre(updateMethods, async function () {
|
|
86
89
|
const options = this.getOptions();
|
|
87
|
-
if (options
|
|
90
|
+
if (isHookIgnored(options))
|
|
88
91
|
return;
|
|
89
92
|
const model = this.model;
|
|
90
93
|
const filter = this.getFilter();
|
|
@@ -93,7 +96,9 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
93
96
|
op: this.op,
|
|
94
97
|
modelName: opts.modelName ?? this.model.modelName,
|
|
95
98
|
collectionName: opts.collectionName ?? this.model.collection.collectionName,
|
|
96
|
-
isNew: options.upsert && count === 0
|
|
99
|
+
isNew: options.upsert && count === 0,
|
|
100
|
+
ignoreEvent: options.ignoreEvent,
|
|
101
|
+
ignorePatchHistory: options.ignorePatchHistory
|
|
97
102
|
};
|
|
98
103
|
const updateQuery = this.getUpdate();
|
|
99
104
|
const { update, commands } = splitUpdateAndCommands(updateQuery);
|
|
@@ -104,7 +109,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
104
109
|
});
|
|
105
110
|
schema.post(updateMethods, async function () {
|
|
106
111
|
const options = this.getOptions();
|
|
107
|
-
if (options
|
|
112
|
+
if (isHookIgnored(options))
|
|
108
113
|
return;
|
|
109
114
|
if (!this._context.isNew)
|
|
110
115
|
return;
|
|
@@ -139,14 +144,16 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
139
144
|
});
|
|
140
145
|
schema.pre(deleteMethods, { document: false, query: true }, async function () {
|
|
141
146
|
const options = this.getOptions();
|
|
142
|
-
if (options
|
|
147
|
+
if (isHookIgnored(options))
|
|
143
148
|
return;
|
|
144
149
|
const model = this.model;
|
|
145
150
|
const filter = this.getFilter();
|
|
146
151
|
this._context = {
|
|
147
152
|
op: this.op,
|
|
148
153
|
modelName: opts.modelName ?? this.model.modelName,
|
|
149
|
-
collectionName: opts.collectionName ?? this.model.collection.collectionName
|
|
154
|
+
collectionName: opts.collectionName ?? this.model.collection.collectionName,
|
|
155
|
+
ignoreEvent: options.ignoreEvent,
|
|
156
|
+
ignorePatchHistory: options.ignorePatchHistory
|
|
150
157
|
};
|
|
151
158
|
if (['remove', 'deleteMany'].includes(this._context.op) && !options.single) {
|
|
152
159
|
const docs = await model.find(filter).lean().exec();
|
|
@@ -166,7 +173,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
|
|
|
166
173
|
});
|
|
167
174
|
schema.post(deleteMethods, { document: false, query: true }, async function () {
|
|
168
175
|
const options = this.getOptions();
|
|
169
|
-
if (options
|
|
176
|
+
if (isHookIgnored(options))
|
|
170
177
|
return;
|
|
171
178
|
await deletePatch(opts, this._context);
|
|
172
179
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IContext.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,QAAQ,CAAC,CAAC;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"IContext.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,QAAQ,CAAC,CAAC;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,eAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Operation } from 'fast-json-patch';
|
|
2
|
+
import type { HydratedDocument } from 'mongoose';
|
|
3
|
+
interface IEvent<T> {
|
|
4
|
+
oldDoc?: HydratedDocument<T>;
|
|
5
|
+
doc?: HydratedDocument<T>;
|
|
6
|
+
patch?: Operation[];
|
|
7
|
+
}
|
|
8
|
+
export default IEvent;
|
|
9
|
+
//# sourceMappingURL=IEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IEvent.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,MAAM,CAAC,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAC5B,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { HydratedDocument } from 'mongoose';
|
|
2
|
+
import type IEvent from './interfaces/IEvent';
|
|
2
3
|
import type IContext from './interfaces/IContext';
|
|
3
4
|
import type IPluginOptions from './interfaces/IPluginOptions';
|
|
4
5
|
import type { User, Reason, Metadata } from './interfaces/IPluginOptions';
|
|
@@ -11,6 +12,7 @@ export declare function getReason<T>(opts: IPluginOptions<T>): Promise<Reason |
|
|
|
11
12
|
export declare function getMetadata<T>(opts: IPluginOptions<T>): Promise<Metadata | undefined>;
|
|
12
13
|
export declare function getValue<T>(item: PromiseSettledResult<T>): T | undefined;
|
|
13
14
|
export declare function getData<T>(opts: IPluginOptions<T>): Promise<[User | undefined, Reason | undefined, Metadata | undefined]>;
|
|
15
|
+
export declare function emitEvent<T>(context: IContext<T>, event: string | undefined, data: IEvent<T>): void;
|
|
14
16
|
export declare function bulkPatch<T>(opts: IPluginOptions<T>, context: IContext<T>, eventKey: 'eventCreated' | 'eventDeleted', docsKey: 'createdDocs' | 'deletedDocs'): Promise<void>;
|
|
15
17
|
export declare function createPatch<T>(opts: IPluginOptions<T>, context: IContext<T>): Promise<void>;
|
|
16
18
|
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,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/patch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,UAAU,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AASzE,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,wBAAgB,SAAS,CAAC,CAAC,EAAG,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAIpG;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,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAAyC,MAAM,EAA+D,MAAM,UAAU,CAAA;AAEnK,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AA0E7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IA4IlG,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-patch-mongoose",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Patch history & events for mongoose models",
|
|
5
5
|
"author": "Alex Eagle",
|
|
6
6
|
"license": "MIT",
|
|
@@ -84,15 +84,15 @@
|
|
|
84
84
|
"devDependencies": {
|
|
85
85
|
"@shelf/jest-mongodb": "4.1.7",
|
|
86
86
|
"@swc/cli": "0.1.62",
|
|
87
|
-
"@swc/core": "1.3.
|
|
88
|
-
"@swc/helpers": "0.5.
|
|
87
|
+
"@swc/core": "1.3.55",
|
|
88
|
+
"@swc/helpers": "0.5.1",
|
|
89
89
|
"@swc/jest": "0.2.26",
|
|
90
90
|
"@swc/register": "0.1.10",
|
|
91
91
|
"@types/jest": "29.5.1",
|
|
92
92
|
"@types/lodash": "4.14.194",
|
|
93
|
-
"@types/node": "18.16.
|
|
94
|
-
"@typescript-eslint/eslint-plugin": "5.59.
|
|
95
|
-
"@typescript-eslint/parser": "5.59.
|
|
93
|
+
"@types/node": "18.16.1",
|
|
94
|
+
"@typescript-eslint/eslint-plugin": "5.59.1",
|
|
95
|
+
"@typescript-eslint/parser": "5.59.1",
|
|
96
96
|
"eslint": "8.39.0",
|
|
97
97
|
"eslint-config-standard": "17.0.0",
|
|
98
98
|
"eslint-plugin-import": "2.27.5",
|
package/src/patch.ts
CHANGED
|
@@ -4,6 +4,7 @@ import jsonpatch from 'fast-json-patch'
|
|
|
4
4
|
|
|
5
5
|
import type { HydratedDocument, Types } from 'mongoose'
|
|
6
6
|
|
|
7
|
+
import type IEvent from './interfaces/IEvent'
|
|
7
8
|
import type IContext from './interfaces/IContext'
|
|
8
9
|
import type IPluginOptions from './interfaces/IPluginOptions'
|
|
9
10
|
import type { User, Reason, Metadata } from './interfaces/IPluginOptions'
|
|
@@ -11,6 +12,10 @@ import type { User, Reason, Metadata } from './interfaces/IPluginOptions'
|
|
|
11
12
|
import History from './models/History'
|
|
12
13
|
import em from './em'
|
|
13
14
|
|
|
15
|
+
function isPatchHistoryEnabled<T> (opts: IPluginOptions<T>, context: IContext<T>): boolean {
|
|
16
|
+
return !opts.patchHistoryDisabled && !context.ignorePatchHistory
|
|
17
|
+
}
|
|
18
|
+
|
|
14
19
|
export function getObjects<T> (opts: IPluginOptions<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): { currentObject: Partial<T>, originalObject: Partial<T> } {
|
|
15
20
|
let currentObject = JSON.parse(JSON.stringify(current)) as Partial<T>
|
|
16
21
|
let originalObject = JSON.parse(JSON.stringify(original)) as Partial<T>
|
|
@@ -60,24 +65,30 @@ export async function getData<T> (opts: IPluginOptions<T>): Promise<[User | unde
|
|
|
60
65
|
})
|
|
61
66
|
}
|
|
62
67
|
|
|
68
|
+
export function emitEvent<T> (context: IContext<T>, event: string | undefined, data: IEvent<T>): void {
|
|
69
|
+
if (event && !context.ignoreEvent) {
|
|
70
|
+
em.emit(event, data)
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
63
74
|
export async function bulkPatch<T> (opts: IPluginOptions<T>, context: IContext<T>, eventKey: 'eventCreated' | 'eventDeleted', docsKey: 'createdDocs' | 'deletedDocs'): Promise<void> {
|
|
75
|
+
const history = isPatchHistoryEnabled(opts, context)
|
|
64
76
|
const event = opts[eventKey]
|
|
65
77
|
const docs = context[docsKey]
|
|
66
78
|
const key = eventKey === 'eventCreated' ? 'doc' : 'oldDoc'
|
|
67
79
|
|
|
68
|
-
if (_.isEmpty(docs) || (!event &&
|
|
80
|
+
if (_.isEmpty(docs) || (!event && !history)) return
|
|
69
81
|
|
|
70
82
|
const [user, reason, metadata] = await getData(opts)
|
|
71
83
|
|
|
72
84
|
const chunks = _.chunk(docs, 1000)
|
|
73
|
-
|
|
74
85
|
for await (const chunk of chunks) {
|
|
75
86
|
const bulk = []
|
|
76
87
|
|
|
77
88
|
for (const doc of chunk) {
|
|
78
|
-
|
|
89
|
+
emitEvent(context, event, { [key]: doc })
|
|
79
90
|
|
|
80
|
-
if (
|
|
91
|
+
if (history) {
|
|
81
92
|
bulk.push({
|
|
82
93
|
insertOne: {
|
|
83
94
|
document: {
|
|
@@ -96,7 +107,7 @@ export async function bulkPatch<T> (opts: IPluginOptions<T>, context: IContext<T
|
|
|
96
107
|
}
|
|
97
108
|
}
|
|
98
109
|
|
|
99
|
-
if (
|
|
110
|
+
if (history) {
|
|
100
111
|
await History.bulkWrite(bulk, { ordered: false })
|
|
101
112
|
}
|
|
102
113
|
}
|
|
@@ -107,41 +118,39 @@ export async function createPatch<T> (opts: IPluginOptions<T>, context: IContext
|
|
|
107
118
|
}
|
|
108
119
|
|
|
109
120
|
export async function updatePatch<T> (opts: IPluginOptions<T>, context: IContext<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): Promise<void> {
|
|
110
|
-
const
|
|
121
|
+
const history = isPatchHistoryEnabled(opts, context)
|
|
111
122
|
|
|
123
|
+
const { currentObject, originalObject } = getObjects(opts, current, original)
|
|
112
124
|
if (_.isEmpty(originalObject) || _.isEmpty(currentObject)) return
|
|
113
125
|
|
|
114
126
|
const patch = jsonpatch.compare(originalObject, currentObject, true)
|
|
115
|
-
|
|
116
127
|
if (_.isEmpty(patch)) return
|
|
117
128
|
|
|
118
|
-
|
|
119
|
-
em.emit(opts.eventUpdated, { oldDoc: original, doc: current, patch })
|
|
120
|
-
}
|
|
129
|
+
emitEvent(context, opts.eventUpdated, { oldDoc: original, doc: current, patch })
|
|
121
130
|
|
|
122
|
-
if (
|
|
131
|
+
if (history) {
|
|
132
|
+
let version = 0
|
|
123
133
|
|
|
124
|
-
|
|
134
|
+
const lastHistory = await History.findOne({ collectionId: original._id as Types.ObjectId }).sort('-version').exec()
|
|
125
135
|
|
|
126
|
-
|
|
136
|
+
if (lastHistory && lastHistory.version >= 0) {
|
|
137
|
+
version = lastHistory.version + 1
|
|
138
|
+
}
|
|
127
139
|
|
|
128
|
-
|
|
129
|
-
|
|
140
|
+
const [user, reason, metadata] = await getData(opts)
|
|
141
|
+
|
|
142
|
+
await History.create({
|
|
143
|
+
op: context.op,
|
|
144
|
+
modelName: context.modelName,
|
|
145
|
+
collectionName: context.collectionName,
|
|
146
|
+
collectionId: original._id as Types.ObjectId,
|
|
147
|
+
patch,
|
|
148
|
+
user,
|
|
149
|
+
reason,
|
|
150
|
+
metadata,
|
|
151
|
+
version
|
|
152
|
+
})
|
|
130
153
|
}
|
|
131
|
-
|
|
132
|
-
const [user, reason, metadata] = await getData(opts)
|
|
133
|
-
|
|
134
|
-
await History.create({
|
|
135
|
-
op: context.op,
|
|
136
|
-
modelName: context.modelName,
|
|
137
|
-
collectionName: context.collectionName,
|
|
138
|
-
collectionId: original._id as Types.ObjectId,
|
|
139
|
-
patch,
|
|
140
|
-
user,
|
|
141
|
-
reason,
|
|
142
|
-
metadata,
|
|
143
|
-
version
|
|
144
|
-
})
|
|
145
154
|
}
|
|
146
155
|
|
|
147
156
|
export async function deletePatch<T> (opts: IPluginOptions<T>, context: IContext<T>): Promise<void> {
|
package/src/plugin.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _ from 'lodash'
|
|
2
2
|
import { assign } from 'power-assign'
|
|
3
3
|
|
|
4
|
-
import type { HydratedDocument, Model, MongooseQueryMiddleware, Schema, ToObjectOptions, UpdateQuery, UpdateWithAggregationPipeline } from 'mongoose'
|
|
4
|
+
import type { HydratedDocument, Model, MongooseQueryMiddleware, QueryOptions, Schema, ToObjectOptions, UpdateQuery, UpdateWithAggregationPipeline } from 'mongoose'
|
|
5
5
|
|
|
6
6
|
import type IPluginOptions from './interfaces/IPluginOptions'
|
|
7
7
|
import type IContext from './interfaces/IContext'
|
|
@@ -38,6 +38,10 @@ const deleteMethods = [
|
|
|
38
38
|
'deleteMany'
|
|
39
39
|
]
|
|
40
40
|
|
|
41
|
+
function isHookIgnored<T> (options: QueryOptions<T>): boolean {
|
|
42
|
+
return options.ignoreHook === true || (options.ignoreEvent === true && options.ignorePatchHistory === true)
|
|
43
|
+
}
|
|
44
|
+
|
|
41
45
|
function splitUpdateAndCommands<T> (updateQuery: UpdateWithAggregationPipeline | UpdateQuery<T> | null): { update: UpdateQuery<T>, commands: Record<string, unknown>[] } {
|
|
42
46
|
let update: UpdateQuery<T> = {}
|
|
43
47
|
const commands: Record<string, unknown>[] = []
|
|
@@ -116,7 +120,7 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
|
|
|
116
120
|
|
|
117
121
|
schema.pre(updateMethods as MongooseQueryMiddleware[], async function (this: IHookContext<T>) {
|
|
118
122
|
const options = this.getOptions()
|
|
119
|
-
if (options
|
|
123
|
+
if (isHookIgnored(options)) return
|
|
120
124
|
|
|
121
125
|
const model = this.model as Model<T>
|
|
122
126
|
const filter = this.getFilter()
|
|
@@ -126,7 +130,9 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
|
|
|
126
130
|
op: this.op,
|
|
127
131
|
modelName: opts.modelName ?? this.model.modelName,
|
|
128
132
|
collectionName: opts.collectionName ?? this.model.collection.collectionName,
|
|
129
|
-
isNew: options.upsert && count === 0
|
|
133
|
+
isNew: options.upsert && count === 0,
|
|
134
|
+
ignoreEvent: options.ignoreEvent as boolean,
|
|
135
|
+
ignorePatchHistory: options.ignorePatchHistory as boolean
|
|
130
136
|
}
|
|
131
137
|
|
|
132
138
|
const updateQuery = this.getUpdate()
|
|
@@ -140,7 +146,7 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
|
|
|
140
146
|
|
|
141
147
|
schema.post(updateMethods as MongooseQueryMiddleware[], async function (this: IHookContext<T>) {
|
|
142
148
|
const options = this.getOptions()
|
|
143
|
-
if (options
|
|
149
|
+
if (isHookIgnored(options)) return
|
|
144
150
|
|
|
145
151
|
if (!this._context.isNew) return
|
|
146
152
|
|
|
@@ -183,7 +189,7 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
|
|
|
183
189
|
|
|
184
190
|
schema.pre(deleteMethods as MongooseQueryMiddleware[], { document: false, query: true }, async function (this: IHookContext<T>) {
|
|
185
191
|
const options = this.getOptions()
|
|
186
|
-
if (options
|
|
192
|
+
if (isHookIgnored(options)) return
|
|
187
193
|
|
|
188
194
|
const model = this.model as Model<T>
|
|
189
195
|
const filter = this.getFilter()
|
|
@@ -191,7 +197,9 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
|
|
|
191
197
|
this._context = {
|
|
192
198
|
op: this.op,
|
|
193
199
|
modelName: opts.modelName ?? this.model.modelName,
|
|
194
|
-
collectionName: opts.collectionName ?? this.model.collection.collectionName
|
|
200
|
+
collectionName: opts.collectionName ?? this.model.collection.collectionName,
|
|
201
|
+
ignoreEvent: options.ignoreEvent as boolean,
|
|
202
|
+
ignorePatchHistory: options.ignorePatchHistory as boolean
|
|
195
203
|
}
|
|
196
204
|
|
|
197
205
|
if (['remove', 'deleteMany'].includes(this._context.op) && !options.single) {
|
|
@@ -213,7 +221,7 @@ export const patchHistoryPlugin = function plugin<T> (schema: Schema<T>, opts: I
|
|
|
213
221
|
|
|
214
222
|
schema.post(deleteMethods as MongooseQueryMiddleware[], { document: false, query: true }, async function (this: IHookContext<T>) {
|
|
215
223
|
const options = this.getOptions()
|
|
216
|
-
if (options
|
|
224
|
+
if (isHookIgnored(options)) return
|
|
217
225
|
|
|
218
226
|
await deletePatch(opts, this._context)
|
|
219
227
|
})
|
package/tests/em.test.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { emitEvent } from '../src/patch'
|
|
1
2
|
import { patchEventEmitter } from '../src/plugin'
|
|
2
3
|
|
|
3
4
|
describe('em', () => {
|
|
@@ -13,4 +14,37 @@ describe('em', () => {
|
|
|
13
14
|
patchEventEmitter.emit('test')
|
|
14
15
|
expect(count).toBe(1)
|
|
15
16
|
})
|
|
17
|
+
|
|
18
|
+
it('emitEvent', async () => {
|
|
19
|
+
const fn = jest.fn()
|
|
20
|
+
patchEventEmitter.on('test', fn)
|
|
21
|
+
|
|
22
|
+
const context = {
|
|
23
|
+
op: 'test',
|
|
24
|
+
modelName: 'Test',
|
|
25
|
+
collectionName: 'tests'
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
emitEvent(context, 'test', { doc: { name: 'test' } })
|
|
29
|
+
expect(fn).toHaveBeenCalledTimes(1)
|
|
30
|
+
|
|
31
|
+
patchEventEmitter.off('test', fn)
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
it('emitEvent ignore', async () => {
|
|
35
|
+
const fn = jest.fn()
|
|
36
|
+
patchEventEmitter.on('test', fn)
|
|
37
|
+
|
|
38
|
+
const context = {
|
|
39
|
+
ignoreEvent: true,
|
|
40
|
+
op: 'test',
|
|
41
|
+
modelName: 'Test',
|
|
42
|
+
collectionName: 'tests'
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
emitEvent(context, 'test', { doc: { name: 'test' } })
|
|
46
|
+
expect(fn).toHaveBeenCalledTimes(0)
|
|
47
|
+
|
|
48
|
+
patchEventEmitter.off('test', fn)
|
|
49
|
+
})
|
|
16
50
|
})
|
package/tests/patch.test.ts
CHANGED
|
@@ -40,7 +40,7 @@ describe('patch tests', () => {
|
|
|
40
40
|
})
|
|
41
41
|
|
|
42
42
|
beforeEach(async () => {
|
|
43
|
-
await mongoose.connection.collection('
|
|
43
|
+
await mongoose.connection.collection('users').deleteMany({})
|
|
44
44
|
await mongoose.connection.collection('patches').deleteMany({})
|
|
45
45
|
})
|
|
46
46
|
|