@punks/backend-entity-manager 0.0.16 → 0.0.18

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,14 +1,21 @@
1
1
  import { INestApplicationContext } from "@nestjs/common";
2
+ import { EventEmitter2 } from "@nestjs/event-emitter";
2
3
  import { EntityManagerRegistry } from "../../ioc/registry";
3
4
  import { CustomDiscoveryService } from "../../ioc/discovery";
4
5
  import { NestEventEmitter } from "../../providers/events";
6
+ import { ModulesContainer } from "@nestjs/core";
7
+ export interface EntityManagerStaticProviders {
8
+ eventEmitter: EventEmitter2;
9
+ modulesContainer: ModulesContainer;
10
+ }
5
11
  export declare class EntityManagerInitializer {
6
12
  private readonly discover;
7
13
  private readonly registry;
8
14
  private readonly eventEmitter;
9
15
  private readonly logger;
10
16
  constructor(discover: CustomDiscoveryService, registry: EntityManagerRegistry, eventEmitter: NestEventEmitter);
11
- initialize(app: INestApplicationContext): Promise<void>;
17
+ initialize(app: INestApplicationContext, staticProviders: EntityManagerStaticProviders): Promise<void>;
18
+ private initializeProviders;
12
19
  private discoverEntities;
13
20
  private discoverRepositories;
14
21
  private discoverQueryBuilders;
@@ -1,7 +1,8 @@
1
1
  import { EventEmitter2 } from "@nestjs/event-emitter";
2
2
  import { IEventEmitter } from "../../../../abstractions/events";
3
3
  export declare class NestEventEmitter implements IEventEmitter {
4
- private readonly eventEmitter;
5
- constructor(eventEmitter: EventEmitter2);
4
+ private eventEmitter;
5
+ constructor();
6
+ setEmitter(eventEmitter: EventEmitter2): void;
6
7
  emit(event: string, ...args: any[]): Promise<void>;
7
8
  }
package/dist/esm/index.js CHANGED
@@ -48782,6 +48782,112 @@ CustomDiscoveryModule = __decorate$3([
48782
48782
  })
48783
48783
  ], CustomDiscoveryModule);
48784
48784
 
