@opra/mongodb 0.31.4 → 0.31.6

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 (48) hide show
  1. package/cjs/{transform-filter.js → adapter-utils/prepare-filter.js} +22 -9
  2. package/cjs/adapter-utils/prepare-key-values.js +21 -0
  3. package/cjs/{transform-patch.js → adapter-utils/prepare-patch.js} +5 -5
  4. package/cjs/{transform-projection.js → adapter-utils/prepare-projection.js} +11 -11
  5. package/cjs/{transform-sort.js → adapter-utils/prepare-sort.js} +2 -2
  6. package/cjs/index.js +3 -4
  7. package/cjs/mongo-adapter.js +10 -100
  8. package/cjs/mongo-collection-service.js +132 -0
  9. package/cjs/{mongo-entity-service-base.js → mongo-service.js} +48 -69
  10. package/cjs/mongo-singleton-service.js +88 -0
  11. package/esm/{transform-filter.js → adapter-utils/prepare-filter.js} +21 -8
  12. package/esm/adapter-utils/prepare-key-values.js +17 -0
  13. package/esm/{transform-patch.js → adapter-utils/prepare-patch.js} +4 -4
  14. package/esm/{transform-projection.js → adapter-utils/prepare-projection.js} +7 -7
  15. package/esm/{transform-sort.js → adapter-utils/prepare-sort.js} +1 -1
  16. package/esm/index.js +3 -4
  17. package/esm/mongo-adapter.js +10 -100
  18. package/esm/mongo-collection-service.js +127 -0
  19. package/esm/{mongo-entity-service-base.js → mongo-service.js} +46 -67
  20. package/esm/mongo-singleton-service.js +83 -0
  21. package/package.json +4 -8
  22. package/types/adapter-utils/prepare-filter.d.ts +4 -0
  23. package/types/adapter-utils/prepare-key-values.d.ts +1 -0
  24. package/types/adapter-utils/prepare-patch.d.ts +1 -0
  25. package/types/adapter-utils/prepare-projection.d.ts +9 -0
  26. package/types/adapter-utils/prepare-sort.d.ts +2 -0
  27. package/types/index.d.ts +3 -4
  28. package/types/mongo-adapter.d.ts +10 -19
  29. package/types/mongo-collection-service.d.ts +70 -0
  30. package/types/mongo-service.d.ts +40 -0
  31. package/types/mongo-singleton-service.d.ts +48 -0
  32. package/cjs/mongo-collection.js +0 -79
  33. package/cjs/mongo-entity-service.js +0 -34
  34. package/cjs/mongo-singleton.js +0 -44
  35. package/cjs/transform-key-values.js +0 -14
  36. package/esm/mongo-collection.js +0 -75
  37. package/esm/mongo-entity-service.js +0 -30
  38. package/esm/mongo-singleton.js +0 -40
  39. package/esm/transform-key-values.js +0 -11
  40. package/types/mongo-collection.d.ts +0 -32
  41. package/types/mongo-entity-service-base.d.ts +0 -32
  42. package/types/mongo-entity-service.d.ts +0 -20
  43. package/types/mongo-singleton.d.ts +0 -19
  44. package/types/transform-filter.d.ts +0 -3
  45. package/types/transform-key-values.d.ts +0 -3
  46. package/types/transform-patch.d.ts +0 -1
  47. package/types/transform-projection.d.ts +0 -9
  48. package/types/transform-sort.d.ts +0 -2
