@common-stack/store-mongo 7.0.4-alpha.6 → 7.1.1-alpha.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.
- package/lib/dataloaders/bulk-dataloader-v2.d.ts +7 -0
- package/lib/dataloaders/{bulk-dataloader.js → bulk-dataloader-v2.js} +10 -8
- package/lib/dataloaders/bulk-dataloader-v2.js.map +1 -0
- package/lib/dataloaders/bulk-dataloader.test.d.ts +1 -0
- package/lib/dataloaders/index.d.ts +1 -1
- package/lib/graphql/schema/base-services.graphql +1 -0
- package/lib/index.js +1 -1
- package/lib/interfaces/base-repository-v2.d.ts +26 -0
- package/lib/interfaces/base-repository.d.ts +0 -4
- package/lib/interfaces/base-service-v2.d.ts +21 -0
- package/lib/interfaces/dataloader-v2.d.ts +17 -0
- package/lib/interfaces/get-all-args.d.ts +20 -1
- package/lib/interfaces/{base-repository.js → get-all-args.js} +1 -1
- package/lib/interfaces/get-all-args.js.map +1 -0
- package/lib/interfaces/index.d.ts +3 -0
- package/lib/mixins/base-service-mixin-v2.d.ts +4 -0
- package/lib/mixins/base-service-mixin-v2.js +123 -0
- package/lib/mixins/base-service-mixin-v2.js.map +1 -0
- package/lib/mixins/index.d.ts +1 -0
- package/lib/services/base-proxy-service-v2.d.ts +28 -0
- package/lib/services/base-proxy-service-v2.js +52 -0
- package/lib/services/base-proxy-service-v2.js.map +1 -0
- package/lib/services/base-service-v2.d.ts +23 -0
- package/lib/services/base-service-v2.js +64 -0
- package/lib/services/base-service-v2.js.map +1 -0
- package/lib/services/base-service.test.d.ts +1 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/store/models/common-options-v2.d.ts +16 -0
- package/lib/store/models/common-options-v2.js +40 -0
- package/lib/store/models/common-options-v2.js.map +1 -0
- package/lib/store/models/index.d.ts +1 -0
- package/lib/store/repositories/base-repository-v2.d.ts +65 -0
- package/lib/store/repositories/base-repository-v2.js +389 -0
- package/lib/store/repositories/base-repository-v2.js.map +1 -0
- package/lib/store/repositories/base-repository.js +1 -1
- package/lib/store/repositories/base-repository.test.d.ts +1 -0
- package/lib/store/repositories/custom-id-repository.test.d.ts +1 -0
- package/lib/store/repositories/index.d.ts +1 -0
- package/package.json +4 -3
- package/lib/dataloaders/bulk-dataloader.js.map +0 -1
- package/lib/interfaces/base-repository.js.map +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import DataLoader from 'dataloader';
|
|
2
|
+
import { DataLoaderOptions2 as DataLoaderOptions, IBaseService2 as IBaseService, IDataLoader2 as IDataLoader, AsDomainType } from '../interfaces';
|
|
3
|
+
export declare class BulkDataLoader2<SchemaType> extends DataLoader<string, AsDomainType<SchemaType> | null> implements IDataLoader<SchemaType> {
|
|
4
|
+
private readonly service;
|
|
5
|
+
constructor(service: IBaseService<SchemaType>);
|
|
6
|
+
withOptions: DataLoader<DataLoaderOptions<SchemaType>, AsDomainType<SchemaType>[], DataLoaderOptions<SchemaType>>;
|
|
7
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {__decorate,__param,__metadata}from'tslib';import DataLoader from'dataloader';import {injectable,unmanaged}from'inversify';let
|
|
1
|
+
import {__decorate,__param,__metadata}from'tslib';import DataLoader from'dataloader';import {injectable,unmanaged}from'inversify';let BulkDataLoader2 = class BulkDataLoader2 extends DataLoader {
|
|
2
2
|
service;
|
|
3
3
|
constructor(service) {
|
|
4
4
|
super(async (ids) => {
|
|
@@ -10,22 +10,24 @@ import {__decorate,__param,__metadata}from'tslib';import DataLoader from'dataloa
|
|
|
10
10
|
withOptions = new DataLoader(async (options) => {
|
|
11
11
|
const [{ searchKey, comparator, ...rest }] = options;
|
|
12
12
|
const ids = options.map((option) => option.id);
|
|
13
|
+
// Create a properly typed criteria object with explicit type assertion
|
|
14
|
+
const criteria = {
|
|
15
|
+
...(rest.criteria || {}),
|
|
16
|
+
[searchKey]: { $in: ids },
|
|
17
|
+
};
|
|
13
18
|
const results = await this.service.getAll({
|
|
14
19
|
...rest,
|
|
15
|
-
criteria
|
|
16
|
-
...rest.criteria,
|
|
17
|
-
[searchKey]: { $in: ids },
|
|
18
|
-
},
|
|
20
|
+
criteria,
|
|
19
21
|
});
|
|
20
22
|
return options.map((option) => results.filter((item) => {
|
|
21
23
|
if (typeof comparator === 'function')
|
|
22
24
|
return comparator(option, item);
|
|
23
|
-
return item[searchKey]
|
|
25
|
+
return item[searchKey]?.toString() === option.id.toString();
|
|
24
26
|
}));
|
|
25
27
|
});
|
|
26
28
|
};
|
|
27
|
-
|
|
29
|
+
BulkDataLoader2 = __decorate([
|
|
28
30
|
injectable(),
|
|
29
31
|
__param(0, unmanaged()),
|
|
30
32
|
__metadata("design:paramtypes", [Object])
|
|
31
|
-
],
|
|
33
|
+
], BulkDataLoader2);export{BulkDataLoader2};//# sourceMappingURL=bulk-dataloader-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk-dataloader-v2.js","sources":["../../src/dataloaders/bulk-dataloader-v2.ts"],"sourcesContent":[null],"names":[],"mappings":"kIAWO,IAAM,eAAe,GAArB,MAAM,eACT,SAAQ,UAAmD,CAAA;AAGjB,IAAA,OAAA,CAAA;AAA1C,IAAA,WAAA,CAA0C,OAAiC,EAAA;AACvE,QAAA,KAAK,CAAC,OAAO,GAAa,KAAI;YAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,SAAC,CAAC,CAAC;QAJmC,IAAO,CAAA,OAAA,GAAP,OAAO,CAA0B;KAK1E;IAED,WAAW,GAAG,IAAI,UAAU,CAA4D,OAAO,OAAO,KAAI;AACtG,QAAA,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;AACrD,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;;AAG/C,QAAA,MAAM,QAAQ,GAAG;AACb,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;AACxB,YAAA,CAAC,SAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;SACX,CAAC;QAE7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,YAAA,GAAG,IAAI;YACP,QAAQ;AACX,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KACtB,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;YACpB,IAAI,OAAO,UAAU,KAAK,UAAU;AAAE,gBAAA,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtE,YAAA,OAAO,IAAI,CAAC,SAA2C,CAAC,EAAE,QAAQ,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;SACjG,CAAC,CACL,CAAC;AACN,KAAC,CAAC,CAAC;EACN;AAjCY,eAAe,GAAA,UAAA,CAAA;AAD3B,IAAA,UAAU,EAAE;IAKI,OAAA,CAAA,CAAA,EAAA,SAAS,EAAE,CAAA;;AAJf,CAAA,EAAA,eAAe,CAiC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './bulk-dataloader';
|
|
1
|
+
export * from './bulk-dataloader-v2';
|
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{PAGINATION_OPTIONS}from'./interfaces/
|
|
1
|
+
export{PAGINATION_OPTIONS}from'./interfaces/get-all-args.js';export{generateMongo}from'./helpers/mongoose-connection.js';export{BaseService2}from'./services/base-service-v2.js';export{BaseProxyService2}from'./services/base-proxy-service-v2.js';export{BaseService}from'./services/base-service.js';export{BaseProxyService}from'./services/base-proxy-service.js';export{addIdVirtualFields2,commonModelSchemaOptions2}from'./store/models/common-options-v2.js';export{addIdVirtualFields,commonModeSchemaOptions}from'./store/models/common-options.js';export{BaseRepository2}from'./store/repositories/base-repository-v2.js';export{BaseRepository}from'./store/repositories/base-repository.js';export{BulkDataLoader2}from'./dataloaders/bulk-dataloader-v2.js';export{BaseServiceMixin2}from'./mixins/base-service-mixin-v2.js';export{BaseServiceMixin}from'./mixins/base-service-mixin.js';//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FilterQuery, Model, PipelineStage, UpdateQuery } from 'mongoose';
|
|
2
|
+
import { AsDomainType, CreateType, GetAllArgs, UpdateType } from './get-all-args';
|
|
3
|
+
export interface IBaseRepository2<SchemaType> {
|
|
4
|
+
model: Model<SchemaType>;
|
|
5
|
+
count(conditions?: FilterQuery<SchemaType>): Promise<number>;
|
|
6
|
+
getAll(options: GetAllArgs<SchemaType>): Promise<AsDomainType<SchemaType>[]>;
|
|
7
|
+
getAllWithPipeline(options: GetAllArgs<SchemaType>, customPipeline?: PipelineStage[]): Promise<AsDomainType<SchemaType>[]>;
|
|
8
|
+
getAllWithCount(options: GetAllArgs<SchemaType>): Promise<{
|
|
9
|
+
data: AsDomainType<SchemaType>[];
|
|
10
|
+
totalCount: number;
|
|
11
|
+
}>;
|
|
12
|
+
getAllWithCountAndPipeline(options: GetAllArgs<SchemaType>, customPipeline?: PipelineStage[]): Promise<{
|
|
13
|
+
data: AsDomainType<SchemaType>[];
|
|
14
|
+
totalCount: number;
|
|
15
|
+
}>;
|
|
16
|
+
get(conditions?: FilterQuery<SchemaType>, selectedFields?: string): Promise<AsDomainType<SchemaType> | null>;
|
|
17
|
+
find(conditions: Partial<FilterQuery<SchemaType>>, selectedFields?: string): Promise<AsDomainType<SchemaType> | null>;
|
|
18
|
+
create<T = CreateType<SchemaType>>(data: T): Promise<AsDomainType<SchemaType>>;
|
|
19
|
+
upsert<T = UpdateType<SchemaType>>(conditions: FilterQuery<SchemaType>, update: T, options?: Record<string, unknown>): Promise<AsDomainType<SchemaType>>;
|
|
20
|
+
update<T = UpdateType<SchemaType>>(criteria: FilterQuery<SchemaType>, update: T | UpdateQuery<SchemaType>, options?: Record<string, unknown>): Promise<AsDomainType<SchemaType>>;
|
|
21
|
+
bulkUpdate<T = UpdateType<SchemaType>>(criteria: FilterQuery<SchemaType>, update: T | UpdateQuery<SchemaType>, options?: Record<string, unknown>): Promise<AsDomainType<SchemaType>[]>;
|
|
22
|
+
delete(criteria: FilterQuery<SchemaType>): Promise<boolean>;
|
|
23
|
+
bulkGet(ids: string[], selectedFields?: string): Promise<AsDomainType<SchemaType>[]>;
|
|
24
|
+
bulkCreate<T = CreateType<SchemaType>>(data: T[]): Promise<AsDomainType<SchemaType>[]>;
|
|
25
|
+
bulkDelete(criteria: FilterQuery<SchemaType>): Promise<number>;
|
|
26
|
+
}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { Document, FilterQuery, Model, UpdateQuery } from 'mongoose';
|
|
2
2
|
import { GetAllArgs } from './get-all-args';
|
|
3
|
-
export declare enum PAGINATION_OPTIONS {
|
|
4
|
-
limit = 10,
|
|
5
|
-
skip = 0
|
|
6
|
-
}
|
|
7
3
|
export interface IBaseRepository<T, D = Document<T>> {
|
|
8
4
|
model: Model<D>;
|
|
9
5
|
count(conditions?: FilterQuery<D>): Promise<number>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FilterQuery } from 'mongoose';
|
|
2
|
+
import { GetAllArgs, AsDomainType, CreateType, UpdateType } from './get-all-args';
|
|
3
|
+
export interface IBaseService2<SchemaType> {
|
|
4
|
+
getAllWithCount(options: GetAllArgs<SchemaType>): Promise<{
|
|
5
|
+
data: AsDomainType<SchemaType>[];
|
|
6
|
+
totalCount: number;
|
|
7
|
+
}>;
|
|
8
|
+
count(conditions?: FilterQuery<SchemaType>): Promise<number>;
|
|
9
|
+
get(conditions: string | FilterQuery<SchemaType>): Promise<AsDomainType<SchemaType> | null>;
|
|
10
|
+
getByName(name: string): Promise<AsDomainType<SchemaType> | null>;
|
|
11
|
+
getAll(options: GetAllArgs<SchemaType>): Promise<AsDomainType<SchemaType>[]>;
|
|
12
|
+
getByIds(ids: string[]): Promise<AsDomainType<SchemaType>[]>;
|
|
13
|
+
create<T = CreateType<SchemaType>>(data: T): Promise<AsDomainType<SchemaType>>;
|
|
14
|
+
bulkCreate<T = CreateType<SchemaType>>(data: T[]): Promise<AsDomainType<SchemaType>[]>;
|
|
15
|
+
update<T = UpdateType<SchemaType>>(id: string, data: T, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
16
|
+
insert<T = CreateType<SchemaType>>(data: T & {
|
|
17
|
+
id?: string;
|
|
18
|
+
}, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
19
|
+
delete(id: string | FilterQuery<SchemaType>): Promise<boolean>;
|
|
20
|
+
bulkDelete(criteria: FilterQuery<SchemaType>): Promise<number>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import DataLoader from 'dataloader';
|
|
2
|
+
import { FilterQuery } from 'mongoose';
|
|
3
|
+
import { AsDomainType } from './get-all-args';
|
|
4
|
+
export interface DataLoaderOptions2<SchemaType> {
|
|
5
|
+
id: string;
|
|
6
|
+
searchKey: keyof AsDomainType<SchemaType> | string;
|
|
7
|
+
comparator?: (option: DataLoaderOptions2<SchemaType>, item: AsDomainType<SchemaType>) => boolean;
|
|
8
|
+
criteria?: FilterQuery<SchemaType>;
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}
|
|
11
|
+
export interface IDataLoader2<SchemaType> {
|
|
12
|
+
load: (id: string) => Promise<AsDomainType<SchemaType> | null>;
|
|
13
|
+
loadMany: (ids: string[]) => Promise<(AsDomainType<SchemaType> | null | Error)[]>;
|
|
14
|
+
clear: (id: string) => DataLoader<string, AsDomainType<SchemaType> | null>;
|
|
15
|
+
clearAll: () => DataLoader<string, AsDomainType<SchemaType> | null>;
|
|
16
|
+
withOptions: DataLoader<DataLoaderOptions2<SchemaType>, AsDomainType<SchemaType>[]>;
|
|
17
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FilterQuery } from 'mongoose';
|
|
2
|
-
import { ISort } from 'common';
|
|
2
|
+
import type { ISort } from 'common';
|
|
3
3
|
export interface GetAllArgs<T> {
|
|
4
4
|
criteria?: FilterQuery<T>;
|
|
5
5
|
sort?: ISort;
|
|
@@ -7,3 +7,22 @@ export interface GetAllArgs<T> {
|
|
|
7
7
|
limit?: number;
|
|
8
8
|
selectedFields?: string;
|
|
9
9
|
}
|
|
10
|
+
export type { ISort };
|
|
11
|
+
export declare enum PAGINATION_OPTIONS {
|
|
12
|
+
limit = 10,
|
|
13
|
+
skip = 0
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Type that converts a schema type with _id to a domain type with id
|
|
17
|
+
*/
|
|
18
|
+
export type AsDomainType<SchemaType> = Omit<SchemaType, '_id'> & {
|
|
19
|
+
id: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Type for create operations - omits _id, id, and auto-generated fields
|
|
23
|
+
*/
|
|
24
|
+
export type CreateType<SchemaType> = Omit<Partial<SchemaType>, '_id' | 'id' | 'createdAt' | 'updatedAt'>;
|
|
25
|
+
/**
|
|
26
|
+
* Type for update operations - partial of the schema without _id
|
|
27
|
+
*/
|
|
28
|
+
export type UpdateType<SchemaType> = Partial<Omit<SchemaType, '_id'>>;
|
|
@@ -2,4 +2,4 @@ var PAGINATION_OPTIONS;
|
|
|
2
2
|
(function (PAGINATION_OPTIONS) {
|
|
3
3
|
PAGINATION_OPTIONS[PAGINATION_OPTIONS["limit"] = 10] = "limit";
|
|
4
4
|
PAGINATION_OPTIONS[PAGINATION_OPTIONS["skip"] = 0] = "skip";
|
|
5
|
-
})(PAGINATION_OPTIONS || (PAGINATION_OPTIONS = {}));export{PAGINATION_OPTIONS};//# sourceMappingURL=
|
|
5
|
+
})(PAGINATION_OPTIONS || (PAGINATION_OPTIONS = {}));export{PAGINATION_OPTIONS};//# sourceMappingURL=get-all-args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-all-args.js","sources":["../../src/interfaces/get-all-args.ts"],"sourcesContent":[null],"names":[],"mappings":"IAaY,mBAGX;AAHD,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU,CAAA;AACV,IAAA,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACZ,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export * from './mongoose-settings';
|
|
2
2
|
export * from './get-all-args';
|
|
3
|
+
export * from './base-repository-v2';
|
|
4
|
+
export * from './base-service-v2';
|
|
5
|
+
export * from './dataloader-v2';
|
|
3
6
|
export * from './base-repository';
|
|
4
7
|
export * from './base-service';
|
|
5
8
|
export * from './dataloaders';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ServiceBroker, ServiceSchema } from 'moleculer';
|
|
2
|
+
import { BaseServiceCommands } from 'common';
|
|
3
|
+
import { IBaseService2 as IBaseService } from '../interfaces';
|
|
4
|
+
export declare const BaseServiceMixin2: <T>(service: IBaseService<T>, broker?: ServiceBroker, name?: string, events?: BaseServiceCommands[]) => Partial<ServiceSchema>;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import {upperFirst}from'lodash-es';import {BaseServiceCommands}from'common';const defaultEvents = [
|
|
2
|
+
BaseServiceCommands.Create,
|
|
3
|
+
BaseServiceCommands.BulkCreate,
|
|
4
|
+
BaseServiceCommands.Update,
|
|
5
|
+
BaseServiceCommands.Delete,
|
|
6
|
+
BaseServiceCommands.DeleteMany,
|
|
7
|
+
];
|
|
8
|
+
const BaseServiceMixin2 = (service, broker, name, events = defaultEvents) => ({
|
|
9
|
+
name: 'BaseServiceMixin',
|
|
10
|
+
actions: {
|
|
11
|
+
[BaseServiceCommands.Get]: {
|
|
12
|
+
params: {
|
|
13
|
+
id: 'string',
|
|
14
|
+
},
|
|
15
|
+
handler: async (ctx) => service.get({ id: ctx.params.id }),
|
|
16
|
+
},
|
|
17
|
+
[BaseServiceCommands.Count]: {
|
|
18
|
+
params: {
|
|
19
|
+
criteria: { type: 'object', optional: true },
|
|
20
|
+
},
|
|
21
|
+
handler: async (ctx) => service.count(ctx.params.criteria),
|
|
22
|
+
},
|
|
23
|
+
[BaseServiceCommands.BulkCreate]: {
|
|
24
|
+
params: {
|
|
25
|
+
data: { type: 'array', items: 'object' },
|
|
26
|
+
},
|
|
27
|
+
handler: async (ctx) => {
|
|
28
|
+
const response = await service.bulkCreate(ctx.params.data);
|
|
29
|
+
if (events.includes(BaseServiceCommands.BulkCreate)) {
|
|
30
|
+
await broker?.emit(`${name}.on${upperFirst(BaseServiceCommands.BulkCreate)}`, response);
|
|
31
|
+
}
|
|
32
|
+
return response;
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
[BaseServiceCommands.Create]: {
|
|
36
|
+
params: {
|
|
37
|
+
data: 'object',
|
|
38
|
+
},
|
|
39
|
+
handler: async (ctx) => {
|
|
40
|
+
const response = await service.create(ctx.params.data);
|
|
41
|
+
if (events.includes(BaseServiceCommands.Create)) {
|
|
42
|
+
await broker?.emit(`${name}.on${upperFirst(BaseServiceCommands.Create)}`, response);
|
|
43
|
+
}
|
|
44
|
+
return response;
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
[BaseServiceCommands.Delete]: {
|
|
48
|
+
params: {
|
|
49
|
+
id: 'string',
|
|
50
|
+
},
|
|
51
|
+
handler: async (ctx) => {
|
|
52
|
+
const { id } = ctx.params;
|
|
53
|
+
const response = await service.delete({ id });
|
|
54
|
+
if (events.includes(BaseServiceCommands.Delete)) {
|
|
55
|
+
await broker?.emit(`${name}.on${upperFirst(BaseServiceCommands.Delete)}`, { id });
|
|
56
|
+
}
|
|
57
|
+
return response;
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
[BaseServiceCommands.GetAll]: {
|
|
61
|
+
params: {
|
|
62
|
+
criteria: 'object|optional',
|
|
63
|
+
sort: 'object|optional',
|
|
64
|
+
skip: 'number|optional',
|
|
65
|
+
limit: 'number|optional',
|
|
66
|
+
selectedFields: 'string|optional',
|
|
67
|
+
},
|
|
68
|
+
handler: async (ctx) => service.getAll(ctx.params),
|
|
69
|
+
},
|
|
70
|
+
[BaseServiceCommands.GetAllWithCount]: {
|
|
71
|
+
params: {
|
|
72
|
+
criteria: 'object|optional',
|
|
73
|
+
sort: 'object|optional',
|
|
74
|
+
skip: 'number|optional',
|
|
75
|
+
limit: 'number|optional',
|
|
76
|
+
selectedFields: 'string|optional',
|
|
77
|
+
},
|
|
78
|
+
handler: async (ctx) => service.getAllWithCount(ctx.params),
|
|
79
|
+
},
|
|
80
|
+
[BaseServiceCommands.Insert]: {
|
|
81
|
+
params: {
|
|
82
|
+
data: 'object',
|
|
83
|
+
overwrite: 'boolean|optional',
|
|
84
|
+
},
|
|
85
|
+
handler: async (ctx) => {
|
|
86
|
+
const { data } = ctx.params;
|
|
87
|
+
const response = await service.insert(data, ctx.params.overwrite);
|
|
88
|
+
const action = data?.id ? BaseServiceCommands.Update : BaseServiceCommands.Create;
|
|
89
|
+
if (events.includes(action)) {
|
|
90
|
+
await broker?.emit(`${name}.on${upperFirst(action)}`, response);
|
|
91
|
+
}
|
|
92
|
+
return response;
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
[BaseServiceCommands.Update]: {
|
|
96
|
+
params: {
|
|
97
|
+
id: 'string',
|
|
98
|
+
data: 'object',
|
|
99
|
+
overwrite: 'boolean|optional',
|
|
100
|
+
},
|
|
101
|
+
handler: async (ctx) => {
|
|
102
|
+
const response = await service.update(ctx.params.id, ctx.params.data, ctx.params.overwrite);
|
|
103
|
+
if (events.includes(BaseServiceCommands.Update)) {
|
|
104
|
+
await broker?.emit(`${name}.on${upperFirst(BaseServiceCommands.Update)}`, response);
|
|
105
|
+
}
|
|
106
|
+
return response;
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
[BaseServiceCommands.DeleteMany]: {
|
|
110
|
+
params: {
|
|
111
|
+
criteria: 'object',
|
|
112
|
+
},
|
|
113
|
+
handler: async (ctx) => {
|
|
114
|
+
const { criteria } = ctx.params;
|
|
115
|
+
const response = await service.delete(criteria);
|
|
116
|
+
if (events.includes(BaseServiceCommands.DeleteMany)) {
|
|
117
|
+
await broker?.emit(`${name}.on${upperFirst(BaseServiceCommands.DeleteMany)}`, criteria);
|
|
118
|
+
}
|
|
119
|
+
return response;
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
});export{BaseServiceMixin2};//# sourceMappingURL=base-service-mixin-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-service-mixin-v2.js","sources":["../../src/mixins/base-service-mixin-v2.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/lib/mixins/index.d.ts
CHANGED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ServiceBroker } from 'moleculer';
|
|
2
|
+
import { FilterQuery } from 'mongoose';
|
|
3
|
+
import { CdmLogger } from '@cdm-logger/core';
|
|
4
|
+
import { GetAllArgs, IBaseService2 as IBaseService, AsDomainType, CreateType, UpdateType } from '../interfaces';
|
|
5
|
+
export declare abstract class BaseProxyService2<SchemaType> implements IBaseService<SchemaType> {
|
|
6
|
+
private readonly broker;
|
|
7
|
+
protected abstract logger?: CdmLogger.ILogger;
|
|
8
|
+
protected abstract topic: string;
|
|
9
|
+
constructor(broker: ServiceBroker, logger: CdmLogger.ILogger);
|
|
10
|
+
getByName(name: string): Promise<AsDomainType<SchemaType> | null>;
|
|
11
|
+
bulkCreate<T = CreateType<SchemaType>>(data: T[]): Promise<AsDomainType<SchemaType>[]>;
|
|
12
|
+
count(criteria?: FilterQuery<SchemaType>): Promise<number>;
|
|
13
|
+
create<T = CreateType<SchemaType>>(data: T): Promise<AsDomainType<SchemaType>>;
|
|
14
|
+
delete(id: string | FilterQuery<SchemaType>): Promise<boolean>;
|
|
15
|
+
bulkDelete(criteria: FilterQuery<SchemaType>): Promise<number>;
|
|
16
|
+
get(id?: string | FilterQuery<SchemaType>): Promise<AsDomainType<SchemaType> | null>;
|
|
17
|
+
getAll(options?: GetAllArgs<SchemaType>): Promise<AsDomainType<SchemaType>[]>;
|
|
18
|
+
getByIds(ids: string[]): Promise<AsDomainType<SchemaType>[]>;
|
|
19
|
+
getAllWithCount(options: GetAllArgs<SchemaType>): Promise<{
|
|
20
|
+
data: AsDomainType<SchemaType>[];
|
|
21
|
+
totalCount: number;
|
|
22
|
+
}>;
|
|
23
|
+
insert<T = CreateType<SchemaType>>(data: T & {
|
|
24
|
+
id?: string;
|
|
25
|
+
}, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
26
|
+
update<T = UpdateType<SchemaType>>(id: string, data: T, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
27
|
+
protected callAction<T, P = unknown>(command: string, params?: P): Promise<T>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {__decorate,__param,__metadata}from'tslib';import {injectable,inject,optional}from'inversify';import {ServiceBroker}from'moleculer';import'@cdm-logger/core';import {CommonType}from'@common-stack/core';import {BaseServiceCommands}from'common';let BaseProxyService2 = class BaseProxyService2 {
|
|
2
|
+
broker;
|
|
3
|
+
constructor(broker, logger) {
|
|
4
|
+
this.broker = broker;
|
|
5
|
+
}
|
|
6
|
+
getByName(name) {
|
|
7
|
+
return this.callAction(BaseServiceCommands.GetByName, { name });
|
|
8
|
+
}
|
|
9
|
+
bulkCreate(data) {
|
|
10
|
+
return this.callAction(BaseServiceCommands.BulkCreate, { data });
|
|
11
|
+
}
|
|
12
|
+
count(criteria) {
|
|
13
|
+
return this.callAction(BaseServiceCommands.Count, { criteria });
|
|
14
|
+
}
|
|
15
|
+
create(data) {
|
|
16
|
+
return this.callAction(BaseServiceCommands.Create, { data });
|
|
17
|
+
}
|
|
18
|
+
delete(id) {
|
|
19
|
+
return this.callAction(BaseServiceCommands.Delete, { id });
|
|
20
|
+
}
|
|
21
|
+
bulkDelete(criteria) {
|
|
22
|
+
return this.callAction(BaseServiceCommands.BulkDelete, { criteria });
|
|
23
|
+
}
|
|
24
|
+
get(id) {
|
|
25
|
+
return this.callAction(BaseServiceCommands.Get, { id });
|
|
26
|
+
}
|
|
27
|
+
getAll(options) {
|
|
28
|
+
return this.callAction(BaseServiceCommands.GetAll, options);
|
|
29
|
+
}
|
|
30
|
+
getByIds(ids) {
|
|
31
|
+
return this.callAction(BaseServiceCommands.GetByIds, { ids });
|
|
32
|
+
}
|
|
33
|
+
getAllWithCount(options) {
|
|
34
|
+
return this.callAction(BaseServiceCommands.GetAllWithCount, options);
|
|
35
|
+
}
|
|
36
|
+
insert(data, overwrite) {
|
|
37
|
+
return this.callAction(BaseServiceCommands.Insert, { data, overwrite });
|
|
38
|
+
}
|
|
39
|
+
update(id, data, overwrite) {
|
|
40
|
+
return this.callAction(BaseServiceCommands.Update, { id, data, overwrite });
|
|
41
|
+
}
|
|
42
|
+
async callAction(command, params) {
|
|
43
|
+
return this.broker.call(`${this.topic}.${command}`, params);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
BaseProxyService2 = __decorate([
|
|
47
|
+
injectable(),
|
|
48
|
+
__param(0, inject(CommonType.MOLECULER_BROKER)),
|
|
49
|
+
__param(1, inject(CommonType.LOGGER)),
|
|
50
|
+
__param(1, optional()),
|
|
51
|
+
__metadata("design:paramtypes", [ServiceBroker, Object])
|
|
52
|
+
], BaseProxyService2);export{BaseProxyService2};//# sourceMappingURL=base-proxy-service-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-proxy-service-v2.js","sources":["../../src/services/base-proxy-service-v2.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FilterQuery } from 'mongoose';
|
|
2
|
+
import { GetAllArgs, IBaseRepository2 as IBaseRepository, IBaseService2 as IBaseService, AsDomainType, CreateType, UpdateType } from '../interfaces';
|
|
3
|
+
export declare class BaseService2<SchemaType> implements IBaseService<SchemaType> {
|
|
4
|
+
protected repository: IBaseRepository<SchemaType>;
|
|
5
|
+
constructor(repository: IBaseRepository<SchemaType>);
|
|
6
|
+
getAllWithCount(options: GetAllArgs<SchemaType>): Promise<{
|
|
7
|
+
data: AsDomainType<SchemaType>[];
|
|
8
|
+
totalCount: number;
|
|
9
|
+
}>;
|
|
10
|
+
count(conditions?: FilterQuery<SchemaType>): Promise<number>;
|
|
11
|
+
get(conditions: string | FilterQuery<SchemaType>): Promise<AsDomainType<SchemaType> | null>;
|
|
12
|
+
getByName(name: string): Promise<AsDomainType<SchemaType> | null>;
|
|
13
|
+
getAll(options: GetAllArgs<SchemaType>): Promise<AsDomainType<SchemaType>[]>;
|
|
14
|
+
getByIds(ids: string[]): Promise<AsDomainType<SchemaType>[]>;
|
|
15
|
+
create<T = CreateType<SchemaType>>(data: T): Promise<AsDomainType<SchemaType>>;
|
|
16
|
+
bulkCreate<T = CreateType<SchemaType>>(data: T[]): Promise<AsDomainType<SchemaType>[]>;
|
|
17
|
+
update<T = UpdateType<SchemaType>>(id: string, data: T, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
18
|
+
insert<T = CreateType<SchemaType>>(data: T & {
|
|
19
|
+
id?: string;
|
|
20
|
+
}, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
21
|
+
delete(id: string | FilterQuery<SchemaType>): Promise<boolean>;
|
|
22
|
+
bulkDelete(criteria: FilterQuery<SchemaType>): Promise<number>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import {__decorate,__metadata}from'tslib';import {injectable}from'inversify';let BaseService2 = class BaseService2 {
|
|
2
|
+
repository;
|
|
3
|
+
constructor(repository) {
|
|
4
|
+
this.repository = repository;
|
|
5
|
+
}
|
|
6
|
+
async getAllWithCount(options) {
|
|
7
|
+
return this.repository.getAllWithCount(options);
|
|
8
|
+
}
|
|
9
|
+
count(conditions) {
|
|
10
|
+
return this.repository.count(conditions);
|
|
11
|
+
}
|
|
12
|
+
get(conditions) {
|
|
13
|
+
if (typeof conditions === 'string') {
|
|
14
|
+
return this.repository.get({ id: conditions });
|
|
15
|
+
}
|
|
16
|
+
return this.repository.get(conditions);
|
|
17
|
+
}
|
|
18
|
+
getByName(name) {
|
|
19
|
+
return this.repository.get({ name });
|
|
20
|
+
}
|
|
21
|
+
getAll(options) {
|
|
22
|
+
return this.repository.getAll(options);
|
|
23
|
+
}
|
|
24
|
+
getByIds(ids) {
|
|
25
|
+
return this.repository.bulkGet(ids);
|
|
26
|
+
}
|
|
27
|
+
create(data) {
|
|
28
|
+
return this.repository.create(data);
|
|
29
|
+
}
|
|
30
|
+
bulkCreate(data) {
|
|
31
|
+
return this.repository.bulkCreate(data);
|
|
32
|
+
}
|
|
33
|
+
async update(id, data, overwrite = false) {
|
|
34
|
+
return this.repository.update({ id }, data, { overwrite });
|
|
35
|
+
}
|
|
36
|
+
async insert(data, overwrite = true) {
|
|
37
|
+
const { id, ...rest } = data;
|
|
38
|
+
if (id) {
|
|
39
|
+
try {
|
|
40
|
+
const existing = await this.repository.get({ id });
|
|
41
|
+
if (existing) {
|
|
42
|
+
return this.update(id, rest, overwrite);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
// If not found, continue to create
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return this.create(rest);
|
|
50
|
+
}
|
|
51
|
+
delete(id) {
|
|
52
|
+
if (typeof id === 'string') {
|
|
53
|
+
return this.repository.delete({ id });
|
|
54
|
+
}
|
|
55
|
+
return this.repository.delete(id);
|
|
56
|
+
}
|
|
57
|
+
bulkDelete(criteria) {
|
|
58
|
+
return this.repository.bulkDelete(criteria);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
BaseService2 = __decorate([
|
|
62
|
+
injectable(),
|
|
63
|
+
__metadata("design:paramtypes", [Object])
|
|
64
|
+
], BaseService2);export{BaseService2};//# sourceMappingURL=base-service-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-service-v2.js","sources":["../../src/services/base-service-v2.ts"],"sourcesContent":[null],"names":[],"mappings":"6EAgBa,IAAA,YAAY,GAAlB,MAAM,YAAY,CAAA;AACC,IAAA,UAAA,CAAA;AAAtB,IAAA,WAAA,CAAsB,UAAuC,EAAA;QAAvC,IAAU,CAAA,UAAA,GAAV,UAAU,CAA6B;KAAI;IAEjE,MAAM,eAAe,CACjB,OAA+B,EAAA;QAE/B,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;KACnD;AAED,IAAA,KAAK,CAAC,UAAoC,EAAA;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAC5C;AAED,IAAA,GAAG,CAAC,UAA4C,EAAA;AAC5C,QAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAA6B,CAAC,CAAC;SAC7E;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAC1C;AAED,IAAA,SAAS,CAAC,IAAY,EAAA;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAS,CAAC,CAAC;KAC/C;AAED,IAAA,MAAM,CAAC,OAA+B,EAAA;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC1C;AAED,IAAA,QAAQ,CAAC,GAAa,EAAA;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KACvC;AAED,IAAA,MAAM,CAA6B,IAAO,EAAA;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACvC;AAED,IAAA,UAAU,CAA6B,IAAS,EAAA;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAC3C;IAED,MAAM,MAAM,CACR,EAAU,EACV,IAAO,EACP,SAAS,GAAG,KAAK,EAAA;AAEjB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAS,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;KACrE;AAED,IAAA,MAAM,MAAM,CACR,IAAyB,EACzB,SAAS,GAAG,IAAI,EAAA;QAEhB,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAE7B,IAAI,EAAE,EAAE;AACJ,YAAA,IAAI;AACA,gBAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAS,CAAC,CAAC;gBAC1D,IAAI,QAAQ,EAAE;oBACV,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAW,EAAE,SAAS,CAAC,CAAC;iBAClD;aACJ;YAAC,OAAO,KAAK,EAAE;;aAEf;SACJ;AAED,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAS,CAAC,CAAC;KACjC;AAED,IAAA,MAAM,CAAC,EAAoC,EAAA;AACvC,QAAA,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;YACxB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAS,CAAC,CAAC;SAChD;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACrC;AAED,IAAA,UAAU,CAAC,QAAiC,EAAA;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;KAC/C;EACJ;AA9EY,YAAY,GAAA,UAAA,CAAA;AADxB,IAAA,UAAU,EAAE;;AACA,CAAA,EAAA,YAAY,CA8ExB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
package/lib/services/index.d.ts
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Schema } from 'mongoose';
|
|
2
|
+
export declare const commonModelSchemaOptions2: {
|
|
3
|
+
timestamps: boolean;
|
|
4
|
+
toJSON: {
|
|
5
|
+
virtuals: boolean;
|
|
6
|
+
transform(doc: any, ret: any): any;
|
|
7
|
+
};
|
|
8
|
+
toObject: {
|
|
9
|
+
virtuals: boolean;
|
|
10
|
+
getters: boolean;
|
|
11
|
+
transform(doc: any, ret: any): any;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare const addIdVirtualFields2: (schema: Schema) => Schema<any, import("mongoose").Model<any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
|
|
15
|
+
[x: string]: any;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const commonModelSchemaOptions2 = {
|
|
2
|
+
timestamps: true,
|
|
3
|
+
toJSON: {
|
|
4
|
+
virtuals: true,
|
|
5
|
+
transform(doc, ret) {
|
|
6
|
+
ret.id = ret._id.toString();
|
|
7
|
+
delete ret.__v;
|
|
8
|
+
// Uncomment if you don't want _id in output
|
|
9
|
+
// delete ret._id;
|
|
10
|
+
return ret;
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
toObject: {
|
|
14
|
+
virtuals: true,
|
|
15
|
+
getters: true,
|
|
16
|
+
transform(doc, ret) {
|
|
17
|
+
ret.id = ret._id.toString();
|
|
18
|
+
delete ret.__v;
|
|
19
|
+
// Uncomment if you don't want _id in output
|
|
20
|
+
// delete ret._id;
|
|
21
|
+
return ret;
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
const addIdVirtualFields2 = (schema) => {
|
|
26
|
+
// Add id virtual getter
|
|
27
|
+
schema.virtual('id').get(function () {
|
|
28
|
+
return this._id.toHexString();
|
|
29
|
+
});
|
|
30
|
+
// Ensure virtuals are included in JSON
|
|
31
|
+
schema.set('toJSON', {
|
|
32
|
+
virtuals: true,
|
|
33
|
+
transform: (_, ret) => {
|
|
34
|
+
ret.id = ret._id.toString();
|
|
35
|
+
delete ret.__v;
|
|
36
|
+
return ret;
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
return schema;
|
|
40
|
+
};export{addIdVirtualFields2,commonModelSchemaOptions2};//# sourceMappingURL=common-options-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common-options-v2.js","sources":["../../../src/store/models/common-options-v2.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIa,MAAA,yBAAyB,GAAG;AACrC,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,QAAQ,EAAE,IAAI;QACd,SAAS,CAAC,GAAG,EAAE,GAAG,EAAA;YACd,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,GAAG,CAAC;;;AAGf,YAAA,OAAO,GAAG,CAAC;SACd;AACJ,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,OAAO,EAAE,IAAI;QACb,SAAS,CAAC,GAAG,EAAE,GAAG,EAAA;YACd,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,GAAG,CAAC;;;AAGf,YAAA,OAAO,GAAG,CAAC;SACd;AACJ,KAAA;EACH;AAEW,MAAA,mBAAmB,GAAG,CAAC,MAAc,KAAI;;AAElD,IAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAA;AACrB,QAAA,OAAQ,IAAI,CAAC,GAAW,CAAC,WAAW,EAAE,CAAC;AAC3C,KAAC,CAAC,CAAC;;AAGH,IAAA,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;AACjB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,KAAI;YAClB,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,GAAG,CAAC;AACf,YAAA,OAAO,GAAG,CAAC;SACd;AACJ,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,MAAM,CAAC;AAClB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { CdmLogger } from '@cdm-logger/core';
|
|
2
|
+
import { Connection, FilterQuery, Model, PipelineStage, UpdateQuery } from 'mongoose';
|
|
3
|
+
import { GetAllArgs, ISort, IBaseRepository2 as IBaseRepository, IMongoOptions, AsDomainType, CreateType, UpdateType } from '../../interfaces';
|
|
4
|
+
export declare class BaseRepository2<SchemaType> implements IBaseRepository<SchemaType> {
|
|
5
|
+
private modelFunc;
|
|
6
|
+
private options;
|
|
7
|
+
protected logger: CdmLogger.ILogger;
|
|
8
|
+
model: Model<SchemaType>;
|
|
9
|
+
constructor(modelFunc: (db: Connection) => Model<SchemaType>, db: Connection, logger: CdmLogger.ILogger, options?: IMongoOptions);
|
|
10
|
+
/**
|
|
11
|
+
* Transforms a document to the domain model format
|
|
12
|
+
*/
|
|
13
|
+
protected transformDocument(doc: any): AsDomainType<SchemaType> | null;
|
|
14
|
+
/**
|
|
15
|
+
* Transforms an array of documents
|
|
16
|
+
*/
|
|
17
|
+
protected transformDocuments(docs: SchemaType[]): AsDomainType<SchemaType>[];
|
|
18
|
+
/**
|
|
19
|
+
* Maps API criteria with 'id' to MongoDB criteria with '_id'
|
|
20
|
+
*/
|
|
21
|
+
private mapConditions;
|
|
22
|
+
/**
|
|
23
|
+
* Computes sort object from GetAllArgs sort parameter
|
|
24
|
+
* Handles both string-based and object-based sort specifications
|
|
25
|
+
*/
|
|
26
|
+
protected computeSort(sort: ISort | string | ISort[]): Record<string, 1 | -1>;
|
|
27
|
+
/**
|
|
28
|
+
* Prepares an aggregation pipeline with standard stages
|
|
29
|
+
* @param options Query options including filtering, sorting, pagination
|
|
30
|
+
* @param customPipeline Optional custom pipeline stages to include
|
|
31
|
+
* @returns Complete MongoDB aggregation pipeline
|
|
32
|
+
*/
|
|
33
|
+
protected preparePipeline(options: GetAllArgs<SchemaType>, customPipeline?: PipelineStage[]): PipelineStage[];
|
|
34
|
+
/**
|
|
35
|
+
* Execute an aggregation pipeline and transform the results
|
|
36
|
+
*/
|
|
37
|
+
protected aggregate(pipeline: PipelineStage[]): Promise<AsDomainType<SchemaType>[]>;
|
|
38
|
+
count(conditions?: FilterQuery<SchemaType>): Promise<number>;
|
|
39
|
+
get(conditions?: FilterQuery<SchemaType>, selectedFields?: string): Promise<AsDomainType<SchemaType> | null>;
|
|
40
|
+
find(conditions: Partial<FilterQuery<SchemaType>>, selectedFields?: string): Promise<AsDomainType<SchemaType> | null>;
|
|
41
|
+
getAll(options: GetAllArgs<SchemaType>): Promise<AsDomainType<SchemaType>[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Get all documents using aggregation pipeline
|
|
44
|
+
*/
|
|
45
|
+
getAllWithPipeline(options: GetAllArgs<SchemaType>, customPipeline?: PipelineStage[]): Promise<AsDomainType<SchemaType>[]>;
|
|
46
|
+
getAllWithCount(options: GetAllArgs<SchemaType>): Promise<{
|
|
47
|
+
data: AsDomainType<SchemaType>[];
|
|
48
|
+
totalCount: number;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* Get all documents with count using aggregation pipeline
|
|
52
|
+
*/
|
|
53
|
+
getAllWithCountAndPipeline(options: GetAllArgs<SchemaType>, customPipeline?: PipelineStage[]): Promise<{
|
|
54
|
+
data: AsDomainType<SchemaType>[];
|
|
55
|
+
totalCount: number;
|
|
56
|
+
}>;
|
|
57
|
+
create<T = CreateType<SchemaType>>(data: T): Promise<AsDomainType<SchemaType>>;
|
|
58
|
+
bulkCreate<T = CreateType<SchemaType>>(data: T[]): Promise<AsDomainType<SchemaType>[]>;
|
|
59
|
+
upsert<T = UpdateType<SchemaType>>(conditions: FilterQuery<SchemaType>, update: T, options?: Record<string, unknown>): Promise<AsDomainType<SchemaType>>;
|
|
60
|
+
update<T = UpdateType<SchemaType>>(criteria: FilterQuery<SchemaType>, update: T | UpdateQuery<SchemaType>, options?: Record<string, unknown>): Promise<AsDomainType<SchemaType>>;
|
|
61
|
+
bulkUpdate<T = UpdateType<SchemaType>>(criteria: FilterQuery<SchemaType>, update: T | UpdateQuery<SchemaType>, options?: Record<string, unknown>): Promise<AsDomainType<SchemaType>[]>;
|
|
62
|
+
delete(criteria: FilterQuery<SchemaType>): Promise<boolean>;
|
|
63
|
+
bulkDelete(criteria: FilterQuery<SchemaType>): Promise<number>;
|
|
64
|
+
bulkGet(ids: string[], selectedFields?: string): Promise<AsDomainType<SchemaType>[]>;
|
|
65
|
+
}
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import {__decorate,__param,__metadata}from'tslib';import {isObject}from'lodash-es';import'@cdm-logger/core';import {Connection,Types}from'mongoose';import {injectable,unmanaged}from'inversify';import {PAGINATION_OPTIONS}from'../../interfaces/get-all-args.js';var BaseRepository2_1;
|
|
2
|
+
let BaseRepository2 = BaseRepository2_1 = class BaseRepository2 {
|
|
3
|
+
modelFunc;
|
|
4
|
+
options;
|
|
5
|
+
logger;
|
|
6
|
+
model;
|
|
7
|
+
constructor(modelFunc, db, logger, options) {
|
|
8
|
+
this.modelFunc = modelFunc;
|
|
9
|
+
this.model = modelFunc(db);
|
|
10
|
+
this.options = options;
|
|
11
|
+
this.logger = logger.child({ className: BaseRepository2_1.name });
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Transforms a document to the domain model format
|
|
15
|
+
*/
|
|
16
|
+
transformDocument(doc) {
|
|
17
|
+
if (!doc)
|
|
18
|
+
return null;
|
|
19
|
+
// If it's already a plain object (not a Mongoose document)
|
|
20
|
+
if (!doc.toObject) {
|
|
21
|
+
// Ensure id exists if _id is present
|
|
22
|
+
if (doc._id && !doc.id) {
|
|
23
|
+
doc.id = typeof doc._id === 'object' && doc._id.toString ? doc._id.toString() : doc._id;
|
|
24
|
+
}
|
|
25
|
+
return doc;
|
|
26
|
+
}
|
|
27
|
+
// For Mongoose documents, use the built-in toObject transformation
|
|
28
|
+
return doc.toObject();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Transforms an array of documents
|
|
32
|
+
*/
|
|
33
|
+
transformDocuments(docs) {
|
|
34
|
+
if (!docs || !Array.isArray(docs))
|
|
35
|
+
return [];
|
|
36
|
+
return docs.map((doc) => this.transformDocument(doc)).filter(Boolean);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Maps API criteria with 'id' to MongoDB criteria with '_id'
|
|
40
|
+
*/
|
|
41
|
+
mapConditions(conditions) {
|
|
42
|
+
if (!conditions)
|
|
43
|
+
return {};
|
|
44
|
+
const { id, ...remaining } = conditions;
|
|
45
|
+
if (!id)
|
|
46
|
+
return remaining;
|
|
47
|
+
// Handle custom _id that might not be an ObjectId
|
|
48
|
+
let _id;
|
|
49
|
+
if (Types.ObjectId.isValid(id)) {
|
|
50
|
+
_id = new Types.ObjectId(id);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
_id = id; // Use the id as-is if it's not a valid ObjectId
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
_id,
|
|
57
|
+
...remaining,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Computes sort object from GetAllArgs sort parameter
|
|
62
|
+
* Handles both string-based and object-based sort specifications
|
|
63
|
+
*/
|
|
64
|
+
computeSort(sort) {
|
|
65
|
+
// Default sort by createdAt descending if available, otherwise empty sort
|
|
66
|
+
if (!sort) {
|
|
67
|
+
return { createdAt: -1 };
|
|
68
|
+
}
|
|
69
|
+
// Handle object-based sort { key: 'fieldName', value: 'asc'|'desc' }
|
|
70
|
+
if (isObject(sort) && 'key' in sort) {
|
|
71
|
+
return {
|
|
72
|
+
[sort.key]: sort.value?.toLowerCase() === 'asc' ? 1 : -1,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
// Handle string-based sort 'fieldName:asc' or 'fieldName:desc'
|
|
76
|
+
if (typeof sort === 'string') {
|
|
77
|
+
const [field, direction] = sort.split(':');
|
|
78
|
+
if (field) {
|
|
79
|
+
return {
|
|
80
|
+
[field]: direction?.toLowerCase() === 'asc' ? 1 : -1,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Handle array of sort specifications
|
|
85
|
+
if (Array.isArray(sort)) {
|
|
86
|
+
return sort.reduce((acc, sortItem) => {
|
|
87
|
+
if (isObject(sortItem) && sortItem.key) {
|
|
88
|
+
acc[sortItem.key] = sortItem.value?.toLowerCase() === 'asc' ? 1 : -1;
|
|
89
|
+
}
|
|
90
|
+
return acc;
|
|
91
|
+
}, {});
|
|
92
|
+
}
|
|
93
|
+
// Fallback to default sort
|
|
94
|
+
return { createdAt: -1 };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Prepares an aggregation pipeline with standard stages
|
|
98
|
+
* @param options Query options including filtering, sorting, pagination
|
|
99
|
+
* @param customPipeline Optional custom pipeline stages to include
|
|
100
|
+
* @returns Complete MongoDB aggregation pipeline
|
|
101
|
+
*/
|
|
102
|
+
preparePipeline(options, customPipeline = []) {
|
|
103
|
+
const { criteria, sort, limit, skip } = options;
|
|
104
|
+
const pipeline = [];
|
|
105
|
+
// Match stage (filtering)
|
|
106
|
+
if (criteria) {
|
|
107
|
+
pipeline.push({
|
|
108
|
+
$match: this.mapConditions(criteria),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
// Add custom pipeline stages
|
|
112
|
+
if (customPipeline.length > 0) {
|
|
113
|
+
pipeline.push(...customPipeline);
|
|
114
|
+
}
|
|
115
|
+
// Sort stage
|
|
116
|
+
const sortBy = this.computeSort(sort);
|
|
117
|
+
if (Object.keys(sortBy).length > 0) {
|
|
118
|
+
pipeline.push({ $sort: sortBy });
|
|
119
|
+
}
|
|
120
|
+
// Pagination stages
|
|
121
|
+
if (skip !== undefined) {
|
|
122
|
+
pipeline.push({ $skip: skip || PAGINATION_OPTIONS.skip });
|
|
123
|
+
}
|
|
124
|
+
if (limit !== undefined) {
|
|
125
|
+
pipeline.push({ $limit: limit || PAGINATION_OPTIONS.limit });
|
|
126
|
+
}
|
|
127
|
+
return pipeline;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Execute an aggregation pipeline and transform the results
|
|
131
|
+
*/
|
|
132
|
+
async aggregate(pipeline) {
|
|
133
|
+
try {
|
|
134
|
+
const results = await this.model.aggregate(pipeline).exec();
|
|
135
|
+
return this.transformDocuments(results);
|
|
136
|
+
}
|
|
137
|
+
catch (e) {
|
|
138
|
+
this.logger.error(e, 'Error executing aggregation pipeline: %j', pipeline);
|
|
139
|
+
throw e;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
async count(conditions) {
|
|
143
|
+
return this.model.count(this.mapConditions(conditions)).exec();
|
|
144
|
+
}
|
|
145
|
+
async get(conditions, selectedFields) {
|
|
146
|
+
try {
|
|
147
|
+
const response = await this.model.findOne(this.mapConditions(conditions), selectedFields).lean().exec();
|
|
148
|
+
if (!response)
|
|
149
|
+
return null;
|
|
150
|
+
// Ensure id exists
|
|
151
|
+
if (response && response._id && !response.id) {
|
|
152
|
+
response.id = response._id.toString();
|
|
153
|
+
}
|
|
154
|
+
return response;
|
|
155
|
+
}
|
|
156
|
+
catch (e) {
|
|
157
|
+
this.logger.error(e, 'Unable to retrieve Model with criteria [%j]', conditions);
|
|
158
|
+
throw e;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
async find(conditions, selectedFields) {
|
|
162
|
+
try {
|
|
163
|
+
const response = await this.model.findOne(conditions, selectedFields).lean().exec();
|
|
164
|
+
if (!response)
|
|
165
|
+
return null;
|
|
166
|
+
// Ensure id exists
|
|
167
|
+
if (response && response._id && !response.id) {
|
|
168
|
+
response.id = response._id.toString();
|
|
169
|
+
}
|
|
170
|
+
return response;
|
|
171
|
+
}
|
|
172
|
+
catch (e) {
|
|
173
|
+
this.logger.error(e, 'Unable to retrieve Model with criteria [%j]', conditions);
|
|
174
|
+
throw e;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
async getAll(options) {
|
|
178
|
+
try {
|
|
179
|
+
const { criteria, selectedFields, sort, limit, skip } = options;
|
|
180
|
+
const mappedCriteria = this.mapConditions(criteria);
|
|
181
|
+
const sortBy = this.computeSort(sort);
|
|
182
|
+
const response = await this.model
|
|
183
|
+
.find(mappedCriteria, selectedFields)
|
|
184
|
+
.sort(sortBy)
|
|
185
|
+
.limit(limit || PAGINATION_OPTIONS.limit)
|
|
186
|
+
.skip(skip || PAGINATION_OPTIONS.skip)
|
|
187
|
+
.lean()
|
|
188
|
+
.exec();
|
|
189
|
+
// Ensure id exists for each document
|
|
190
|
+
return response.map((doc) => {
|
|
191
|
+
if (doc._id && !doc.id) {
|
|
192
|
+
doc.id = doc._id.toString();
|
|
193
|
+
}
|
|
194
|
+
return doc;
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
catch (e) {
|
|
198
|
+
this.logger.error(e, 'Unable to retrieve Model with criteria [%j]', options);
|
|
199
|
+
throw e;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get all documents using aggregation pipeline
|
|
204
|
+
*/
|
|
205
|
+
async getAllWithPipeline(options, customPipeline = []) {
|
|
206
|
+
try {
|
|
207
|
+
const pipeline = this.preparePipeline(options, customPipeline);
|
|
208
|
+
return this.aggregate(pipeline);
|
|
209
|
+
}
|
|
210
|
+
catch (e) {
|
|
211
|
+
this.logger.error(e, 'Unable to retrieve Model with pipeline [%j]', customPipeline);
|
|
212
|
+
throw e;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
async getAllWithCount(options) {
|
|
216
|
+
const data = await this.getAll(options);
|
|
217
|
+
const totalCount = await this.count(options.criteria);
|
|
218
|
+
return { totalCount, data };
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Get all documents with count using aggregation pipeline
|
|
222
|
+
*/
|
|
223
|
+
async getAllWithCountAndPipeline(options, customPipeline = []) {
|
|
224
|
+
// Clone options to avoid modifying the original
|
|
225
|
+
const countOptions = { ...options };
|
|
226
|
+
// Remove pagination for count
|
|
227
|
+
delete countOptions.limit;
|
|
228
|
+
delete countOptions.skip;
|
|
229
|
+
// Prepare count pipeline (without pagination)
|
|
230
|
+
const countPipeline = this.preparePipeline(countOptions, customPipeline);
|
|
231
|
+
countPipeline.push({ $count: 'total' });
|
|
232
|
+
// Execute both queries in parallel
|
|
233
|
+
const [data, countResult] = await Promise.all([
|
|
234
|
+
this.getAllWithPipeline(options, customPipeline),
|
|
235
|
+
this.model.aggregate(countPipeline).exec(),
|
|
236
|
+
]);
|
|
237
|
+
const totalCount = countResult?.[0]?.total || 0;
|
|
238
|
+
return { data, totalCount };
|
|
239
|
+
}
|
|
240
|
+
async create(data) {
|
|
241
|
+
try {
|
|
242
|
+
// Handle custom _id if provided in the data
|
|
243
|
+
const createData = { ...data };
|
|
244
|
+
// If id is provided but _id is not, map id to _id
|
|
245
|
+
if (createData.id && !createData._id) {
|
|
246
|
+
createData._id = Types.ObjectId.isValid(createData.id)
|
|
247
|
+
? new Types.ObjectId(createData.id)
|
|
248
|
+
: createData.id;
|
|
249
|
+
delete createData.id; // Remove id to avoid conflicts
|
|
250
|
+
}
|
|
251
|
+
const response = await this.model.create(createData);
|
|
252
|
+
return this.transformDocument(response);
|
|
253
|
+
}
|
|
254
|
+
catch (e) {
|
|
255
|
+
this.logger.error(e, 'Unable to create Model with data [%j]', data);
|
|
256
|
+
throw e;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
async bulkCreate(data) {
|
|
260
|
+
try {
|
|
261
|
+
const response = await this.model.insertMany(data, {
|
|
262
|
+
lean: true,
|
|
263
|
+
ordered: true,
|
|
264
|
+
});
|
|
265
|
+
// Ensure id exists for each document
|
|
266
|
+
return response.map((doc) => {
|
|
267
|
+
if (doc._id && !doc.id) {
|
|
268
|
+
doc.id = doc._id.toString();
|
|
269
|
+
}
|
|
270
|
+
return doc;
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
catch (e) {
|
|
274
|
+
this.logger.error(e, 'Unable to bulk create due to error [%s]', e.message);
|
|
275
|
+
throw e;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
async upsert(conditions, update, options = {}) {
|
|
279
|
+
return this.update(conditions, update, {
|
|
280
|
+
upsert: true,
|
|
281
|
+
...options,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
async update(criteria, update, options = {}) {
|
|
285
|
+
try {
|
|
286
|
+
const mappedCriteria = this.mapConditions(criteria);
|
|
287
|
+
const mergedOptions = {
|
|
288
|
+
new: true,
|
|
289
|
+
useFindAndModify: false,
|
|
290
|
+
...options,
|
|
291
|
+
};
|
|
292
|
+
const { id } = criteria;
|
|
293
|
+
let response;
|
|
294
|
+
if (id) {
|
|
295
|
+
response = await this.model.findByIdAndUpdate(id, update, mergedOptions).exec();
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
response = await this.model.findOneAndUpdate(mappedCriteria, update, mergedOptions).exec();
|
|
299
|
+
}
|
|
300
|
+
return this.transformDocument(response);
|
|
301
|
+
}
|
|
302
|
+
catch (e) {
|
|
303
|
+
this.logger.error(e, 'Unable to Update with criteria [%j] and data [%j]', criteria, update);
|
|
304
|
+
throw e;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
async bulkUpdate(criteria, update, options = {}) {
|
|
308
|
+
try {
|
|
309
|
+
const mappedCriteria = this.mapConditions(criteria);
|
|
310
|
+
await this.model.updateMany(mappedCriteria, update, options);
|
|
311
|
+
// Fetch the updated documents
|
|
312
|
+
const response = await this.model.find(mappedCriteria).lean().exec();
|
|
313
|
+
// Ensure id exists for each document
|
|
314
|
+
return response.map((doc) => {
|
|
315
|
+
if (doc._id && !doc.id) {
|
|
316
|
+
doc.id = doc._id.toString();
|
|
317
|
+
}
|
|
318
|
+
return doc;
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
catch (e) {
|
|
322
|
+
this.logger.error(e, 'Unable to Bulk Update with criteria [%j] and data [%j]', criteria, update);
|
|
323
|
+
throw e;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
async delete(criteria) {
|
|
327
|
+
try {
|
|
328
|
+
const mappedCriteria = this.mapConditions(criteria);
|
|
329
|
+
let deleted;
|
|
330
|
+
if (criteria?.id) {
|
|
331
|
+
deleted = await this.model.findByIdAndDelete(criteria.id);
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
deleted = await this.model.findOneAndDelete(mappedCriteria);
|
|
335
|
+
}
|
|
336
|
+
return !!deleted;
|
|
337
|
+
}
|
|
338
|
+
catch (e) {
|
|
339
|
+
this.logger.error(e, 'Unable to delete the model with criteria [%j]', criteria);
|
|
340
|
+
throw e;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
async bulkDelete(criteria) {
|
|
344
|
+
try {
|
|
345
|
+
const mappedCriteria = this.mapConditions(criteria);
|
|
346
|
+
const deleted = await this.model.deleteMany(mappedCriteria);
|
|
347
|
+
return deleted?.deletedCount || 0;
|
|
348
|
+
}
|
|
349
|
+
catch (e) {
|
|
350
|
+
this.logger.error(e, 'Unable to delete the model with criteria [%j]', criteria);
|
|
351
|
+
throw e;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
async bulkGet(ids, selectedFields) {
|
|
355
|
+
try {
|
|
356
|
+
// Create a query that handles both ObjectId and string IDs
|
|
357
|
+
const query = { _id: { $in: [] } };
|
|
358
|
+
// Process each ID
|
|
359
|
+
ids.forEach((id) => {
|
|
360
|
+
if (Types.ObjectId.isValid(id)) {
|
|
361
|
+
query._id.$in.push(new Types.ObjectId(id));
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
query._id.$in.push(id); // Add as string
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
const results = await this.model.find(query).select(selectedFields).lean().exec();
|
|
368
|
+
// Ensure id exists for each document
|
|
369
|
+
return results.map((doc) => {
|
|
370
|
+
if (doc._id && !doc.id) {
|
|
371
|
+
doc.id = doc._id.toString();
|
|
372
|
+
}
|
|
373
|
+
return doc;
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
catch (e) {
|
|
377
|
+
this.logger.error(e, 'Unable to retrieve Model with criteria [%j]', ids);
|
|
378
|
+
throw e;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
BaseRepository2 = BaseRepository2_1 = __decorate([
|
|
383
|
+
injectable(),
|
|
384
|
+
__param(0, unmanaged()),
|
|
385
|
+
__param(1, unmanaged()),
|
|
386
|
+
__param(2, unmanaged()),
|
|
387
|
+
__param(3, unmanaged()),
|
|
388
|
+
__metadata("design:paramtypes", [Function, Connection, Object, Object])
|
|
389
|
+
], BaseRepository2);export{BaseRepository2};//# sourceMappingURL=base-repository-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-repository-v2.js","sources":["../../../src/store/repositories/base-repository-v2.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {__decorate,__param,__metadata}from'tslib';import {isObject}from'lodash-es';import'@cdm-logger/core';import {Connection,Types}from'mongoose';import {injectable,unmanaged}from'inversify';import {PAGINATION_OPTIONS}from'../../interfaces/
|
|
1
|
+
import {__decorate,__param,__metadata}from'tslib';import {isObject}from'lodash-es';import'@cdm-logger/core';import {Connection,Types}from'mongoose';import {injectable,unmanaged}from'inversify';import {PAGINATION_OPTIONS}from'../../interfaces/get-all-args.js';var BaseRepository_1;
|
|
2
2
|
let BaseRepository = BaseRepository_1 = class BaseRepository {
|
|
3
3
|
modelFunc;
|
|
4
4
|
options;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@common-stack/store-mongo",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.1-alpha.5",
|
|
4
4
|
"description": "Sample core for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -24,9 +24,10 @@
|
|
|
24
24
|
"watch": "npm run build:lib:watch"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@common-stack/core": "7.0.4-alpha.
|
|
27
|
+
"@common-stack/core": "7.0.4-alpha.17"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
+
"common": "7.1.1-alpha.4",
|
|
30
31
|
"moleculer": "^0.14.33",
|
|
31
32
|
"mongoose": "^6.12.8"
|
|
32
33
|
},
|
|
@@ -38,7 +39,7 @@
|
|
|
38
39
|
"publishConfig": {
|
|
39
40
|
"access": "public"
|
|
40
41
|
},
|
|
41
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "3976681bf92acdd17287156670aba7c0f0cfa733",
|
|
42
43
|
"typescript": {
|
|
43
44
|
"definition": "lib/index.d.ts"
|
|
44
45
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-dataloader.js","sources":["../../src/dataloaders/bulk-dataloader.ts"],"sourcesContent":[null],"names":[],"mappings":"kIAKO,IAAM,cAAc,GAApB,MAAM,cAAyC,SAAQ,UAA4B,CAAA;AAC5C,IAAA,OAAA,CAAA;AAA1C,IAAA,WAAA,CAA0C,OAAwB,EAAA;AAC9D,QAAA,KAAK,CAAC,OAAO,GAAa,KAAI;YAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,SAAC,CAAC,CAAC;QAJmC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;KAKjE;IAED,WAAW,GAAG,IAAI,UAAU,CAA4B,OAAO,OAAO,KAAI;AACtE,QAAA,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;AACrD,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,YAAA,GAAG,IAAI;AACP,YAAA,QAAQ,EAAE;gBACN,GAAG,IAAI,CAAC,QAAQ;AAChB,gBAAA,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5B,aAAA;AACJ,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KACtB,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;YACpB,IAAI,OAAO,UAAU,KAAK,UAAU;AAAE,gBAAA,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtE,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;SAC9D,CAAC,CACL,CAAC;AACN,KAAC,CAAC,CAAC;EACN;AAzBY,cAAc,GAAA,UAAA,CAAA;AAD1B,IAAA,UAAU,EAAE;IAEI,OAAA,CAAA,CAAA,EAAA,SAAS,EAAE,CAAA;;AADf,CAAA,EAAA,cAAc,CAyB1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-repository.js","sources":["../../src/interfaces/base-repository.ts"],"sourcesContent":[null],"names":[],"mappings":"IAGY,mBAGX;AAHD,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU,CAAA;AACV,IAAA,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACZ,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA"}
|