@punks/backend-entity-manager 0.0.14 → 0.0.16

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 (29) hide show
  1. package/dist/cjs/index.js +12382 -559
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/abstractions/events.d.ts +3 -0
  4. package/dist/cjs/types/platforms/nest/ioc/registry/index.d.ts +4 -0
  5. package/dist/cjs/types/platforms/nest/processors/index.d.ts +1 -2
  6. package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +3 -1
  7. package/dist/cjs/types/platforms/nest/processors/providers.d.ts +2 -0
  8. package/dist/cjs/types/platforms/nest/providers/events/index.d.ts +7 -0
  9. package/dist/cjs/types/platforms/nest/providers/index.d.ts +2 -0
  10. package/dist/cjs/types/providers/services.d.ts +4 -1
  11. package/dist/cjs/types/services/events.d.ts +3 -1
  12. package/dist/cjs/types/services/types.d.ts +9 -0
  13. package/dist/cjs/types/symbols/ioc.d.ts +6 -1
  14. package/dist/esm/index.js +12375 -560
  15. package/dist/esm/index.js.map +1 -1
  16. package/dist/esm/types/abstractions/events.d.ts +3 -0
  17. package/dist/esm/types/platforms/nest/ioc/registry/index.d.ts +4 -0
  18. package/dist/esm/types/platforms/nest/processors/index.d.ts +1 -2
  19. package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +3 -1
  20. package/dist/esm/types/platforms/nest/processors/providers.d.ts +2 -0
  21. package/dist/esm/types/platforms/nest/providers/events/index.d.ts +7 -0
  22. package/dist/esm/types/platforms/nest/providers/index.d.ts +2 -0
  23. package/dist/esm/types/providers/services.d.ts +4 -1
  24. package/dist/esm/types/services/events.d.ts +3 -1
  25. package/dist/esm/types/services/types.d.ts +9 -0
  26. package/dist/esm/types/symbols/ioc.d.ts +6 -1
  27. package/dist/index.d.ts +19 -4
  28. package/package.json +2 -1
  29. package/readme.md +1 -1
@@ -3,3 +3,6 @@ export interface IEntityEventsManager<TEntity, TEntityId> {
3
3
  processEntityUpdatedEvent(entity: TEntity): Promise<void>;
4
4
  processEntityDeletedEvent(id: TEntityId): Promise<void>;
5
5
  }
