@common-stack/store-mongo 7.0.4-alpha.6 → 7.1.1-alpha.4

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 (34) hide show
  1. package/lib/dataloaders/bulk-dataloader.d.ts +4 -6
  2. package/lib/dataloaders/bulk-dataloader.js +7 -5
  3. package/lib/dataloaders/bulk-dataloader.js.map +1 -1
  4. package/lib/dataloaders/bulk-dataloader.test.d.ts +1 -0
  5. package/lib/graphql/schema/base-services.graphql +1 -0
  6. package/lib/index.js +1 -1
  7. package/lib/interfaces/base-repository.d.ts +25 -19
  8. package/lib/interfaces/base-service.d.ts +18 -19
  9. package/lib/interfaces/dataloader.d.ts +17 -0
  10. package/lib/interfaces/get-all-args.d.ts +20 -1
  11. package/lib/interfaces/{base-repository.js → get-all-args.js} +1 -1
  12. package/lib/interfaces/get-all-args.js.map +1 -0
  13. package/lib/interfaces/index.d.ts +1 -1
  14. package/lib/mixins/base-service-mixin.d.ts +1 -1
  15. package/lib/mixins/base-service-mixin.js +2 -2
  16. package/lib/mixins/base-service-mixin.js.map +1 -1
  17. package/lib/services/base-proxy-service.d.ts +20 -17
  18. package/lib/services/base-proxy-service.js +3 -0
  19. package/lib/services/base-proxy-service.js.map +1 -1
  20. package/lib/services/base-service.d.ts +19 -18
  21. package/lib/services/base-service.js +13 -11
  22. package/lib/services/base-service.js.map +1 -1
  23. package/lib/services/base-service.test.d.ts +1 -0
  24. package/lib/store/models/common-options.d.ts +3 -2
  25. package/lib/store/models/common-options.js +23 -3
  26. package/lib/store/models/common-options.js.map +1 -1
  27. package/lib/store/repositories/base-repository.d.ts +58 -22
  28. package/lib/store/repositories/base-repository.js +277 -135
  29. package/lib/store/repositories/base-repository.js.map +1 -1
  30. package/lib/store/repositories/base-repository.test.d.ts +1 -0
  31. package/lib/store/repositories/custom-id-repository.test.d.ts +1 -0
  32. package/package.json +4 -3
  33. package/lib/interfaces/base-repository.js.map +0 -1
  34. package/lib/interfaces/dataloaders.d.ts +0 -10
@@ -1,9 +1,7 @@
1
1
  import DataLoader from 'dataloader';
2
- import { DataLoaderOptions, IBaseService, IDataLoader } from '../interfaces';
3
- export declare class BulkDataLoader<T extends {
4
- id: string;
5
- }> extends DataLoader<string, T | null> implements IDataLoader<T> {
2
+ import { DataLoaderOptions, IBaseService, IDataLoader, AsDomainType } from '../interfaces';
3
+ export declare class BulkDataLoader<SchemaType> extends DataLoader<string, AsDomainType<SchemaType> | null> implements IDataLoader<SchemaType> {
6
4
  private readonly service;
7
- constructor(service: IBaseService<T>);
8
- withOptions: DataLoader<DataLoaderOptions<T>, T[], DataLoaderOptions<T>>;
5
+ constructor(service: IBaseService<SchemaType>);
6
+ withOptions: DataLoader<DataLoaderOptions<SchemaType>, AsDomainType<SchemaType>[], DataLoaderOptions<SchemaType>>;
9
7
  }
@@ -10,17 +10,19 @@ 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].toString() === option.id.toString();
25
+ return item[searchKey]?.toString() === option.id.toString();
24
26
  }));
25
27
  });
26
28
  };
