@foxiko/nest-common 0.2.0 → 0.2.2

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.
@@ -0,0 +1,12 @@
1
+ export declare class CRUDEventUpdate<T> {
2
+ readonly entity: T;
3
+ constructor(entity: T);
4
+ }
5
+ export declare class CRUDEventCreate<T> {
6
+ readonly entity: T;
7
+ constructor(entity: T);
8
+ }
9
+ export declare class CRUDEventDelete<T> {
10
+ readonly entity: T;
11
+ constructor(entity: T);
12
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CRUDEventDelete = exports.CRUDEventCreate = exports.CRUDEventUpdate = void 0;
4
+ class CRUDEventUpdate {
5
+ constructor(entity) {
6
+ this.entity = entity;
7
+ }
8
+ }
9
+ exports.CRUDEventUpdate = CRUDEventUpdate;
10
+ class CRUDEventCreate {
11
+ constructor(entity) {
12
+ this.entity = entity;
13
+ }
14
+ }
15
+ exports.CRUDEventCreate = CRUDEventCreate;
16
+ class CRUDEventDelete {
17
+ constructor(entity) {
18
+ this.entity = entity;
19
+ }
20
+ }
21
+ exports.CRUDEventDelete = CRUDEventDelete;
22
+ //# sourceMappingURL=base.event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.event.js","sourceRoot":"","sources":["../../src/common/base.event.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;IACxB,YAA4B,MAAS;QAAT,WAAM,GAAN,MAAM,CAAG;IAAG,CAAC;CAC5C;AAFD,0CAEC;AAED,MAAa,eAAe;IACxB,YAA4B,MAAS;QAAT,WAAM,GAAN,MAAM,CAAG;IAAG,CAAC;CAC5C;AAFD,0CAEC;AAED,MAAa,eAAe;IACxB,YAA4B,MAAS;QAAT,WAAM,GAAN,MAAM,CAAG;IAAG,CAAC;CAC5C;AAFD,0CAEC"}
@@ -1,7 +1,10 @@
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
+ slug: string;
7
+ protected constructor(repository: EntityRepository<T>, eventEmitter?: EventEmitter2);
5
8
  findAll(where: FilterQuery<T>): Promise<import("@mikro-orm/core").Loaded<T, never, "*", never>[]>;
6
9
  query(where: FilterQuery<T>, options: FindOptions<T>): Promise<[import("@mikro-orm/core").Loaded<T, never, import("@mikro-orm/core").PopulatePath.ALL, never>[], number]>;
7
10
  count(where: FilterQuery<T>, options?: FindOptions<T>): Promise<number>;
@@ -9,5 +12,5 @@ export declare abstract class BaseService<T extends AnyEntity> {
9
12
  delete(where: FilterQuery<T>): Promise<number>;
10
13
  create(data: RequiredEntityData<T>): Promise<T>;
11
14
  createMany(data: RequiredEntityData<T>[]): Promise<T[]>;
12
- update(where: FilterQuery<T>, data: EntityData<T>): Promise<number>;
15
+ update(where: FilterQuery<T>, data: EntityData<T>): Promise<import("@mikro-orm/core").Loaded<T, never, "*", never>>;
13
16
  }
@@ -1,9 +1,13 @@
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");
5
+ const base_event_1 = require("./base.event");
4
6
  class BaseService {
5
- constructor(repository) {
7
+ constructor(repository, eventEmitter) {
6
8
  this.repository = repository;
9
+ this.eventEmitter = eventEmitter;
10
+ this.slug = entity_name_util_1.EntityNameUtil.classToSlug(this.repository.getEntityName());
7
11
  }
8
12
  async findAll(where) {
9
13
  return this.repository.find(where);
@@ -18,20 +22,33 @@ class BaseService {
18
22
  return this.repository.findOne(where);
19
23
  }
20
24
  async delete(where) {
25
+ var _a;
26
+ const read = await this.findOne(where);
27
+ (_a = this.eventEmitter) === null || _a === void 0 ? void 0 : _a.emit(`${this.slug}.deleted`, new base_event_1.CRUDEventDelete(read));
21
28
  return this.repository.nativeDelete(where);
22
29
  }
23
30
  async create(data) {
31
+ var _a;
24
32
  const entity = this.repository.create(data);
25
- await this.repository.getEntityManager().persistAndFlush(entity);
33
+ await this.repository.getEntityManager().persist(data).flush();
34
+ (_a = this.eventEmitter) === null || _a === void 0 ? void 0 : _a.emit(`${this.slug}.created`, new base_event_1.CRUDEventCreate(entity));
26
35
  return entity;
27
36
  }
28
37
  async createMany(data) {
38
+ var _a;
29
39
  const entities = data.map(d => this.repository.create(d));
30
- await this.repository.getEntityManager().persistAndFlush(entities);
40
+ await this.repository.getEntityManager().persist(entities).flush();
41
+ for (const entity of entities) {
42
+ (_a = this.eventEmitter) === null || _a === void 0 ? void 0 : _a.emit(`${this.slug}.created`, new base_event_1.CRUDEventCreate(entity));
43
+ }
31
44
  return entities;
32
45
  }
33
46
  async update(where, data) {
34
- return this.repository.nativeUpdate(where, data);
47
+ var _a;
48
+ await this.repository.nativeUpdate(where, data);
49
+ const result = await this.findOne(where);
50
+ (_a = this.eventEmitter) === null || _a === void 0 ? void 0 : _a.emit(`${this.slug}.updated`, new base_event_1.CRUDEventUpdate(result));
51
+ return result;
35
52
  }
36
53
  }
37
54
  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":"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"}
@@ -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/build/index.d.ts CHANGED
@@ -5,4 +5,5 @@ export * from './common/decorators/inject-entity.decorator';
5
5
  export * from './common/base.service';
6
6
  export * from './common/dto/pagination.dto';
7
7
  export * from './common/utils/entity-name.util';
8
+ export * from './common/base.event';
8
9
  export * from './common/constants';
package/build/index.js CHANGED
@@ -21,5 +21,6 @@ __exportStar(require("./common/decorators/inject-entity.decorator"), exports);
21
21
  __exportStar(require("./common/base.service"), exports);
22
22
  __exportStar(require("./common/dto/pagination.dto"), exports);
23
23
  __exportStar(require("./common/utils/entity-name.util"), exports);
24
+ __exportStar(require("./common/base.event"), exports);
24
25
  __exportStar(require("./common/constants"), exports);
25
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,yEAAuD;AACvD,yEAAuD;AACvD,8EAA4D;AAC5D,wDAAsC;AACtC,8DAA4C;AAC5C,kEAAgD;AAChD,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,yEAAuD;AACvD,yEAAuD;AACvD,8EAA4D;AAC5D,wDAAsC;AACtC,8DAA4C;AAC5C,kEAAgD;AAChD,sDAAoC;AACpC,qDAAmC"}
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.2",
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
  }