@opra/mongodb 0.25.3 → 0.25.5

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.
@@ -80,24 +80,24 @@ var MongoAdapter;
80
80
  return out;
81
81
  }
82
82
  case 'update': {
83
- const update = MongoAdapter.transformPatch(request.data);
83
+ const data = MongoAdapter.transformPatch(request.data);
84
84
  filter = filter || {};
85
85
  return {
86
86
  method: 'updateOne',
87
87
  filter,
88
- update,
88
+ data,
89
89
  options,
90
- args: [filter, update, options]
90
+ args: [filter, data, options]
91
91
  };
92
92
  }
93
93
  case 'updateMany': {
94
- const update = MongoAdapter.transformPatch(request.data);
94
+ const data = MongoAdapter.transformPatch(request.data);
95
95
  return {
96
96
  method: 'updateMany',
97
97
  filter,
98
- update,
98
+ data,
99
99
  options,
100
- args: [filter, update, options]
100
+ args: [filter, data, options]
101
101
  };
102
102
  }
103
103
  }
@@ -10,37 +10,37 @@ class MongoCollection {
10
10
  this.defaultLimit = options?.defaultLimit || 100;
11
11
  }
12
12
  async create(ctx) {
13
- const prepared = mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request);
13
+ const prepared = this._onPrepare(ctx, mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request));
14
14
  const service = await this.getService(ctx);
15
15
  return service.insertOne(prepared.data, prepared.options);
16
16
  }
17
17
  async delete(ctx) {
18
- const prepared = mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request);
18
+ const prepared = this._onPrepare(ctx, mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request));
19
19
  const service = await this.getService(ctx);
20
20
  return service.deleteOne(prepared.filter, prepared.options);
21
21
  }
22
22
  async deleteMany(ctx) {
23
- const prepared = mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request);
23
+ const prepared = this._onPrepare(ctx, mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request));
24
24
  const service = await this.getService(ctx);
25
25
  return service.deleteMany(prepared.filter, prepared.options);
26
26
  }
27
27
  async get(ctx) {
28
- const prepared = mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request);
28
+ const prepared = this._onPrepare(ctx, mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request));
29
29
  const service = await this.getService(ctx);
30
30
  return service.findOne(prepared.filter, prepared.options);
31
31
  }
32
32
  async update(ctx) {
33
- const prepared = mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request);
33
+ const prepared = this._onPrepare(ctx, mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request));
34
34
  const service = await this.getService(ctx);
35
- return service.updateOne(prepared.filter, prepared.update, prepared.options);
35
+ return service.updateOne(prepared.filter, prepared.data, prepared.options);
36
36
  }
37
37
  async updateMany(ctx) {
38
- const prepared = mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request);
38
+ const prepared = this._onPrepare(ctx, mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request));
39
39
  const service = await this.getService(ctx);
40
- return service.updateMany(prepared.filter, prepared.update, prepared.options);
40
+ return service.updateMany(prepared.filter, prepared.data, prepared.options);
41
41
  }
42
42
  async findMany(ctx) {
43
- const prepared = mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request);
43
+ const prepared = this._onPrepare(ctx, mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request));
44
44
  const service = await this.getService(ctx);
45
45
  if (prepared.count) {
46
46
  const [items, count] = await Promise.all([
@@ -52,6 +52,9 @@ class MongoCollection {
52
52
  }
53
53
  return service.find(prepared.filter, prepared.options);
54
54
  }
55
+ _onPrepare(ctx, prepared) {
56
+ return (this.onPrepare && this.onPrepare(ctx, prepared)) || prepared;
57
+ }
55
58
  }
56
59
  exports.MongoCollection = MongoCollection;
57
60
  tslib_1.__decorate([
@@ -27,7 +27,7 @@ class MongoSingleton {
27
27
  async update(ctx) {
28
28
  const prepared = mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request);
29
29
  const service = await this.getService(ctx);
30
- return service.updateOne(prepared.filter, prepared.update, prepared.options);
30
+ return service.updateOne(prepared.filter, prepared.data, prepared.options);
31
31
  }
32
32
  }
33
33
  exports.MongoSingleton = MongoSingleton;
@@ -76,24 +76,24 @@ export var MongoAdapter;
76
76
  return out;
77
77
  }
78
78
  case 'update': {
79
- const update = MongoAdapter.transformPatch(request.data);
79
+ const data = MongoAdapter.transformPatch(request.data);
80
80
  filter = filter || {};
81
81
  return {
82
82
  method: 'updateOne',
83
83
  filter,
84
- update,
84
+ data,
85
85
  options,
86
- args: [filter, update, options]
86
+ args: [filter, data, options]
87
87
  };
88
88
  }
89
89
  case 'updateMany': {
90
- const update = MongoAdapter.transformPatch(request.data);
90
+ const data = MongoAdapter.transformPatch(request.data);
91
91
  return {
92
92
  method: 'updateMany',
93
93
  filter,
94
- update,
94
+ data,
95
95
  options,
96
- args: [filter, update, options]
96
+ args: [filter, data, options]
97
97
  };
98
98
  }
99
99
  }
@@ -7,37 +7,37 @@ export class MongoCollection {
7
7
  this.defaultLimit = options?.defaultLimit || 100;
8
8
  }
9
9
  async create(ctx) {
10
- const prepared = MongoAdapter.transformRequest(ctx.request);
10
+ const prepared = this._onPrepare(ctx, MongoAdapter.transformRequest(ctx.request));
11
11
  const service = await this.getService(ctx);
12
12
  return service.insertOne(prepared.data, prepared.options);
13
13
  }