@@ -1 +1 @@
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
+ {"version":3,"file":"bulk-dataloader.js","sources":["../../src/dataloaders/bulk-dataloader.ts"],"sourcesContent":[null],"names":[],"mappings":"kIAMO,IAAM,cAAc,GAApB,MAAM,cACT,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,cAAc,GAAA,UAAA,CAAA;AAD1B,IAAA,UAAU,EAAE;IAKI,OAAA,CAAA,CAAA,EAAA,SAAS,EAAE,CAAA;;AAJf,CAAA,EAAA,cAAc,CAiC1B"}
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -9,6 +9,7 @@ enum BaseServiceCommands {
9
9
  bulkCreate
10
10
  update
11
11
  delete
12
+ BulkDelete
12
13
  deleteMany
13
14
  getAllWithCount
14
15
  }
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- export{PAGINATION_OPTIONS}from'./interfaces/base-repository.js';export{generateMongo}from'./helpers/mongoose-connection.js';export{BaseService}from'./services/base-service.js';export{BaseProxyService}from'./services/base-proxy-service.js';export{addIdVirtualFields,commonModeSchemaOptions}from'./store/models/common-options.js';export{BaseRepository}from'./store/repositories/base-repository.js';export{BulkDataLoader}from'./dataloaders/bulk-dataloader.js';export{BaseServiceMixin}from'./mixins/base-service-mixin.js';//# sourceMappingURL=index.js.map
1
+ export{PAGINATION_OPTIONS}from'./interfaces/get-all-args.js';export{generateMongo}from'./helpers/mongoose-connection.js';export{BaseService}from'./services/base-service.js';export{BaseProxyService}from'./services/base-proxy-service.js';export{addIdVirtualFields,commonModelSchemaOptions}from'./store/models/common-options.js';export{BaseRepository}from'./store/repositories/base-repository.js';export{BulkDataLoader}from'./dataloaders/bulk-dataloader.js';export{BaseServiceMixin}from'./mixins/base-service-mixin.js';//# sourceMappingURL=index.js.map
@@ -1,20 +1,26 @@
1
- import { Document, FilterQuery, Model, UpdateQuery } from 'mongoose';
2
- import { GetAllArgs } from './get-all-args';
3
- export declare enum PAGINATION_OPTIONS {
4
- limit = 10,
5
- skip = 0
6
- }
7
- export interface IBaseRepository<T, D = Document<T>> {
8
- model: Model<D>;
9
- count(conditions?: FilterQuery<D>): Promise<number>;
10
- getAll(options: GetAllArgs<D>): Promise<T[]>;
11
- get(conditions?: FilterQuery<D>, selectedFields?: string): Promise<T>;
12
- create<I>(data: I): Promise<T>;
13
- upsert<I>(conditions: FilterQuery<D>, update: I, options: any): Promise<T>;
14
- update<I>(criteria: FilterQuery<D>, update: UpdateQuery<D>, options?: any): Promise<T>;
15
- bulkUpdate<I>(criteria: FilterQuery<D>, update: UpdateQuery<D>, options?: any): Promise<T[]>;
16
- delete(criteria: FilterQuery<D>): Promise<boolean>;
17
- bulkGet(ids: string[], selectedFields?: string): Promise<T[]>;
18
- bulkCreate<I>(data: I[]): Promise<T[]>;
19
- bulkDelete(criteria: FilterQuery<D>): Promise<number>;
1
+ import { FilterQuery, Model, PipelineStage, UpdateQuery } from 'mongoose';
2
+ import { AsDomainType, CreateType, GetAllArgs, UpdateType } from './get-all-args';
3
+ export interface IBaseRepository<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>;
20
26
  }
