@foxiko/nest-common 0.2.1 → 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"}
@@ -3,6 +3,7 @@ import { EventEmitter2 } from '@nestjs/event-emitter';
3
3
  export declare abstract class BaseService<T extends AnyEntity> {
4
4
  protected readonly repository: EntityRepository<T>;
5
5
  protected readonly eventEmitter?: EventEmitter2;
6
+ slug: string;
6
7
  protected constructor(repository: EntityRepository<T>, eventEmitter?: EventEmitter2);
7
8
  findAll(where: FilterQuery<T>): Promise<import("@mikro-orm/core").Loaded<T, never, "*", never>[]>;
8
9
  query(where: FilterQuery<T>, options: FindOptions<T>): Promise<[import("@mikro-orm/core").Loaded<T, never, import("@mikro-orm/core").PopulatePath.ALL, never>[], number]>;
@@ -11,5 +12,5 @@ export declare abstract class BaseService<T extends AnyEntity> {
11
12
  delete(where: FilterQuery<T>): Promise<number>;
12
13
  create(data: RequiredEntityData<T>): Promise<T>;
13
14
  createMany(data: RequiredEntityData<T>[]): Promise<T[]>;
14
- 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>>;
15
16
  }
@@ -2,10 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseService = void 0;
4
4
  const entity_name_util_1 = require("./utils/entity-name.util");
5
+ const base_event_1 = require("./base.event");
5
6
  class BaseService {
6
7
  constructor(repository, eventEmitter) {
7
8
  this.repository = repository;
8
9
  this.eventEmitter = eventEmitter;
10
+ this.slug = entity_name_util_1.EntityNameUtil.classToSlug(this.repository.getEntityName());
9
11
  }
10
12
  async findAll(where) {
11
13
  return this.repository.find(where);
@@ -20,31 +22,32 @@ class BaseService {
20
22
  return this.repository.findOne(where);
21
23
  }
22
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));
23
28
  return this.repository.nativeDelete(where);
24
29
  }
25
30
  async create(data) {
31
+ var _a;
26
32
  const entity = this.repository.create(data);
27
33
  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 });
34
+ (_a = this.eventEmitter) === null || _a === void 0 ? void 0 : _a.emit(`${this.slug}.created`, new base_event_1.CRUDEventCreate(entity));
30
35
  return entity;
31
36
  }
32
37
  async createMany(data) {
38
+ var _a;
33
39
  const entities = data.map(d => this.repository.create(d));
34
40
  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
- }
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));
40
43
  }
41
44
  return entities;
42
45
  }
43
46
  async update(where, data) {
44
47
  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
+ 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));
48
51
  return result;
49
52
  }
50
53
  }
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"base.service.js","sourceRoot":"","sources":["../../src/common/base.service.ts"],"names":[],"mappings":"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"}
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.1",
3
+ "version": "0.2.2",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "typings": "./build/index.d.ts",