48785
+ let NestEventEmitter = class NestEventEmitter {
48786
+ constructor() { }
48787
+ setEmitter(eventEmitter) {
48788
+ this.eventEmitter = eventEmitter;
48789
+ }
48790
+ async emit(event, ...args) {
48791
+ await this.eventEmitter.emitAsync(event, ...args);
48792
+ }
48793
+ };
48794
+ NestEventEmitter = __decorate$3([
48795
+ common.Injectable(),
48796
+ __metadata$2("design:paramtypes", [])
48797
+ ], NestEventEmitter);
48798
+
48799
+ var EntityManagerInitializer_1;
48800
+ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerInitializer {
48801
+ constructor(discover, registry, eventEmitter) {
48802
+ this.discover = discover;
48803
+ this.registry = registry;
48804
+ this.eventEmitter = eventEmitter;
48805
+ this.logger = new common.Logger(EntityManagerInitializer_1.name);
48806
+ }
48807
+ async initialize(app, staticProviders) {
48808
+ this.logger.log("Initializing entity manager static providers 🥁");
48809
+ await this.initializeProviders(app, staticProviders);
48810
+ this.logger.log("Initializing entity manager global services 🥁");
48811
+ await this.registry.resisterGlobalServices({
48812
+ eventEmitter: this.eventEmitter,
48813
+ });
48814
+ this.logger.log("Initializing entity manager types 🥁");
48815
+ // const entities = await this.discoverEntities()
48816
+ const repositories = await this.discoverRepositories();
48817
+ const queryBuilders = await this.discoverQueryBuilders();
48818
+ const converters = await this.discoverConverters();
48819
+ const adapters = await this.discoverAdapters();
48820
+ const auth = await this.discoverAuthMiddlewares();
48821
+ const queryBuilderDict = toDict(queryBuilders, (q) => q.meta.entityName);
48822
+ const converterDict = toDict(converters, (c) => c.meta.entityName);
48823
+ const adapterDict = toDict(adapters, (a) => a.meta.entityName);
48824
+ const authDict = toDict(auth, (a) => a.meta.entityName);
48825
+ for (const repository of repositories) {
48826
+ const entityName = repository.meta.entityName;
48827
+ const queryBuilder = queryBuilderDict[entityName];
48828
+ if (!queryBuilder) {
48829
+ throw new Error(`No query builder found for entity: ${entityName}`);
48830
+ }
48831
+ const converter = converterDict[entityName];
48832
+ const adapter = adapterDict[entityName];
48833
+ const authMiddleware = authDict[entityName];
48834
+ await this.registry.registerDiscoveredEntity(app, {
48835
+ entityName,
48836
+ adapter,
48837
+ repository,
48838
+ queryBuilder,
48839
+ converter,
48840
+ authMiddleware,
48841
+ });
48842
+ this.logger.debug(`Entity ${entityName} registered:
48843
+ - Repository: ${repository.discoveredClass.injectType?.name ?? ""}
48844
+ - Query builder: ${queryBuilder.discoveredClass.injectType?.name ?? ""}
48845
+ - Adapter: ${adapter?.discoveredClass.injectType?.name ?? ""}
48846
+ - Converter: ${converter?.discoveredClass.injectType?.name ?? ""}
48847
+ - Auth middleware: ${authMiddleware?.discoveredClass.injectType?.name ?? ""}
48848
+
48849
+ `);
48850
+ }
48851
+ this.logger.log("Entity manager types initialized 🚀");
48852
+ }
48853
+ async initializeProviders(app, staticProviders) {
48854
+ app
48855
+ .get(ModulesContainerProvider)
48856
+ .setModulesContainer(staticProviders.modulesContainer);
48857
+ app.get(NestEventEmitter).setEmitter(staticProviders.eventEmitter);
48858
+ }
48859
+ async discoverEntities() {
48860
+ return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.Entity);
48861
+ }
48862
+ async discoverRepositories() {
48863
+ return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EntityRepository);
48864
+ }
48865
+ async discoverQueryBuilders() {
48866
+ return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EntityQueryBuilder);
48867
+ }
48868
+ async discoverConverters() {
48869
+ return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EntityConverter);
48870
+ }
48871
+ async discoverAdapters() {
48872
+ return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EntityAdapter);
48873
+ }
48874
+ async discoverAuthMiddlewares() {
48875
+ return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EntityAuthMiddleware);
48876
+ }
48877
+ };
48878
+ EntityManagerInitializer = EntityManagerInitializer_1 = __decorate$3([
48879
+ common.Injectable(),
48880
+ __metadata$2("design:paramtypes", [CustomDiscoveryService,
48881
+ EntityManagerRegistry,
48882
+ NestEventEmitter])
48883
+ ], EntityManagerInitializer);
48884
+
48885
+ const Services = [];
48886
+
48887
+ const IoC = [EntityManagerRegistry];
48888
+
48889
+ const Processors = [EntityManagerInitializer];
48890
+
48785
48891
  var dist = {};
48786
48892
 
48787
48893
  var eventemitter2 = {exports: {}};
@@ -60503,103 +60609,6 @@ Object.defineProperty(exports, "EVENT_PAYLOAD", { enumerable: true, get: functio
60503
60609
 
60504
60610
  }(dist));
60505
60611
 