@@ -0,0 +1,48 @@
1
+ import mongodb from 'mongodb';
2
+ import { StrictOmit, Type } from 'ts-gems';
3
+ import * as OpraCommon from '@opra/common';
4
+ import { PartialInput, PartialOutput } from '@opra/core';
5
+ import { MongoService } from './mongo-service.js';
6
+ /**
7
+ *
8
+ * @class MongoSingletonService
9
+ */
10
+ export declare class MongoSingletonService<T extends mongodb.Document> extends MongoService<T> {
11
+ protected _id: any;
12
+ constructor(dataType: Type | string, options?: MongoSingletonService.Options);
13
+ protected get resource(): OpraCommon.Singleton;
14
+ protected create(doc: mongodb.OptionalUnlessRequiredId<T>, options?: MongoSingletonService.CreateOptions): Promise<PartialOutput<T>>;
15
+ protected delete(options?: MongoSingletonService.DeleteOptions<T>): Promise<number>;
16
+ protected get(options?: MongoSingletonService.GetOptions<T>): Promise<PartialOutput<T>>;
17
+ protected find(options?: MongoSingletonService.GetOptions<T>): Promise<PartialOutput<T> | undefined>;
18
+ protected update(doc: PartialInput<T>, options?: MongoSingletonService.UpdateOptions<T>): Promise<PartialOutput<T> | undefined>;
19
+ }
20
+ /**
21
+ *
22
+ * @namespace MongoSingletonService
23
+ */
24
+ export declare namespace MongoSingletonService {
25
+ interface Options extends MongoService.Options {
26
+ _id?: any;
27
+ }
28
+ interface CreateOptions extends mongodb.InsertOneOptions {
29
+ pick?: string[];
30
+ omit?: string[];
31
+ include?: string[];
32
+ }
33
+ interface DeleteOptions<T> extends mongodb.DeleteOptions {
34
+ filter?: mongodb.Filter<T> | OpraCommon.OpraFilter.Ast | string;
35
+ }
36
+ interface GetOptions<T> extends StrictOmit<mongodb.FindOptions, 'sort' | 'limit' | 'skip'> {
37
+ pick?: string[];
38
+ omit?: string[];
39
+ include?: string[];
40
+ filter?: mongodb.Filter<T> | OpraCommon.OpraFilter.Ast | string;
41
+ }
42
+ interface UpdateOptions<T> extends mongodb.UpdateOptions {
43
+ pick?: string[];
44
+ omit?: string[];
45
+ include?: string[];
46
+ filter?: mongodb.Filter<T> | OpraCommon.OpraFilter.Ast | string;
47
+ }
48
+ }
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MongoCollection = void 0;
4
- const mongo_adapter_js_1 = require("./mongo-adapter.js");
5
- // noinspection TypeScriptAbstractClassConstructorCanBeMadeProtected
6
- class MongoCollection {
7
- constructor(options) {
8
- this.defaultLimit = options?.defaultLimit || 100;
9
- }
10
- async create(ctx) {
11
- const prepared = await this._prepare(ctx);
12
- return this._create(ctx, prepared);
13
- }
14
- async delete(ctx) {
15
- const prepared = await this._prepare(ctx);
16
- return this._delete(ctx, prepared);
17
- }
18
- async deleteMany(ctx) {
19
- const prepared = await this._prepare(ctx);
20
- return this._deleteMany(ctx, prepared);
21
- }
22
- async get(ctx) {
23
- const prepared = await this._prepare(ctx);
24
- return this._get(ctx, prepared);
25
- }
26
- async update(ctx) {
27
- const prepared = await this._prepare(ctx);
28
- return this._update(ctx, prepared);
29
- }
30
- async updateMany(ctx) {
31
- const prepared = await this._prepare(ctx);
32
- return this._updateMany(ctx, prepared);
33
- }
34
- async findMany(ctx) {
35
- const prepared = await this._prepare(ctx);
36
- return this._findMany(ctx, prepared);
37
- }
38
- async _prepare(ctx) {
39
- const prepared = mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request);
40
- return (this.onPrepare && await this.onPrepare(ctx, prepared)) || prepared;
41
- }
42
- async _findMany(ctx, prepared) {
43
- const service = await this.getService(ctx);
44
- if (prepared.options.count) {
45
- const [items, count] = await Promise.all([
46
- service.find(prepared.filter, prepared.options),
47
- service.count(prepared.filter, prepared.options)
48
- ]);
49
- ctx.response.totalMatches = count;
50
- return items;
51
- }
52
- return service.find(prepared.filter, prepared.options);
53
- }
54
- async _create(ctx, prepared) {
55
- const service = await this.getService(ctx);
56
- return service.insertOne(prepared.data, prepared.options);
57
- }
58
- async _delete(ctx, prepared) {
59
- const service = await this.getService(ctx);
60
- return service.deleteOne(prepared.filter, prepared.options);
61
- }
62
- async _deleteMany(ctx, prepared) {
63
- const service = await this.getService(ctx);
64
- return service.deleteMany(prepared.filter, prepared.options);
65
- }
66
- async _get(ctx, prepared) {
67
- const service = await this.getService(ctx);
68
- return service.findOne(prepared.filter, prepared.options);
69
- }
70
- async _update(ctx, prepared) {
71
- const service = await this.getService(ctx);
72
- return service.updateOne(prepared.filter, prepared.data, prepared.options);
73
- }
74
- async _updateMany(ctx, prepared) {
75
- const service = await this.getService(ctx);
76
- return service.updateMany(prepared.filter, prepared.data, prepared.options);
77
- }
78
- }
79
- exports.MongoCollection = MongoCollection;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MongoEntityService = void 0;
4
- const mongo_entity_service_base_js_1 = require("./mongo-entity-service-base.js");
5
- class MongoEntityService extends mongo_entity_service_base_js_1.MongoEntityServiceBase {
6
- constructor(arg0, arg1) {
7
- super(arg0, arg1);
8
- }
9
- async count(filter, options) {
10
- return super._count(filter, options);
11
- }
12
- async deleteOne(filter, options) {
13
- return super._deleteOne(filter, options);
14
- }
15
- async deleteMany(filter, options) {
16
- return super._deleteMany(filter, options);
17
- }
18
- async findOne(filter, options) {
19
- return super._findOne(filter, options);
20
- }
21
- async find(filter, options) {
22
- return super._find(filter, options);
23
- }
24
- async insertOne(doc, options) {
25
- return super._insertOne(doc, options);
26
- }
27
- async updateOne(filter, doc, options) {
28
- return this._updateOne(filter, doc, options);
29
- }
30
- async updateMany(filter, doc, options) {
31
- return super._updateMany(filter, doc, options);
32
- }
33
- }
34
- exports.MongoEntityService = MongoEntityService;
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MongoSingleton = void 0;
4
- const mongo_adapter_js_1 = require("./mongo-adapter.js");
5
- class MongoSingleton {
6
- async create(ctx) {
7
- const prepared = await this._prepare(ctx);
8
- return this._create(ctx, prepared);
9
- }
10
- async delete(ctx) {
11
- const prepared = await this._prepare(ctx);
12
- return this._delete(ctx, prepared);
13
- }
14
- async get(ctx) {
15
- const prepared = await this._prepare(ctx);
16
- return this._get(ctx, prepared);
17
- }
18
- async update(ctx) {
19
- const prepared = await this._prepare(ctx);
20
- return this._update(ctx, prepared);
21
- }
22
- async _create(ctx, prepared) {
23
- const service = await this.getService(ctx);
24
- await service.deleteMany();
25
- return service.insertOne(prepared.data, prepared.options);
26
- }
27
- async _delete(ctx, prepared) {
28
- const service = await this.getService(ctx);
29
- return service.deleteOne(prepared.filter, prepared.options);
30
- }
31
- async _get(ctx, prepared) {
32
- const service = await this.getService(ctx);
33
- return service.findOne(prepared.filter, prepared.options);
34
- }
35
- async _update(ctx, prepared) {
36
- const service = await this.getService(ctx);
37
- return service.updateOne(prepared.filter, prepared.data, prepared.options);
38
- }
39
- async _prepare(ctx) {
40
- const prepared = mongo_adapter_js_1.MongoAdapter.transformRequest(ctx.request);
41
- return (this.onPrepare && await this.onPrepare(ctx, prepared)) || prepared;
42
- }
43
- }
44
- exports.MongoSingleton = MongoSingleton;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- function transformKeyValues(resource, keyValues) {
4
- const { primaryKey } = resource;
5
- if (primaryKey.length > 1) {
6
- const query = {};
7
- primaryKey.forEach((k, i) => {
8
- query[k] = typeof keyValues === 'object' ? keyValues[k] : keyValues[i];
9
- });
10
- return query;
11
- }
12
- return { [primaryKey[0]]: keyValues };
13
- }
14
- exports.default = transformKeyValues;
@@ -1,75 +0,0 @@
1
- import { MongoAdapter } from './mongo-adapter.js';
2
- // noinspection TypeScriptAbstractClassConstructorCanBeMadeProtected
3
- export class MongoCollection {
4
- constructor(options) {
5
- this.defaultLimit = options?.defaultLimit || 100;
6
- }
7
- async create(ctx) {
8
- const prepared = await this._prepare(ctx);
9
- return this._create(ctx, prepared);
10
- }
11
- async delete(ctx) {
12
- const prepared = await this._prepare(ctx);
13
- return this._delete(ctx, prepared);
14
- }
15
- async deleteMany(ctx) {
16
- const prepared = await this._prepare(ctx);
17
- return this._deleteMany(ctx, prepared);
18
- }
19
- async get(ctx) {
20
- const prepared = await this._prepare(ctx);
21
- return this._get(ctx, prepared);
22
- }
23
- async update(ctx) {
24
- const prepared = await this._prepare(ctx);
25
- return this._update(ctx, prepared);
26
- }
27
- async updateMany(ctx) {
28
- const prepared = await this._prepare(ctx);
29
- return this._updateMany(ctx, prepared);
30
- }
31
- async findMany(ctx) {
32
- const prepared = await this._prepare(ctx);
33
- return this._findMany(ctx, prepared);
34
- }
35
- async _prepare(ctx) {
36
- const prepared = MongoAdapter.transformRequest(ctx.request);
37
- return (this.onPrepare && await this.onPrepare(ctx, prepared)) || prepared;
38
- }
39
- async _findMany(ctx, prepared) {
40
- const service = await this.getService(ctx);
41
- if (prepared.options.count) {
42
- const [items, count] = await Promise.all([
43
- service.find(prepared.filter, prepared.options),
44
- service.count(prepared.filter, prepared.options)
45
- ]);
46
- ctx.response.totalMatches = count;
47
- return items;
48
- }
49
- return service.find(prepared.filter, prepared.options);
50
- }
51
- async _create(ctx, prepared) {
52
- const service = await this.getService(ctx);
53
- return service.insertOne(prepared.data, prepared.options);
54
- }
55
- async _delete(ctx, prepared) {
56
- const service = await this.getService(ctx);
57
- return service.deleteOne(prepared.filter, prepared.options);
58
- }
59
- async _deleteMany(ctx, prepared) {
60
- const service = await this.getService(ctx);
61
- return service.deleteMany(prepared.filter, prepared.options);
62
- }
63
- async _get(ctx, prepared) {
64
- const service = await this.getService(ctx);
65
- return service.findOne(prepared.filter, prepared.options);
66
- }
67
- async _update(ctx, prepared) {
68
- const service = await this.getService(ctx);
69
- return service.updateOne(prepared.filter, prepared.data, prepared.options);
70
- }
71
- async _updateMany(ctx, prepared) {
72
- const service = await this.getService(ctx);
73
- return service.updateMany(prepared.filter, prepared.data, prepared.options);
74
- }
75
- }
@@ -1,30 +0,0 @@
1
- import { MongoEntityServiceBase } from './mongo-entity-service-base.js';
2
- export class MongoEntityService extends MongoEntityServiceBase {
3
- constructor(arg0, arg1) {
4
- super(arg0, arg1);
5
- }
6
- async count(filter, options) {
7
- return super._count(filter, options);
8
- }
9
- async deleteOne(filter, options) {
10
- return super._deleteOne(filter, options);
11
- }
12
- async deleteMany(filter, options) {
13
- return super._deleteMany(filter, options);
14
- }
15
- async findOne(filter, options) {
16
- return super._findOne(filter, options);
17
- }
18
- async find(filter, options) {
19
- return super._find(filter, options);
20
- }
21
- async insertOne(doc, options) {
22
- return super._insertOne(doc, options);
23
- }
24
- async updateOne(filter, doc, options) {
25
- return this._updateOne(filter, doc, options);
26
- }
27
- async updateMany(filter, doc, options) {
28
- return super._updateMany(filter, doc, options);
29
- }
30
- }
@@ -1,40 +0,0 @@
1
- import { MongoAdapter } from './mongo-adapter.js';
2
- export class MongoSingleton {
3
- async create(ctx) {
4
- const prepared = await this._prepare(ctx);
5
- return this._create(ctx, prepared);
6
- }
7
- async delete(ctx) {
8
- const prepared = await this._prepare(ctx);
9
- return this._delete(ctx, prepared);
10
- }
11
- async get(ctx) {
12
- const prepared = await this._prepare(ctx);
13
- return this._get(ctx, prepared);
14
- }
15
- async update(ctx) {
16
- const prepared = await this._prepare(ctx);
17
- return this._update(ctx, prepared);
18
- }
19
- async _create(ctx, prepared) {
20
- const service = await this.getService(ctx);
21
- await service.deleteMany();
22
- return service.insertOne(prepared.data, prepared.options);
23
- }
24
- async _delete(ctx, prepared) {
25
- const service = await this.getService(ctx);
26
- return service.deleteOne(prepared.filter, prepared.options);
27
- }
28
- async _get(ctx, prepared) {
29
- const service = await this.getService(ctx);
30
- return service.findOne(prepared.filter, prepared.options);
31
- }
32
- async _update(ctx, prepared) {
33
- const service = await this.getService(ctx);
34
- return service.updateOne(prepared.filter, prepared.data, prepared.options);
35
- }
36
- async _prepare(ctx) {
37
- const prepared = MongoAdapter.transformRequest(ctx.request);
38
- return (this.onPrepare && await this.onPrepare(ctx, prepared)) || prepared;
39
- }
40
- }
@@ -1,11 +0,0 @@
1
- export default function transformKeyValues(resource, keyValues) {
2
- const { primaryKey } = resource;
3
- if (primaryKey.length > 1) {
4
- const query = {};
5
- primaryKey.forEach((k, i) => {
6
- query[k] = typeof keyValues === 'object' ? keyValues[k] : keyValues[i];
7
- });
8
- return query;
9
- }
10
- return { [primaryKey[0]]: keyValues };
11
- }
@@ -1,32 +0,0 @@
1
- import mongodb from 'mongodb';
2
- import { Maybe } from 'ts-gems';
3
- import { Collection, ICollection, PartialOutput } from '@opra/common';
4
- import { RequestContext } from '@opra/core';
5
- import { MongoAdapter } from './mongo-adapter.js';
6
- import { MongoEntityService } from './mongo-entity-service.js';
7
- export declare namespace MongoCollection {
8
- interface Options {
9
- defaultLimit?: number;
10
- }
11
- }
12
- export declare abstract class MongoCollection<T extends mongodb.Document> implements ICollection<T> {
13
- defaultLimit?: number;
14
- constructor(options?: MongoCollection.Options);
15
- create?(ctx: Collection.Create.Context): Promise<PartialOutput<T>>;
16
- delete?(ctx: RequestContext): Promise<number>;
17
- deleteMany?(ctx: RequestContext): Promise<number>;
18
- get?(ctx: RequestContext): Promise<Maybe<PartialOutput<T>>>;
19
- update?(ctx: RequestContext): Promise<Maybe<PartialOutput<T>>>;
20
- updateMany?(ctx: RequestContext): Promise<number>;
21
- findMany?(ctx: RequestContext): Promise<PartialOutput<T>[]>;
22
- protected _prepare(ctx: RequestContext): Promise<MongoAdapter.TransformedRequest>;
23
- protected _findMany(ctx: RequestContext, prepared: MongoAdapter.TransformedRequest): Promise<PartialOutput<T>[]>;
24
- protected _create(ctx: Collection.Create.Context, prepared: MongoAdapter.TransformedRequest): Promise<PartialOutput<T>>;
25
- protected _delete(ctx: RequestContext, prepared: MongoAdapter.TransformedRequest): Promise<number>;
26
- protected _deleteMany(ctx: RequestContext, prepared: MongoAdapter.TransformedRequest): Promise<number>;
27
- protected _get(ctx: RequestContext, prepared: MongoAdapter.TransformedRequest): Promise<Maybe<PartialOutput<T>>>;
28
- protected _update(ctx: RequestContext, prepared: MongoAdapter.TransformedRequest): Promise<Maybe<PartialOutput<T>>>;
29
- protected _updateMany(ctx: RequestContext, prepared: MongoAdapter.TransformedRequest): Promise<number>;
30
- protected onPrepare?(ctx: RequestContext, prepared: MongoAdapter.TransformedRequest): MongoAdapter.TransformedRequest | Promise<MongoAdapter.TransformedRequest>;
31
- protected abstract getService(ctx: RequestContext): MongoEntityService<T> | Promise<MongoEntityService<T>>;
32
- }
@@ -1,32 +0,0 @@
1
- import mongodb, { UpdateFilter } from 'mongodb';
2
- import { StrictOmit } from 'ts-gems';
3
- import { ApiService, PartialOutput, RequestContext } from '@opra/core';
4
- export declare namespace MongoEntityServiceBase {
5
- interface Options {
6
- db?: mongodb.Db;
7
- defaultLimit?: number;
8
- }
9
- }
10
- export declare class MongoEntityServiceBase<T extends mongodb.Document> extends ApiService {
11
- protected _collectionName: string;
12
- defaultLimit: number;
13
- db?: mongodb.Db;
14
- session?: mongodb.ClientSession;
15
- constructor(options?: MongoEntityServiceBase.Options);
16
- constructor(collectionName: string, options?: MongoEntityServiceBase.Options);
17
- protected _count(filter?: mongodb.Filter<T>, options?: mongodb.CountOptions): Promise<number>;
18
- protected _deleteOne(filter?: mongodb.Filter<T>, options?: mongodb.DeleteOptions): Promise<number>;
19
- protected _deleteMany(filter?: mongodb.Filter<T>, options?: mongodb.DeleteOptions): Promise<number>;
20
- protected _findOne(filter: mongodb.Filter<T>, options?: mongodb.FindOptions): Promise<PartialOutput<T> | undefined>;
21
- protected _find(filter: mongodb.Filter<T>, options?: mongodb.FindOptions): Promise<PartialOutput<T>[]>;
22
- protected _insertOne(doc: mongodb.OptionalUnlessRequiredId<T>, options?: mongodb.InsertOneOptions): Promise<PartialOutput<T>>;
23
- protected _updateOne(filter: mongodb.Filter<T>, doc: UpdateFilter<T> | Partial<T>, options?: mongodb.UpdateOptions): Promise<PartialOutput<T> | undefined>;
24
- protected _updateMany(filter: mongodb.Filter<T>, doc: UpdateFilter<T> | Partial<T>, options?: StrictOmit<mongodb.UpdateOptions, 'upsert'>): Promise<number>;
25
- forContext(context: RequestContext, db?: mongodb.Db, session?: mongodb.ClientSession): this;
26
- protected _onError(error: unknown): Promise<void>;
27
- protected getDatabase(): mongodb.Db | Promise<mongodb.Db>;
28
- protected getCollection(db: mongodb.Db): Promise<mongodb.Collection<T>>;
29
- protected getCollectionName(): string;
30
- protected onError?(error: unknown): void | Promise<void>;
31
- protected transformData?(row: PartialOutput<T>): PartialOutput<T>;
32
- }
@@ -1,20 +0,0 @@
1
- import mongodb, { UpdateFilter } from 'mongodb';
2
- import { StrictOmit } from 'ts-gems';
3
- import { PartialOutput } from '@opra/core';
4
- import { MongoEntityServiceBase } from './mongo-entity-service-base.js';
5
- export declare namespace MongoEntityService {
6
- interface Options extends MongoEntityServiceBase.Options {
7
- }
8
- }
9
- export declare class MongoEntityService<T extends mongodb.Document> extends MongoEntityServiceBase<T> {
10
- constructor(options?: MongoEntityService.Options);
11
- constructor(collectionName: string, options?: MongoEntityService.Options);
12
- count(filter?: mongodb.Filter<T>, options?: mongodb.CountOptions): Promise<number>;
13
- deleteOne(filter?: mongodb.Filter<T>, options?: mongodb.DeleteOptions): Promise<number>;
14
- deleteMany(filter?: mongodb.Filter<T>, options?: mongodb.DeleteOptions): Promise<number>;
15
- findOne(filter: mongodb.Filter<T>, options?: mongodb.FindOptions): Promise<PartialOutput<T> | undefined>;
16
- find(filter: mongodb.Filter<T>, options?: mongodb.FindOptions): Promise<PartialOutput<T>[]>;
17
- insertOne(doc: mongodb.OptionalUnlessRequiredId<T>, options?: mongodb.InsertOneOptions): Promise<PartialOutput<T>>;
18
- updateOne(filter: mongodb.Filter<T>, doc: UpdateFilter<T> | Partial<T>, options?: mongodb.UpdateOptions): Promise<PartialOutput<T> | undefined>;
19
- updateMany(filter: mongodb.Filter<T>, doc: UpdateFilter<T> | Partial<T>, options?: StrictOmit<mongodb.UpdateOptions, 'upsert'>): Promise<number>;
20
- }
@@ -1,19 +0,0 @@
1
- import mongodb from 'mongodb';
2
- import { Maybe } from 'ts-gems';
3
- import { ISingleton, PartialOutput } from '@opra/common';
4
- import { RequestContext } from '@opra/core';
5
- import { MongoAdapter } from './mongo-adapter.js';
6
- import { MongoEntityService } from './mongo-entity-service.js';
7
- export declare abstract class MongoSingleton<T extends mongodb.Document> implements ISingleton<T> {
8
- create?(ctx: RequestContext): Promise<PartialOutput<T>>;
9
- delete?(ctx: RequestContext): Promise<number>;
10
- get?(ctx: RequestContext): Promise<Maybe<PartialOutput<T>>>;
11
- update?(ctx: RequestContext): Promise<Maybe<PartialOutput<T>>>;
12
- protected _create(ctx: RequestContext, prepared: MongoAdapter.TransformedRequest): Promise<PartialOutput<T>>;
13
- protected _delete(ctx: RequestContext, prepared: MongoAdapter.TransformedRequest): Promise<number>;
14
- protected _get(ctx: RequestContext, prepared: MongoAdapter.TransformedRequest): Promise<Maybe<PartialOutput<T>>>;
15
- protected _update(ctx: RequestContext, prepared: MongoAdapter.TransformedRequest): Promise<Maybe<PartialOutput<T>>>;
16
- protected _prepare(ctx: RequestContext): Promise<MongoAdapter.TransformedRequest>;
17
- protected onPrepare?(ctx: RequestContext, prepared: MongoAdapter.TransformedRequest): MongoAdapter.TransformedRequest | Promise<MongoAdapter.TransformedRequest>;
18
- protected abstract getService(ctx: RequestContext): MongoEntityService<T> | Promise<MongoEntityService<T>>;
19
- }
@@ -1,3 +0,0 @@
1
- import '@opra/core';
2
- import { OpraFilter } from '@opra/common';
3
- export default function transformFilter(ast: OpraFilter.Expression | undefined, negative?: boolean): any;
@@ -1,3 +0,0 @@
1
- import mongodb from 'mongodb';
2
- import { Collection } from '@opra/common';
3
- export default function transformKeyValues(resource: Collection, keyValues: any): mongodb.Filter<any>;
@@ -1 +0,0 @@
1
- export default function transformPatch(doc: any): any;
@@ -1,9 +0,0 @@
1
- import mongodb from 'mongodb';
2
- import { ComplexType } from '@opra/common';
3
- export default function transformProjection(dataType: ComplexType, args?: {
4
- pick?: string[];
5
- omit?: string[];
6
- include?: string[];
7
- }): mongodb.Document | undefined;
8
- export declare function _transformInclusionProjection(dataType: ComplexType, target: mongodb.Document, pick?: any, include?: any, omit?: any, defaultFields?: boolean): void;
9
- export declare function _transformExclusionProjection(dataType: ComplexType, target: mongodb.Document, omit?: any, omitExclusiveFields?: boolean): void;
@@ -1,2 +0,0 @@
1
- import mongodb from 'mongodb';
2
- export default function transformSort(sort?: string[]): mongodb.Sort | undefined;