14
14
  async delete(ctx) {
15
- const prepared = MongoAdapter.transformRequest(ctx.request);
15
+ const prepared = this._onPrepare(ctx, MongoAdapter.transformRequest(ctx.request));
16
16
  const service = await this.getService(ctx);
17
17
  return service.deleteOne(prepared.filter, prepared.options);
18
18
  }
19
19
  async deleteMany(ctx) {
20
- const prepared = MongoAdapter.transformRequest(ctx.request);
20
+ const prepared = this._onPrepare(ctx, MongoAdapter.transformRequest(ctx.request));
21
21
  const service = await this.getService(ctx);
22
22
  return service.deleteMany(prepared.filter, prepared.options);
23
23
  }
24
24
  async get(ctx) {
25
- const prepared = MongoAdapter.transformRequest(ctx.request);
25
+ const prepared = this._onPrepare(ctx, MongoAdapter.transformRequest(ctx.request));
26
26
  const service = await this.getService(ctx);
27
27
  return service.findOne(prepared.filter, prepared.options);
28
28
  }
29
29
  async update(ctx) {
30
- const prepared = MongoAdapter.transformRequest(ctx.request);
30
+ const prepared = this._onPrepare(ctx, MongoAdapter.transformRequest(ctx.request));
31
31
  const service = await this.getService(ctx);
32
- return service.updateOne(prepared.filter, prepared.update, prepared.options);
32
+ return service.updateOne(prepared.filter, prepared.data, prepared.options);
33
33
  }
34
34
  async updateMany(ctx) {
35
- const prepared = MongoAdapter.transformRequest(ctx.request);
35
+ const prepared = this._onPrepare(ctx, MongoAdapter.transformRequest(ctx.request));
36
36
  const service = await this.getService(ctx);
37
- return service.updateMany(prepared.filter, prepared.update, prepared.options);
37
+ return service.updateMany(prepared.filter, prepared.data, prepared.options);
38
38
  }
39
39
  async findMany(ctx) {
40
- const prepared = MongoAdapter.transformRequest(ctx.request);
40
+ const prepared = this._onPrepare(ctx, MongoAdapter.transformRequest(ctx.request));
41
41
  const service = await this.getService(ctx);
42
42
  if (prepared.count) {
43
43
  const [items, count] = await Promise.all([
@@ -49,6 +49,9 @@ export class MongoCollection {
49
49
  }
50
50
  return service.find(prepared.filter, prepared.options);
51
51
  }
52
+ _onPrepare(ctx, prepared) {
53
+ return (this.onPrepare && this.onPrepare(ctx, prepared)) || prepared;
54
+ }
52
55
  }
53
56
  __decorate([
54
57
  Collection.Create()
@@ -24,7 +24,7 @@ export class MongoSingleton {
24
24
  async update(ctx) {
25
25
  const prepared = MongoAdapter.transformRequest(ctx.request);
26
26
  const service = await this.getService(ctx);
27
- return service.updateOne(prepared.filter, prepared.update, prepared.options);
27
+ return service.updateOne(prepared.filter, prepared.data, prepared.options);
28
28
  }
29
29
  }
30
30
  __decorate([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opra/mongodb",
3
- "version": "0.25.3",
3
+ "version": "0.25.5",
4
4
  "description": "Opra MongoDB adapter package",
5
5
  "author": "Panates",
6
6
  "license": "MIT",
@@ -29,13 +29,13 @@
29
29
  },
30
30
  "devDependencies": {
31
31
  "@faker-js/faker": "^8.0.2",
32
- "mongodb": "^5.8.1",
32
+ "mongodb": "^6.0.0",
33
33
  "ts-gems": "^2.4.1"
34
34
  },
35
35
  "peerDependencies": {
36
- "@opra/common": "^0.25.3",
37
- "@opra/core": "^0.25.3",
38
- "mongodb": ">=4.x.x"
36
+ "@opra/common": "^0.25.5",
37
+ "@opra/core": "^0.25.5",
38
+ "mongodb": ">=6.x.x"
39
39
  },
40
40
  "type": "module",
41
41
  "module": "./esm/index.js",
@@ -10,5 +10,12 @@ export declare namespace MongoAdapter {
10
10
  const transformPatch: typeof _transformPatch;
11
11
  const transformProjection: typeof _transformProjection;
12
12
  const transformSort: typeof _transformSort;
13
- function transformRequest(request: Request): any;
13
+ interface TransformedRequest {
14
+ method: 'findOne' | 'find' | 'insertOne' | 'deleteOne' | 'deleteMany' | 'updateOne' | 'updateMany';
15
+ filter?: any;
16
+ data?: any;
17
+ options?: any;
18
+ args: any[];
19
+ }
20
+ function transformRequest(request: Request): TransformedRequest;
14
21
  }
@@ -19,4 +19,6 @@ export declare abstract class MongoCollection<T extends mongodb.Document> implem
19
19
  updateMany?(ctx: EndpointContext): Promise<number>;
20
20
  findMany?(ctx: EndpointContext): Promise<PartialOutput<T>[]>;
21
21
  abstract getService(ctx: EndpointContext): MongoEntityService<T> | Promise<MongoEntityService<T>>;
22
+ onPrepare?(ctx: EndpointContext, prepared: any): any;
23
+ protected _onPrepare(ctx: EndpointContext, prepared: any): any;
22
24
  }