@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.
- package/dist/cjs/index.js +106 -97
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +8 -1
- package/dist/cjs/types/platforms/nest/providers/events/index.d.ts +3 -2
- package/dist/esm/index.js +106 -97
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +8 -1
- package/dist/esm/types/platforms/nest/providers/events/index.d.ts +3 -2
- package/dist/index.d.ts +10 -3
- package/package.json +1 -1
|
@@ -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
|
|
5
|
-
constructor(
|
|
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 {
|