60506
- let NestEventEmitter = class NestEventEmitter {
60507
- constructor(eventEmitter) {
60508
- this.eventEmitter = eventEmitter;
60509
- }
60510
- async emit(event, ...args) {
60511
- await this.eventEmitter.emitAsync(event, ...args);
60512
- }
60513
- };
60514
- NestEventEmitter = __decorate$3([
60515
- common.Injectable(),
60516
- __metadata$2("design:paramtypes", [dist.EventEmitter2])
60517
- ], NestEventEmitter);
60518
-
60519
- var EntityManagerInitializer_1;
60520
- let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerInitializer {
60521
- constructor(discover, registry, eventEmitter) {
60522
- this.discover = discover;
60523
- this.registry = registry;
60524
- this.eventEmitter = eventEmitter;
60525
- this.logger = new common.Logger(EntityManagerInitializer_1.name);
60526
- }
60527
- async initialize(app) {
60528
- this.logger.log("Initializing entity manager global services 🥁");
60529
- await this.registry.resisterGlobalServices({
60530
- eventEmitter: this.eventEmitter,
60531
- });
60532
- this.logger.log("Initializing entity manager types 🥁");
60533
- // const entities = await this.discoverEntities()
60534
- const repositories = await this.discoverRepositories();
60535
- const queryBuilders = await this.discoverQueryBuilders();
60536
- const converters = await this.discoverConverters();
60537
- const adapters = await this.discoverAdapters();
60538
- const auth = await this.discoverAuthMiddlewares();
60539
- const queryBuilderDict = toDict(queryBuilders, (q) => q.meta.entityName);
60540
- const converterDict = toDict(converters, (c) => c.meta.entityName);
60541
- const adapterDict = toDict(adapters, (a) => a.meta.entityName);
60542
- const authDict = toDict(auth, (a) => a.meta.entityName);
60543
- for (const repository of repositories) {
60544
- const entityName = repository.meta.entityName;
60545
- const queryBuilder = queryBuilderDict[entityName];
60546
- if (!queryBuilder) {
60547
- throw new Error(`No query builder found for entity: ${entityName}`);
60548
- }
60549
- const converter = converterDict[entityName];
60550
- const adapter = adapterDict[entityName];
60551
- const authMiddleware = authDict[entityName];
60552
- await this.registry.registerDiscoveredEntity(app, {
60553
- entityName,
60554
- adapter,
60555
- repository,
60556
- queryBuilder,
60557
- converter,
60558
- authMiddleware,
60559
- });
60560
- this.logger.debug(`Entity ${entityName} registered:
60561
- - Repository: ${repository.discoveredClass.injectType?.name ?? ""}
60562
- - Query builder: ${queryBuilder.discoveredClass.injectType?.name ?? ""}
60563
- - Adapter: ${adapter?.discoveredClass.injectType?.name ?? ""}
60564
- - Converter: ${converter?.discoveredClass.injectType?.name ?? ""}
60565
- - Auth middleware: ${authMiddleware?.discoveredClass.injectType?.name ?? ""}
60566
-
60567
- `);
60568
- }
60569
- this.logger.log("Entity manager types initialized 🚀");
60570
- }
60571
- async discoverEntities() {
60572
- return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.Entity);
60573
- }
60574
- async discoverRepositories() {
60575
- return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EntityRepository);
60576
- }
60577
- async discoverQueryBuilders() {
60578
- return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EntityQueryBuilder);
60579
- }
60580
- async discoverConverters() {
60581
- return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EntityConverter);
60582
- }
60583
- async discoverAdapters() {
60584
- return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EntityAdapter);
60585
- }
60586
- async discoverAuthMiddlewares() {
60587
- return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EntityAuthMiddleware);
60588
- }
60589
- };
60590
- EntityManagerInitializer = EntityManagerInitializer_1 = __decorate$3([
60591
- common.Injectable(),
60592
- __metadata$2("design:paramtypes", [CustomDiscoveryService,
60593
- EntityManagerRegistry,
60594
- NestEventEmitter])
60595
- ], EntityManagerInitializer);
60596
-
60597
- const Services = [];
60598
-
60599
- const IoC = [EntityManagerRegistry];
60600
-
60601
- const Processors = [EntityManagerInitializer];
60602
-
60603
60612
  const Providers = [NestEventEmitter];
60604
60613
 
60605
60614
  let EntityManagerModule = class EntityManagerModule {