@punks/backend-entity-manager 0.0.98 → 0.0.100
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 +15 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/searchParameters.d.ts +5 -0
- package/dist/cjs/types/platforms/nest/decorators/entity.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/ioc/registry/index.d.ts +3 -2
- package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +1 -0
- package/dist/esm/index.js +15 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/searchParameters.d.ts +5 -0
- package/dist/esm/types/platforms/nest/decorators/entity.d.ts +4 -0
- package/dist/esm/types/platforms/nest/ioc/registry/index.d.ts +3 -2
- package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +1 -0
- package/dist/index.d.ts +13 -2
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export interface IEntitySearchParameters<TSorting, TCursor> {
|
|
2
|
+
query?: IFullTextQuery;
|
|
2
3
|
filters?: ISearchFilters;
|
|
3
4
|
sorting?: ISearchSorting<TSorting>;
|
|
4
5
|
paging?: ISearchRequestPaging<TCursor>;
|
|
@@ -24,3 +25,7 @@ export declare enum SortDirection {
|
|
|
24
25
|
Asc = "asc",
|
|
25
26
|
Desc = "desc"
|
|
26
27
|
}
|
|
28
|
+
export interface IFullTextQuery {
|
|
29
|
+
term: string;
|
|
30
|
+
fields?: string[];
|
|
31
|
+
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
export type EntityVersioningOptions = {
|
|
2
|
+
enabled: boolean;
|
|
3
|
+
};
|
|
1
4
|
export interface EntityProps {
|
|
2
5
|
name: string;
|
|
6
|
+
versioning?: EntityVersioningOptions;
|
|
3
7
|
}
|
|
4
8
|
export declare const WpEntity: (name: string, props?: Omit<EntityProps, "name">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { INestApplicationContext } from "@nestjs/common";
|
|
2
|
-
import { EntityAuthMiddlewareProps, EntityConverterProps, EntityQueryBuilderProps, EntityRepositoryProps, EntitySerializerProps } from "../../decorators";
|
|
2
|
+
import { EntityAuthMiddlewareProps, EntityConverterProps, EntityProps, EntityQueryBuilderProps, EntityRepositoryProps, EntitySerializerProps } from "../../decorators";
|
|
3
3
|
import { EntityManagerSettings } from "../../../../abstractions";
|
|
4
4
|
import { EntityServiceLocator } from "../../../../providers/services";
|
|
5
5
|
import { DiscoveredClassWithMeta } from "../discovery";
|
|
@@ -11,8 +11,9 @@ export declare class EntityManagerRegistry {
|
|
|
11
11
|
registerGlobalServices({ eventEmitter, }: {
|
|
12
12
|
eventEmitter?: IEventEmitter;
|
|
13
13
|
}): Promise<void>;
|
|
14
|
-
registerDiscoveredEntity(app: INestApplicationContext, { adapter, entityName, converter, queryBuilder, repository, authMiddleware, serializer, settings, }: {
|
|
14
|
+
registerDiscoveredEntity(app: INestApplicationContext, { adapter, entityName, entity, converter, queryBuilder, repository, authMiddleware, serializer, settings, }: {
|
|
15
15
|
entityName: string;
|
|
16
|
+
entity: DiscoveredClassWithMeta<EntityProps>;
|
|
16
17
|
repository: DiscoveredClassWithMeta<EntityRepositoryProps>;
|
|
17
18
|
converter: DiscoveredClassWithMeta<EntityConverterProps>;
|
|
18
19
|
adapter: DiscoveredClassWithMeta<EntityAdapterProps>;
|
|
@@ -26,6 +26,7 @@ export declare class EntityManagerInitializer {
|
|
|
26
26
|
private registerEmailTemplates;
|
|
27
27
|
private registerPipelinesServices;
|
|
28
28
|
private initializeProviders;
|
|
29
|
+
private discoverEntities;
|
|
29
30
|
private discoverRepositories;
|
|
30
31
|
private discoverQueryBuilders;
|
|
31
32
|
private discoverConverters;
|
package/dist/esm/index.js
CHANGED
|
@@ -2295,7 +2295,7 @@ let EntityManagerRegistry = class EntityManagerRegistry {
|
|
|
2295
2295
|
.registerEventEmitter(eventEmitter);
|
|
2296
2296
|
}
|
|
2297
2297
|
}
|
|
2298
|
-
async registerDiscoveredEntity(app, { adapter, entityName, converter, queryBuilder, repository, authMiddleware, serializer, settings, }) {
|
|
2298
|
+
async registerDiscoveredEntity(app, { adapter, entityName, entity, converter, queryBuilder, repository, authMiddleware, serializer, settings, }) {
|
|
2299
2299
|
if (!repository.discoveredClass.injectType) {
|
|
2300
2300
|
throw new Error(`No inject type found for entity repository: ${entityName}`);
|
|
2301
2301
|
}
|
|
@@ -20870,21 +20870,27 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
|
|
|
20870
20870
|
});
|
|
20871
20871
|
}
|
|
20872
20872
|
async registerEntities(app, staticProviders) {
|
|
20873
|
+
const entities = await this.discoverEntities();
|
|
20873
20874
|
const repositories = await this.discoverRepositories();
|
|
20874
20875
|
const queryBuilders = await this.discoverQueryBuilders();
|
|
20875
20876
|
const converters = await this.discoverConverters();
|
|
20876
20877
|
const serializers = await this.discoverSerializers();
|
|
20877
20878
|
const adapters = await this.discoverAdapters();
|
|
20878
20879
|
const auth = await this.discoverAuthMiddlewares();
|
|
20880
|
+
const repositoriesDict = toDict(repositories, (q) => q.meta.entityName);
|
|
20879
20881
|
const queryBuilderDict = toDict(queryBuilders, (q) => q.meta.entityName);
|
|
20880
20882
|
const converterDict = toDict(converters, (c) => c.meta.entityName);
|
|
20881
20883
|
const serializerDict = toDict(serializers, (s) => s.meta.entityName);
|
|
20882
20884
|
const adapterDict = toDict(adapters, (a) => a.meta.entityName);
|
|
20883
20885
|
const authDict = toDict(auth, (a) => a.meta.entityName);
|
|
20884
|
-
const
|
|
20885
|
-
this.logger.log(`Discovered
|
|
20886
|
-
for (const
|
|
20887
|
-
const entityName =
|
|
20886
|
+
const sortedEntities = lodash.exports.orderBy(entities, (x) => x.meta.name);
|
|
20887
|
+
this.logger.log(`Discovered entities: \n${sortedEntities.join(" \n")}`);
|
|
20888
|
+
for (const entity of sortedEntities) {
|
|
20889
|
+
const entityName = entity.meta.name;
|
|
20890
|
+
const repository = repositoriesDict[entityName];
|
|
20891
|
+
if (!repository) {
|
|
20892
|
+
throw new Error(`No repository found for entity: ${entityName}`);
|
|
20893
|
+
}
|
|
20888
20894
|
const queryBuilder = queryBuilderDict[entityName];
|
|
20889
20895
|
if (!queryBuilder) {
|
|
20890
20896
|
throw new Error(`No query builder found for entity: ${entityName}`);
|
|
@@ -20895,6 +20901,7 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
|
|
|
20895
20901
|
const serializer = serializerDict[entityName];
|
|
20896
20902
|
await this.registry.registerDiscoveredEntity(app, {
|
|
20897
20903
|
entityName,
|
|
20904
|
+
entity,
|
|
20898
20905
|
adapter,
|
|
20899
20906
|
repository,
|
|
20900
20907
|
queryBuilder,
|
|
@@ -20993,6 +21000,9 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
|
|
|
20993
21000
|
.get(ModulesContainerProvider)
|
|
20994
21001
|
.setModulesContainer(staticProviders.modulesContainer);
|
|
20995
21002
|
}
|
|
21003
|
+
async discoverEntities() {
|
|
21004
|
+
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.Entity);
|
|
21005
|
+
}
|
|
20996
21006
|
async discoverRepositories() {
|
|
20997
21007
|
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EntityRepository);
|
|
20998
21008
|
}
|