6
+ export interface IEventEmitter {
7
+ emit(event: string, ...args: any[]): Promise<void>;
8
+ }
@@ -3,9 +3,13 @@ import { EntityAuthMiddlewareProps, EntityConverterProps, EntityQueryBuilderProp
3
3
  import { EntityServiceLocator } from "../../../../providers/services";
4
4
  import { DiscoveredClassWithMeta } from "../discovery";
5
5
  import { EntityAdapterProps } from "../../decorators/adapter";
6
+ import { IEventEmitter } from "../../../../abstractions/events";
6
7
  export declare class EntityManagerRegistry {
7
8
  private readonly container;
8
9
  getContainer(): import("../../../../abstractions").IEntityManagerServiceRoot;
10
+ resisterGlobalServices({ eventEmitter, }: {
11
+ eventEmitter?: IEventEmitter;
12
+ }): Promise<void>;
9
13
  registerDiscoveredEntity(app: INestApplicationContext, { adapter, entityName, converter, queryBuilder, repository, authMiddleware, }: {
10
14
  entityName: string;
11
15
  repository: DiscoveredClassWithMeta<EntityRepositoryProps>;
@@ -1,2 +1 @@
1
- import { EntityManagerInitializer } from "./initializer";
2
- export declare const Processors: (typeof EntityManagerInitializer)[];
1
+ export { EntityManagerInitializer } from "./initializer";
@@ -1,11 +1,13 @@
1
1
  import { INestApplicationContext } from "@nestjs/common";
2
2
  import { EntityManagerRegistry } from "../../ioc/registry";
3
3
  import { CustomDiscoveryService } from "../../ioc/discovery";
4
+ import { NestEventEmitter } from "../../providers/events";
4
5
  export declare class EntityManagerInitializer {
5
6
  private readonly discover;
6
7
  private readonly registry;
8
+ private readonly eventEmitter;
7
9
  private readonly logger;
8
- constructor(discover: CustomDiscoveryService, registry: EntityManagerRegistry);
10
+ constructor(discover: CustomDiscoveryService, registry: EntityManagerRegistry, eventEmitter: NestEventEmitter);
9
11
  initialize(app: INestApplicationContext): Promise<void>;
10
12
  private discoverEntities;
11
13
  private discoverRepositories;
@@ -0,0 +1,2 @@
1
+ import { EntityManagerInitializer } from "./initializer";
2
+ export declare const Processors: (typeof EntityManagerInitializer)[];
@@ -0,0 +1,7 @@
1
+ import { EventEmitter2 } from "@nestjs/event-emitter";
2
+ import { IEventEmitter } from "../../../../abstractions/events";
3
+ export declare class NestEventEmitter implements IEventEmitter {
4
+ private readonly eventEmitter;
5
+ constructor(eventEmitter: EventEmitter2);
6
+ emit(event: string, ...args: any[]): Promise<void>;
7
+ }
@@ -0,0 +1,2 @@
1
+ import { NestEventEmitter } from "./events";
2
+ export declare const Providers: (typeof NestEventEmitter)[];
@@ -5,7 +5,7 @@ import { IEntityCreateCommand, IEntityDeleteCommand, IEntityUpdateCommand, IEnti
5
5
  import { SortingType } from "../abstractions/common";
6
6
  import { IConnectorsConfiguration, IEntityConnectorDeleteManager, IEntityConnectorSyncManager } from "../abstractions/connectors";
7
7
  import { IEntityConverter } from "../abstractions/converters";
8
- import { IEntityEventsManager } from "../abstractions/events";
8
+ import { IEntityEventsManager, IEventEmitter } from "../abstractions/events";
9
9
  import { IEntityManager } from "../abstractions/manager";
10
10
  import { IEntitiesQueryBuilder, IEntitiesSearchQuery, IEntityGetQuery } from "../abstractions/queries";
11
11
  import { IEntityReplicaDeleteManager, IEntityReplicaSyncManager, IReplicasConfiguration } from "../abstractions/replication";
@@ -16,6 +16,7 @@ export declare class EntityServiceLocator<TEntity, TEntityId> {
16
16
  private readonly services;
17
17
  private readonly entityName;
18
18
  constructor(services: EntitiesServiceLocator, entityName: string);
19
+ getRootServices(): EntitiesServiceLocator;
19
20
  resolveEntityManager(): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
20
21
  resolveEntityActions(): IEntityActions<TEntity, TEntityId, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
21
22
  resolveRepository<TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
@@ -48,6 +49,8 @@ export declare class EntitiesServiceLocator {
48
49
  private readonly provider;
49
50
  constructor(provider: ServiceLocator);
50
51
  getProvider(): ServiceLocator;
52
+ resolveEventEmitter<TEventEmitter extends IEventEmitter>(): TEventEmitter;
53
+ registerEventEmitter<TEventEmitter extends IEventEmitter>(instance: TEventEmitter): void;
51
54
  resolveEntityManager<TEntity>(entityName: string): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
52
55
  registerEntityManager<TEntity>(entityName: string, instance: IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>): void;
53
56
  resolveEntityActions<TEntity>(entityName: string): IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
@@ -1,9 +1,11 @@
1
1
  import { IEntityEventsManager } from "../abstractions/events";
2
2
  import { EntityServiceLocator } from "../providers/services";
3
3
  export declare class EntityEventsManager<TEntity, TEntityId> implements IEntityEventsManager<TEntity, TEntityId> {
4
+ private readonly entityName;
4
5
  private readonly services;
5
- constructor(services: EntityServiceLocator<TEntity, TEntityId>);
6
+ constructor(entityName: string, services: EntityServiceLocator<TEntity, TEntityId>);
6
7
  processEntityCreatedEvent(entity: TEntity): Promise<void>;
7
8
  processEntityUpdatedEvent(entity: TEntity): Promise<void>;
8
9
  processEntityDeletedEvent(id: TEntityId): Promise<void>;
10
+ private emitEntityEvent;
9
11
  }
@@ -0,0 +1,9 @@
1
+ export type EntityCreatedPayload<TEntity> = {
2
+ entity: TEntity;
3
+ };
4
+ export type EntityUpdatedPayload<TEntity> = {
5
+ entity: TEntity;
6
+ };
7
+ export type EntityDeletedPayload<TEntityId> = {
8
+ id: TEntityId;
9
+ };
@@ -1,4 +1,4 @@
1
- export declare const Services: {
1
+ export declare const EntityServices: {
2
2
  Actions: {
3
3
  IEntityGetAction: string;
4
4
  IEntitiesSearchAction: string;
@@ -48,3 +48,8 @@ export declare const Services: {
48
48
  IEntityRepository: string;
49
49
  };
50
50
  };
51
+ export declare const GlobalServices: {
52
+ Events: {
53
+ IEventEmitter: string;
54
+ };
55
+ };
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ import { Module } from '@nestjs/core/injector/module';
3
3
  import { ModulesContainer } from '@nestjs/core/injector/modules-container';
4
4
  import { MetadataScanner } from '@nestjs/core/metadata-scanner';
5
5
  import { ObjectLiteral, FindOneOptions, FindManyOptions, Repository, ObjectId, FindOptionsWhere, FindOptionsRelations } from 'typeorm';
6
+ import { EventEmitter2 } from '@nestjs/event-emitter';
6
7
 
7
8
  type EnumType = string | number | symbol;
8
9
  type SortingType = EnumType;
@@ -202,6 +203,9 @@ interface IEntityEventsManager<TEntity, TEntityId> {
202
203
  processEntityUpdatedEvent(entity: TEntity): Promise<void>;
203
204
  processEntityDeletedEvent(id: TEntityId): Promise<void>;
204
205
  }
206
+ interface IEventEmitter {
207
+ emit(event: string, ...args: any[]): Promise<void>;
208
+ }
205
209
 
206
210
  interface IEntitiesSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> {
207
211
  execute(request: TEntitySearchParameters): Promise<EntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
@@ -268,6 +272,7 @@ declare class EntityServiceLocator<TEntity, TEntityId> {
268
272
  private readonly services;
269
273
  private readonly entityName;
270
274
  constructor(services: EntitiesServiceLocator, entityName: string);
275
+ getRootServices(): EntitiesServiceLocator;
271
276
  resolveEntityManager(): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
272
277
  resolveEntityActions(): IEntityActions<TEntity, TEntityId, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
273
278
  resolveRepository<TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
@@ -300,6 +305,8 @@ declare class EntitiesServiceLocator {
300
305
  private readonly provider;
301
306
  constructor(provider: ServiceLocator);
302
307
  getProvider(): ServiceLocator;
308
+ resolveEventEmitter<TEventEmitter extends IEventEmitter>(): TEventEmitter;
309
+ registerEventEmitter<TEventEmitter extends IEventEmitter>(instance: TEventEmitter): void;
303
310
  resolveEntityManager<TEntity>(entityName: string): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
304
311
  registerEntityManager<TEntity>(entityName: string, instance: IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>): void;
305
312
  resolveEntityActions<TEntity>(entityName: string): IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
@@ -570,6 +577,9 @@ interface EntityAdapterProps {
570
577
  declare class EntityManagerRegistry {
571
578
  private readonly container;
572
579
  getContainer(): IEntityManagerServiceRoot;
580
+ resisterGlobalServices({ eventEmitter, }: {
581
+ eventEmitter?: IEventEmitter;
582
+ }): Promise<void>;
573
583
  registerDiscoveredEntity(app: INestApplicationContext, { adapter, entityName, converter, queryBuilder, repository, authMiddleware, }: {
574
584
  entityName: string;
575
585
  repository: DiscoveredClassWithMeta<EntityRepositoryProps>;
@@ -650,11 +660,18 @@ declare class NestTypeOrmRepository<TEntity extends ObjectLiteral, TEntityId> ex
650
660
  constructor(repository: Repository<TEntity>);
651
661
  }
652
662
 
663
+ declare class NestEventEmitter implements IEventEmitter {
664
+ private readonly eventEmitter;
665
+ constructor(eventEmitter: EventEmitter2);
666
+ emit(event: string, ...args: any[]): Promise<void>;
667
+ }
668
+
653
669
  declare class EntityManagerInitializer {
654
670
  private readonly discover;
655
671
  private readonly registry;
672
+ private readonly eventEmitter;
656
673
  private readonly logger;
657
- constructor(discover: CustomDiscoveryService, registry: EntityManagerRegistry);
674
+ constructor(discover: CustomDiscoveryService, registry: EntityManagerRegistry, eventEmitter: NestEventEmitter);
658
675
  initialize(app: INestApplicationContext): Promise<void>;
659
676
  private discoverEntities;
660
677
  private discoverRepositories;
@@ -664,9 +681,7 @@ declare class EntityManagerInitializer {
664
681
  private discoverAuthMiddlewares;
665
682
  }
666
683
 
667
- declare const Processors: (typeof EntityManagerInitializer)[];
668
-
669
684
  declare class EntityManagerModule {
670
685
  }
671
686
 
672
- export { EntityActionsProps, EntityAuthMiddlewareProps, EntityConnectorProps, EntityConverterProps, EntityManagerException, EntityManagerModule, EntityManagerProps, EntityManagerRegistry, EntityManagerSymbols, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntityProps, EntityQueryBuilderProps, EntityRepositoryProps, FilterExpression, IAuthorizationResult, IEntitiesQueryBuilder, IEntitiesSearchAction, IEntitiesSearchQuery, IEntityActions, IEntityAdapter, IEntityAuthorizationMiddleware, IEntityConverter, IEntityCreateAction, IEntityCreateCommand, IEntityDeleteAction, IEntityDeleteCommand, IEntityEventsManager, IEntityGetAction, IEntityGetQuery, IEntityManager, IEntityManagerServiceCollection, IEntityManagerServiceRoot, IEntityMapper, IEntityReplicaDeleteManager, IEntityReplicaSyncManager, IEntityRepository, IEntitySearchParameters, IEntitySearchResults, IEntityUpdateAction, IEntityUpdateCommand, IEntityUpsertAction, IEntityUpsertCommand, IReplicasConfiguration, ISearchFilters, ISearchOptions, ISearchRequestPaging, ISearchResultsPaging, ISearchSorting, ISearchSortingField, ModulesContainerProvider, MultipleEntitiesFoundException, NestEntityActions, NestEntityManager, NestTypeOrmQueryBuilder, NestTypeOrmRepository, Processors, QueryBuilderBase, ReplicaConfiguration, ReplicaOptions, ReplicationMode, SortDirection, SortingType, WpEntity, WpEntityActions, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository };
687
+ export { EntityActionsProps, EntityAuthMiddlewareProps, EntityConnectorProps, EntityConverterProps, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerProps, EntityManagerRegistry, EntityManagerSymbols, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntityProps, EntityQueryBuilderProps, EntityRepositoryProps, FilterExpression, IAuthorizationResult, IEntitiesQueryBuilder, IEntitiesSearchAction, IEntitiesSearchQuery, IEntityActions, IEntityAdapter, IEntityAuthorizationMiddleware, IEntityConverter, IEntityCreateAction, IEntityCreateCommand, IEntityDeleteAction, IEntityDeleteCommand, IEntityEventsManager, IEntityGetAction, IEntityGetQuery, IEntityManager, IEntityManagerServiceCollection, IEntityManagerServiceRoot, IEntityMapper, IEntityReplicaDeleteManager, IEntityReplicaSyncManager, IEntityRepository, IEntitySearchParameters, IEntitySearchResults, IEntityUpdateAction, IEntityUpdateCommand, IEntityUpsertAction, IEntityUpsertCommand, IReplicasConfiguration, ISearchFilters, ISearchOptions, ISearchRequestPaging, ISearchResultsPaging, ISearchSorting, ISearchSortingField, ModulesContainerProvider, MultipleEntitiesFoundException, NestEntityActions, NestEntityManager, NestTypeOrmQueryBuilder, NestTypeOrmRepository, QueryBuilderBase, ReplicaConfiguration, ReplicaOptions, ReplicationMode, SortDirection, SortingType, WpEntity, WpEntityActions, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@punks/backend-entity-manager",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "description": "",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -28,6 +28,7 @@
28
28
  "@babel/core": "^7.21.0",
29
29
  "@nestjs/common": "^10.0.5",
30
30
  "@nestjs/core": "^10.0.5",
31
+ "@nestjs/event-emitter": "^2.0.0",
31
32
  "@nestjs/swagger": "^7.1.1",
32
33
  "@nestjs/testing": "^10.0.5",
33
34
  "@nestjs/typeorm": "^10.0.0",
package/readme.md CHANGED
@@ -22,5 +22,5 @@ npm install typeorm
22
22
 
23
23
  ```bash
24
24
  # NestJS with TypeORM
25
- npm install @nestjs/core @nestjs/common @nestjs/typeorm @nestjs/swagger
25
+ npm install @nestjs/core @nestjs/common @nestjs/event-emitter @nestjs/typeorm @nestjs/swagger
26
26
  ```