@foxiko/nest-common 0.2.0 → 0.2.1

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.
@@ -1,7 +1,9 @@
1
1
  import { EntityRepository, FilterQuery, FindOptions, RequiredEntityData, EntityData, AnyEntity } from '@mikro-orm/core';
2
+ import { EventEmitter2 } from '@nestjs/event-emitter';
2
3
  export declare abstract class BaseService<T extends AnyEntity> {
3
4
  protected readonly repository: EntityRepository<T>;
4
- protected constructor(repository: EntityRepository<T>);
5
+ protected readonly eventEmitter?: EventEmitter2;
6
+ protected constructor(repository: EntityRepository<T>, eventEmitter?: EventEmitter2);
5
7
  findAll(where: FilterQuery<T>): Promise<import("@mikro-orm/core").Loaded<T, never, "*", never>[]>;
6
8
  query(where: FilterQuery<T>, options: FindOptions<T>): Promise<[import("@mikro-orm/core").Loaded<T, never, import("@mikro-orm/core").PopulatePath.ALL, never>[], number]>;
7
9
  count(where: FilterQuery<T>, options?: FindOptions<T>): Promise<number>;
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseService = void 0;
4
+ const entity_name_util_1 = require("./utils/entity-name.util");
4
5
  class BaseService {
5
- constructor(repository) {
6
+ constructor(repository, eventEmitter) {
6
7
  this.repository = repository;
8
+ this.eventEmitter = eventEmitter;
7
9
  }
8
10
  async findAll(where) {
9
11
  return this.repository.find(where);
@@ -22,16 +24,28 @@ class BaseService {
22
24
  }
23
25
  async create(data) {
24
26
  const entity = this.repository.create(data);
25
- await this.repository.getEntityManager().persistAndFlush(entity);
27
+ await this.repository.getEntityManager().persist(data).flush();
28
+ const name = entity_name_util_1.EntityNameUtil.classToSlug(data[0].constructor.prototype);
29
+ this.eventEmitter.emit(`${name}.created`, { entity });
26
30
  return entity;
27
31
  }
28
32
  async createMany(data) {
29
33
  const entities = data.map(d => this.repository.create(d));
30
- await this.repository.getEntityManager().persistAndFlush(entities);
34
+ await this.repository.getEntityManager().persist(entities).flush();
35
+ const name = entity_name_util_1.EntityNameUtil.classToSlug(data[0].constructor.prototype);
36
+ if (this.eventEmitter) {
37
+ for (const entity of entities) {
38
+ this.eventEmitter.emit(`${name}.created`, { entity });
39
+ }
40
+ }
31
41
  return entities;
32
42
  }
33
43
  async update(where, data) {
34
- return this.repository.nativeUpdate(where, data);
44
+ var _a;
45
+ const result = await this.repository.nativeUpdate(where, data);
46
+ const name = entity_name_util_1.EntityNameUtil.classToSlug(data.constructor.prototype);
47
+ (_a = this.eventEmitter) === null || _a === void 0 ? void 0 : _a.emit(`${name}.updated`, { entity: result });
48
+ return result;
35
49
  }
36
50
  }
37
51
  exports.BaseService = BaseService;
@@ -1 +1 @@
1
- {"version":3,"file":"base.service.js","sourceRoot":"","sources":["../../src/common/base.service.ts"],"names":[],"mappings":";;;AAEA,MAAsB,WAAW;IAC/B,YAAyC,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAAI,CAAC;IAE7E,KAAK,CAAC,OAAO,CAAC,KAAqB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAqB,EAAE,OAAuB;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAqB,EAAE,OAAwB;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAqB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAqB;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAA2B;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAA6B;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACnE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAqB,EAAE,IAAmB;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;CAEF;AAvCD,kCAuCC"}
1
+ {"version":3,"file":"base.service.js","sourceRoot":"","sources":["../../src/common/base.service.ts"],"names":[],"mappings":";;;AAEA,+DAA0D;AAE1D,MAAsB,WAAW;IAC/B,YACqB,UAA+B,EAC/B,YAA4B;QAD5B,eAAU,GAAV,UAAU,CAAqB;QAC/B,iBAAY,GAAZ,YAAY,CAAgB;IAC7C,CAAC;IAEL,KAAK,CAAC,OAAO,CAAC,KAAqB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAqB,EAAE,OAAuB;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAqB,EAAE,OAAwB;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAqB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAqB;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAA2B;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,iCAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAA6B;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG,iCAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAqB,EAAE,IAAmB;;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,iCAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACpE,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI,CAAC,GAAG,IAAI,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;CAEF;AArDD,kCAqDC"}
@@ -6,5 +6,5 @@ export declare class CrudEntityInterceptor implements NestInterceptor {
6
6
  constructor(em: EntityManager);
7
7
  intercept(context: ExecutionContext, next: CallHandler): Promise<Observable<any>>;
8
8
  }
9
- export declare function InjectCrudEntity(): MethodDecorator & ClassDecorator;
9
+ export declare function InjectCrudEntity(): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
10
10
  export declare const FetchedEntity: (...dataOrPipes: unknown[]) => ParameterDecorator;
@@ -92,7 +92,7 @@ exports.CrudEntityInterceptor = CrudEntityInterceptor = __decorate([
92
92
  __metadata("design:paramtypes", [core_1.EntityManager])
93
93
  ], CrudEntityInterceptor);
94
94
  function InjectCrudEntity() {
95
- return (0, common_1.UseInterceptors)(CrudEntityInterceptor);
95
+ return (0, common_1.applyDecorators)((0, common_1.UseInterceptors)(CrudEntityInterceptor));
96
96
  }
97
97
  exports.FetchedEntity = (0, common_1.createParamDecorator)((data, ctx) => {
98
98
  const request = ctx.switchToHttp().getRequest();
@@ -1 +1 @@
1
- {"version":3,"file":"inject-entity.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/inject-entity.decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inject-entity.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/inject-entity.decorator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export declare class EntityNameUtil {
2
2
  static routeToName(route: string): string;
3
3
  static classToName(entityClass: any): string;
4
+ static classToSlug(entityClass: any): string;
4
5
  static getName(route?: string, entityClass?: any): string;
5
6
  static pluralize(name: string): string;
6
7
  static capitalize(name: string): string;
@@ -15,6 +15,14 @@ class EntityNameUtil {
15
15
  .trim();
16
16
  return name.replace(/\s+entity$/, '').trim();
17
17
  }
18
+ static classToSlug(entityClass) {
19
+ if (!entityClass || !entityClass.name) {
20
+ return '';
21
+ }
22
+ return entityClass.name
23
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
24
+ .toLowerCase();
25
+ }
18
26
  static getName(route, entityClass) {
19
27
  if (route) {
20
28
  return this.routeToName(route);
@@ -1 +1 @@
1
- {"version":3,"file":"entity-name.util.js","sourceRoot":"","sources":["../../../src/common/utils/entity-name.util.ts"],"names":[],"mappings":";;;AAGA,MAAa,cAAc;IAIzB,MAAM,CAAC,WAAW,CAAC,KAAa;QAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IAKD,MAAM,CAAC,WAAW,CAAC,WAAgB;QACjC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;QAID,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI;aAC1B,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;aAC1B,WAAW,EAAE;aACb,IAAI,EAAE,CAAC;QAGV,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAKD,MAAM,CAAC,OAAO,CAAC,KAAc,EAAE,WAAiB;QAC9C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAKD,MAAM,CAAC,SAAS,CAAC,IAAY;QAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjH,OAAO,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,GAAG,GAAG,CAAC;IACpB,CAAC;IAKD,MAAM,CAAC,UAAU,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC;CACF;AA3DD,wCA2DC"}
1
+ {"version":3,"file":"entity-name.util.js","sourceRoot":"","sources":["../../../src/common/utils/entity-name.util.ts"],"names":[],"mappings":";;;AAGA,MAAa,cAAc;IAIzB,MAAM,CAAC,WAAW,CAAC,KAAa;QAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IAKD,MAAM,CAAC,WAAW,CAAC,WAAgB;QACjC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;QAID,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI;aAC1B,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;aAC1B,WAAW,EAAE;aACb,IAAI,EAAE,CAAC;QAGV,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAKD,MAAM,CAAC,WAAW,CAAC,WAAgB;QACjC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,WAAW,CAAC,IAAI;aACpB,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;aACnC,WAAW,EAAE,CAAC;IACnB,CAAC;IAKD,MAAM,CAAC,OAAO,CAAC,KAAc,EAAE,WAAiB;QAC9C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAKD,MAAM,CAAC,SAAS,CAAC,IAAY;QAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjH,OAAO,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,GAAG,GAAG,CAAC;IACpB,CAAC;IAKD,MAAM,CAAC,UAAU,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC;CACF;AAxED,wCAwEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foxiko/nest-common",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "typings": "./build/index.d.ts",
@@ -11,6 +11,7 @@
11
11
  "@nestjs/common": "^11.0.0",
12
12
  "@nestjs/core": "^11.0.0",
13
13
  "@nestjs/swagger": "^11.2.3",
14
+ "@nestjs/event-emitter": "^3.0.1",
14
15
  "class-transformer": "^0.5.1",
15
16
  "class-validator": "^0.14.2",
16
17
  "express": "^5.2.1"
@@ -22,14 +23,14 @@
22
23
  "author": "",
23
24
  "license": "ISC",
24
25
  "devDependencies": {
26
+ "@mikro-orm/core": "^6.6.2",
27
+ "@mikro-orm/mongodb": "^6.6.2",
28
+ "@mikro-orm/nestjs": "^6.1.1",
25
29
  "@types/express": "^5.0.6",
26
30
  "@types/json2csv": "^5.0.7",
27
31
  "typescript": "^5.9.3"
28
32
  },
29
33
  "dependencies": {
30
- "@mikro-orm/core": "^6.6.2",
31
- "@mikro-orm/mongodb": "^6.6.2",
32
- "@mikro-orm/nestjs": "^6.1.1",
33
34
  "json2csv": "^6.0.0-alpha.2",
34
35
  "mongodb": "^6.21.0"
35
36
  }