@@ -1,22 +1,21 @@
1
- import { FilterQuery, Document } from 'mongoose';
2
- import { GetAllArgs } from './get-all-args';
3
- export interface IBaseService<T, C = Omit<T, 'id'>, U = C> {
4
- count(conditions?: FilterQuery<Document<T>>): Promise<number>;
5
- get(id: string): Promise<T>;
6
- get(conditions?: string | FilterQuery<Document<T>>): Promise<T>;
7
- getByName(name: string): Promise<T>;
8
- getAll(options?: GetAllArgs<Document<T>>): Promise<T[]>;
9
- getByIds(ids: string[]): Promise<T[]>;
10
- create(data: C): Promise<T>;
11
- insert(data: (C | U) & {
12
- id?: string;
13
- }, overwrite?: boolean): Promise<T>;
14
- bulkCreate(data: C[]): Promise<T[]>;
15
- update(id: string, data: U, overwrite?: boolean): Promise<T>;
16
- delete(id: string): Promise<boolean>;
17
- delete(conditions: string | FilterQuery<Document<T>>): Promise<boolean>;
18
- getAllWithCount(options: GetAllArgs<Document<T>>): Promise<{
19
- data: T[];
1
+ import { FilterQuery } from 'mongoose';
2
+ import { GetAllArgs, AsDomainType, CreateType, UpdateType } from './get-all-args';
3
+ export interface IBaseService<SchemaType> {
4
+ getAllWithCount(options: GetAllArgs<SchemaType>): Promise<{
5
+ data: AsDomainType<SchemaType>[];
20
6
  totalCount: number;
21
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>;
22
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 DataLoaderOptions<SchemaType> {
5
+ id: string;
6
+ searchKey: keyof AsDomainType<SchemaType> | string;
7
+ comparator?: (option: DataLoaderOptions<SchemaType>, item: AsDomainType<SchemaType>) => boolean;
8
+ criteria?: FilterQuery<SchemaType>;
9
+ [key: string]: any;
10
+ }
11
+ export interface IDataLoader<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<DataLoaderOptions<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=base-repository.js.map
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"}
@@ -2,4 +2,4 @@ export * from './mongoose-settings';
2
2
  export * from './get-all-args';
3
3
  export * from './base-repository';
4
4
  export * from './base-service';
5
- export * from './dataloaders';
5
+ export * from './dataloader';
@@ -1,4 +1,4 @@
1
1
  import { ServiceBroker, ServiceSchema } from 'moleculer';
2
2
  import { BaseServiceCommands } from 'common';
3
3
  import { IBaseService } from '../interfaces';
4
- export declare const BaseServiceMixin: <T, C, U>(service: IBaseService<T, C, U>, broker?: ServiceBroker, name?: string, events?: BaseServiceCommands[]) => Partial<ServiceSchema>;
4
+ export declare const BaseServiceMixin: <T>(service: IBaseService<T>, broker?: ServiceBroker, name?: string, events?: BaseServiceCommands[]) => Partial<ServiceSchema>;
@@ -12,7 +12,7 @@ const BaseServiceMixin = (service, broker, name, events = defaultEvents) => ({
12
12
  params: {
13
13
  id: 'string',
14
14
  },
15
- handler: async (ctx) => service.get(ctx.params.id),
15
+ handler: async (ctx) => service.get({ id: ctx.params.id }),
16
16
  },
17
17
  [BaseServiceCommands.Count]: {
18
18
  params: {
@@ -50,7 +50,7 @@ const BaseServiceMixin = (service, broker, name, events = defaultEvents) => ({
50
50
  },
51
51
  handler: async (ctx) => {
52
52
  const { id } = ctx.params;
53
- const response = await service.delete(id);
53
+ const response = await service.delete({ id });
54
54
  if (events.includes(BaseServiceCommands.Delete)) {
55
55
  await broker?.emit(`${name}.on${upperFirst(BaseServiceCommands.Delete)}`, { id });
56
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-service-mixin.js","sources":["../../src/mixins/base-service-mixin.ts"],"sourcesContent":[null],"names":[],"mappings":"4EAMA,MAAM,aAAa,GAAG;AAClB,IAAA,mBAAmB,CAAC,MAAM;AAC1B,IAAA,mBAAmB,CAAC,UAAU;AAC9B,IAAA,mBAAmB,CAAC,MAAM;AAC1B,IAAA,mBAAmB,CAAC,MAAM;AAC1B,IAAA,mBAAmB,CAAC,UAAU;CACjC,CAAC;AAEW,MAAA,gBAAgB,GAAG,CAC5B,OAA8B,EAC9B,MAAsB,EACtB,IAAa,EACb,MAAM,GAAG,aAAa,MACI;AAC1B,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,OAAO,EAAE;AACL,QAAA,CAAC,mBAAmB,CAAC,GAAG,GAAG;AACvB,YAAA,MAAM,EAAE;AACJ,gBAAA,EAAE,EAAE,QAAQ;AACf,aAAA;AACD,YAAA,OAAO,EAAE,OAAO,GAA4B,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9E,SAAA;AACD,QAAA,CAAC,mBAAmB,CAAC,KAAK,GAAG;AACzB,YAAA,MAAM,EAAE;gBACJ,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC/C,aAAA;AACD,YAAA,OAAO,EAAE,OAAO,GAAqD,KACjE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;AACzC,SAAA;AACD,QAAA,CAAC,mBAAmB,CAAC,UAAU,GAAG;AAC9B,YAAA,MAAM,EAAE;gBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC3C,aAAA;AACD,YAAA,OAAO,EAAE,OAAO,GAA+B,KAAI;AAC/C,gBAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3D,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;AACjD,oBAAA,MAAM,MAAM,EAAE,IAAI,CAAC,CAAA,EAAG,IAAI,CAAM,GAAA,EAAA,UAAU,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;iBAC3F;AACD,gBAAA,OAAO,QAAQ,CAAC;aACnB;AACJ,SAAA;AACD,QAAA,CAAC,mBAAmB,CAAC,MAAM,GAAG;AAC1B,YAAA,MAAM,EAAE;AACJ,gBAAA,IAAI,EAAE,QAAQ;AACjB,aAAA;AACD,YAAA,OAAO,EAAE,OAAO,GAA6B,KAAI;AAC7C,gBAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvD,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAC7C,oBAAA,MAAM,MAAM,EAAE,IAAI,CAAC,CAAA,EAAG,IAAI,CAAM,GAAA,EAAA,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;iBACvF;AACD,gBAAA,OAAO,QAAQ,CAAC;aACnB;AACJ,SAAA;AACD,QAAA,CAAC,mBAAmB,CAAC,MAAM,GAAG;AAC1B,YAAA,MAAM,EAAE;AACJ,gBAAA,EAAE,EAAE,QAAQ;AACf,aAAA;AACD,YAAA,OAAO,EAAE,OAAO,GAAuD,KAAI;AACvE,gBAAA,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC1B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAW,CAAC,CAAC;gBACnD,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAC7C,oBAAA,MAAM,MAAM,EAAE,IAAI,CAAC,CAAG,EAAA,IAAI,MAAM,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAE,CAAA,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;iBACrF;AACD,gBAAA,OAAO,QAAQ,CAAC;aACnB;AACJ,SAAA;AACD,QAAA,CAAC,mBAAmB,CAAC,MAAM,GAAG;AAC1B,YAAA,MAAM,EAAE;AACJ,gBAAA,QAAQ,EAAE,iBAAiB;AAC3B,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,KAAK,EAAE,iBAAiB;AACxB,gBAAA,cAAc,EAAE,iBAAiB;AACpC,aAAA;AACD,YAAA,OAAO,EAAE,OAAO,GAAqC,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AACvF,SAAA;AACD,QAAA,CAAC,mBAAmB,CAAC,eAAe,GAAG;AACnC,YAAA,MAAM,EAAE;AACJ,gBAAA,QAAQ,EAAE,iBAAiB;AAC3B,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,KAAK,EAAE,iBAAiB;AACxB,gBAAA,cAAc,EAAE,iBAAiB;AACpC,aAAA;AACD,YAAA,OAAO,EAAE,OAAO,GAAqC,KAAK,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;AAChG,SAAA;AACD,QAAA,CAAC,mBAAmB,CAAC,MAAM,GAAG;AAC1B,YAAA,MAAM,EAAE;AACJ,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,SAAS,EAAE,kBAAkB;AAChC,aAAA;AACD,YAAA,OAAO,EAAE,OAAO,GAAmE,KAAI;AACnF,gBAAA,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;AAC5B,gBAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAClE,gBAAA,MAAM,MAAM,GAAI,IAAuB,EAAE,EAAE,GAAG,mBAAmB,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtG,gBAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACzB,oBAAA,MAAM,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAA,GAAA,EAAM,UAAU,CAAC,MAAM,CAAC,CAAA,CAAE,EAAE,QAAQ,CAAC,CAAC;iBACnE;AACD,gBAAA,OAAO,QAAQ,CAAC;aACnB;AACJ,SAAA;AACD,QAAA,CAAC,mBAAmB,CAAC,MAAM,GAAG;AAC1B,YAAA,MAAM,EAAE;AACJ,gBAAA,EAAE,EAAE,QAAQ;AACZ,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,SAAS,EAAE,kBAAkB;AAChC,aAAA;AACD,YAAA,OAAO,EAAE,OAAO,GAA6D,KAAI;gBAC7E,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC5F,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAC7C,oBAAA,MAAM,MAAM,EAAE,IAAI,CAAC,CAAA,EAAG,IAAI,CAAM,GAAA,EAAA,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;iBACvF;AACD,gBAAA,OAAO,QAAQ,CAAC;aACnB;AACJ,SAAA;AACD,QAAA,CAAC,mBAAmB,CAAC,UAAU,GAAG;AAC9B,YAAA,MAAM,EAAE;AACJ,gBAAA,QAAQ,EAAE,QAAQ;AACrB,aAAA;AACD,YAAA,OAAO,EAAE,OAAO,GAA0B,KAAI;AAC1C,gBAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;gBAChC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;AACjD,oBAAA,MAAM,MAAM,EAAE,IAAI,CAAC,CAAA,EAAG,IAAI,CAAM,GAAA,EAAA,UAAU,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;iBAC3F;AACD,gBAAA,OAAO,QAAQ,CAAC;aACnB;AACJ,SAAA;AACJ,KAAA;AACJ,CAAA"}
1
+ {"version":3,"file":"base-service-mixin.js","sources":["../../src/mixins/base-service-mixin.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,25 +1,28 @@
1
1
  import { ServiceBroker } from 'moleculer';
2
2
  import { FilterQuery } from 'mongoose';
3
3
  import { CdmLogger } from '@cdm-logger/core';
4
- import { GetAllArgs, IBaseService } from '../interfaces';
5
- type MethodsNames<T, C, U> = keyof IBaseService<T, C, U>;
6
- type MethodResponse<T, C, U, M extends MethodsNames<T, C, U>> = ReturnType<IBaseService<T, C, U>[M]>;
7
- export declare abstract class BaseProxyService<T, C = T, U = T> implements IBaseService<T, C, U> {
4
+ import { GetAllArgs, IBaseService, AsDomainType, CreateType, UpdateType } from '../interfaces';
5
+ export declare abstract class BaseProxyService<SchemaType> implements IBaseService<SchemaType> {
8
6
  private readonly broker;
9
7
  protected abstract logger?: CdmLogger.ILogger;
10
- protected abstract topic: any;
8
+ protected abstract topic: string;
11
9
  constructor(broker: ServiceBroker, logger: CdmLogger.ILogger);
12
- getByName(name: string): Promise<T>;
13
- bulkCreate(data: C[]): MethodResponse<T, C, U, 'bulkCreate'>;
14
- count(criteria?: FilterQuery<Document>): MethodResponse<T, C, U, 'count'>;
15
- create(data: C): MethodResponse<T, C, U, 'create'>;
16
- delete(id: string | FilterQuery<Document>): MethodResponse<T, C, U, 'delete'>;
17
- get(id?: string | FilterQuery<Document>): MethodResponse<T, C, U, 'get'>;
18
- getAll(options?: GetAllArgs<Document>): MethodResponse<T, C, U, 'getAll'>;
19
- getByIds(ids: string[]): Promise<T[]>;
20
- getAllWithCount(options: GetAllArgs<Document>): MethodResponse<T, C, U, 'getAllWithCount'>;
21
- insert(data: C | U, overwrite?: boolean): MethodResponse<T, C, U, 'insert'>;
22
- update(id: string, data: U, overwrite?: boolean): MethodResponse<T, C, U, 'update'>;
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>>;
23
27
  protected callAction<T, P = unknown>(command: string, params?: P): Promise<T>;
24
28
  }
25
- export {};
@@ -18,6 +18,9 @@ import {__decorate,__param,__metadata}from'tslib';import {injectable,inject,opti
18
18
  delete(id) {
19
19
  return this.callAction(BaseServiceCommands.Delete, { id });
20
20
  }
21
+ bulkDelete(criteria) {
22
+ return this.callAction(BaseServiceCommands.BulkDelete, { criteria });
23
+ }
21
24
  get(id) {
22
25
  return this.callAction(BaseServiceCommands.Get, { id });
23
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-proxy-service.js","sources":["../../src/services/base-proxy-service.ts"],"sourcesContent":[null],"names":[],"mappings":"yPAYsB,IAAA,gBAAgB,GAA/B,MAAe,gBAAgB,CAAA;AAOb,IAAA,MAAA,CAAA;IAFrB,WAEqB,CAAA,MAAqB,EAGtC,MAAyB,EAAA;QAHR,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;KAItC;AAEJ,IAAA,SAAS,CAAC,IAAY,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;KACnE;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAqB,mBAAmB,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;KACxF;AAED,IAAA,KAAK,CAAC,QAAgC,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;KACnE;AAED,IAAA,MAAM,CAAC,IAAO,EAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;KAChE;AAED,IAAA,MAAM,CAAC,EAAkC,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KAC9D;AAED,IAAA,GAAG,CAAC,EAAmC,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KAC3D;AAED,IAAA,MAAM,CAAC,OAA8B,EAAA;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/D;AAED,IAAA,QAAQ,CAAC,GAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;KACjE;AAED,IAAA,eAAe,CAAC,OAA6B,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;KACxE;IAED,MAAM,CAAC,IAAW,EAAE,SAAmB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3E;AAED,IAAA,MAAM,CAAC,EAAU,EAAE,IAAO,EAAE,SAAmB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAI,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;KAClF;AAES,IAAA,MAAM,UAAU,CAAiB,OAAe,EAAE,MAAU,EAAA;AAClE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,CAAG,EAAA,IAAI,CAAC,KAAK,IAAI,OAAO,CAAA,CAAE,EAAE,MAAM,CAAC,CAAC;KACrE;EACJ;AA5DqB,gBAAgB,GAAA,UAAA,CAAA;AADrC,IAAA,UAAU,EAAE;AAOJ,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;AAEnC,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACzB,OAAA,CAAA,CAAA,EAAA,QAAQ,EAAE,CAAA;qCAFc,aAAa,EAAA,MAAA,CAAA,CAAA;AAPxB,CAAA,EAAA,gBAAgB,CA4DrC"}
1
+ {"version":3,"file":"base-proxy-service.js","sources":["../../src/services/base-proxy-service.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,22 +1,23 @@
1
- import { Document, FilterQuery } from 'mongoose';
2
- import { GetAllArgs, IBaseRepository, IBaseService } from '../interfaces';
3
- export declare class BaseService<T, C = Omit<T, 'id'>, U = C> implements IBaseService<T, C, U> {
4
- protected repository: IBaseRepository<T>;
5
- constructor(repository: IBaseRepository<T>);
6
- getAllWithCount(options: GetAllArgs<Document<T>>): Promise<{
7
- data: T[];
1
+ import { FilterQuery } from 'mongoose';
2
+ import { GetAllArgs, IBaseRepository, IBaseService, AsDomainType, CreateType, UpdateType } from '../interfaces';
3
+ export declare class BaseService<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
8
  totalCount: number;
9
9
  }>;
10
- count(conditions?: FilterQuery<Document<T>>): Promise<number>;
11
- get(conditions: string | FilterQuery<Document<T>>): Promise<T>;
12
- getByName(name: string): Promise<T>;
13
- getAll(options: GetAllArgs<Document<T>>): Promise<T[]>;
14
- getByIds(ids: string[]): Promise<T[]>;
15
- create(data: C): Promise<T>;
16
- bulkCreate(data: C[]): Promise<T[]>;
17
- update(id: string, data: Partial<U>, overwrite?: boolean): Promise<T>;
18
- insert(data: (C | U) & {
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
19
  id?: string;
20
- }, overwrite?: boolean): Promise<T>;
21
- delete(id: string | FilterQuery<Document<T>>): Promise<boolean>;
20
+ }, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
21
+ delete(id: string | FilterQuery<SchemaType>): Promise<boolean>;
22
+ bulkDelete(criteria: FilterQuery<SchemaType>): Promise<number>;
22
23
  }
@@ -2,15 +2,9 @@ import {__decorate,__metadata}from'tslib';import {injectable}from'inversify';let
2
2
  repository;
3
3
  constructor(repository) {
4
4
  this.repository = repository;
5
- this.repository = repository;
6
5
  }
7
6
  async getAllWithCount(options) {
8
- const totalCount = await this.count(options.criteria);
9
- const data = await this.getAll(options);
10
- return {
11
- totalCount,
12
- data,
13
- };
7
+ return this.repository.getAllWithCount(options);
14
8
  }
15
9
  count(conditions) {
16
10
  return this.repository.count(conditions);
@@ -39,12 +33,17 @@ import {__decorate,__metadata}from'tslib';import {injectable}from'inversify';let
39
33
  async update(id, data, overwrite = false) {
40
34
  return this.repository.update({ id }, data, { overwrite });
41
35
  }
42
- insert(data, overwrite = true) {
36
+ async insert(data, overwrite = true) {
43
37
  const { id, ...rest } = data;
44
38
  if (id) {
45
- const existing = this.repository.get({ id });
46
- if (existing) {
47
- return this.update(id, rest, overwrite);
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
48
47
  }
49
48
  }
50
49
  return this.create(rest);
@@ -55,6 +54,9 @@ import {__decorate,__metadata}from'tslib';import {injectable}from'inversify';let
55
54
  }
56
55
  return this.repository.delete(id);
57
56
  }
57
+ bulkDelete(criteria) {
58
+ return this.repository.bulkDelete(criteria);
59
+ }
58
60
  };
59
61
  BaseService = __decorate([
60
62
  injectable(),
@@ -1 +1 @@
1
- {"version":3,"file":"base-service.js","sources":["../../src/services/base-service.ts"],"sourcesContent":[null],"names":[],"mappings":"6EAKa,IAAA,WAAW,GAAjB,MAAM,WAAW,CAAA;AACE,IAAA,UAAA,CAAA;AAAtB,IAAA,WAAA,CAAsB,UAA8B,EAAA;QAA9B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAoB;AAChD,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAChC;IAED,MAAM,eAAe,CAAC,OAAgC,EAAA;QAClD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO;YACH,UAAU;YACV,IAAI;SACP,CAAC;KACL;AAED,IAAA,KAAK,CAAC,UAAqC,EAAA;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAC5C;AAED,IAAA,GAAG,CAAC,UAA6C,EAAA;AAC7C,QAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;SAClD;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,EAAE,CAAC,CAAC;KACxC;AAED,IAAA,MAAM,CAAC,OAAgC,EAAA;QACnC,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,CAAC,IAAO,EAAA;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAI,IAAI,CAAC,CAAC;KAC1C;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAI,IAAI,CAAC,CAAC;KAC9C;IAED,MAAM,MAAM,CAAC,EAAU,EAAE,IAAgB,EAAE,SAAS,GAAG,KAAK,EAAA;AACxD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;KACjE;AAED,IAAA,MAAM,CAAC,IAA+B,EAAE,SAAS,GAAG,IAAI,EAAA;QACpD,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,EAAE,EAAE;AACJ,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI,QAAQ,EAAE;gBACV,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAS,EAAE,SAAS,CAAC,CAAC;aAChD;SACJ;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAS,CAAC,CAAC;KACjC;AAED,IAAA,MAAM,CAAC,EAAqC,EAAA;AACxC,QAAA,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;YACxB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACrC;EACJ;AAlEY,WAAW,GAAA,UAAA,CAAA;AADvB,IAAA,UAAU,EAAE;;AACA,CAAA,EAAA,WAAW,CAkEvB"}
1
+ {"version":3,"file":"base-service.js","sources":["../../src/services/base-service.ts"],"sourcesContent":[null],"names":[],"mappings":"6EASa,IAAA,WAAW,GAAjB,MAAM,WAAW,CAAA;AACE,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,WAAW,GAAA,UAAA,CAAA;AADvB,IAAA,UAAU,EAAE;;AACA,CAAA,EAAA,WAAW,CA8EvB"}
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -1,13 +1,14 @@
1
1
  import { Schema } from 'mongoose';
2
- export declare const commonModeSchemaOptions: {
2
+ export declare const commonModelSchemaOptions: {
3
3
  timestamps: boolean;
4
4
  toJSON: {
5
5
  virtuals: boolean;
6
+ transform(doc: any, ret: any): any;
6
7
  };
7
8
  toObject: {
8
9
  virtuals: boolean;
9
10
  getters: boolean;
10
- transform(doc: any, ret: any): void;
11
+ transform(doc: any, ret: any): any;
11
12
  };
12
13
  };
13
14
  export declare const addIdVirtualFields: (schema: Schema) => Schema<any, import("mongoose").Model<any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
@@ -1,20 +1,40 @@
1
- const commonModeSchemaOptions = {
1
+ const commonModelSchemaOptions = {
2
2
  timestamps: true,
3
3
  toJSON: {
4
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
+ },
5
12
  },
6
13
  toObject: {
7
14
  virtuals: true,
8
15
  getters: true,
9
16
  transform(doc, ret) {
17
+ ret.id = ret._id.toString();
10
18
  delete ret.__v;
11
- delete ret._id;
19
+ // Uncomment if you don't want _id in output
20
+ // delete ret._id;
21
+ return ret;
12
22
  },
13
23
  },
14
24
  };
15
25
  const addIdVirtualFields = (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
16
31
  schema.set('toJSON', {
17
32
  virtuals: true,
33
+ transform: (_, ret) => {
34
+ ret.id = ret._id.toString();
35
+ delete ret.__v;
36
+ return ret;
37
+ },
18
38
  });
19
39
  return schema;
20
- };export{addIdVirtualFields,commonModeSchemaOptions};//# sourceMappingURL=common-options.js.map
40
+ };export{addIdVirtualFields,commonModelSchemaOptions};//# sourceMappingURL=common-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common-options.js","sources":["../../../src/store/models/common-options.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEa,MAAA,uBAAuB,GAAG;AACnC,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,QAAQ,EAAE,IAAI;AACjB,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,OAAO,EAAE,IAAI;QACb,SAAS,CAAC,GAAG,EAAE,GAAG,EAAA;YACd,OAAO,GAAG,CAAC,GAAG,CAAC;YACf,OAAO,GAAG,CAAC,GAAG,CAAC;SAClB;AACJ,KAAA;EACH;AAEW,MAAA,kBAAkB,GAAG,CAAC,MAAc,KAAI;AACjD,IAAA,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;AACjB,QAAA,QAAQ,EAAE,IAAI;AACjB,KAAA,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAClB"}
1
+ {"version":3,"file":"common-options.js","sources":["../../../src/store/models/common-options.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIa,MAAA,wBAAwB,GAAG;AACpC,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,kBAAkB,GAAG,CAAC,MAAc,KAAI;;AAEjD,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"}