@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.
@@ -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 sortedRepositories = lodash.exports.orderBy(repositories, (x) => x.meta.entityName);
20885
- this.logger.log(`Discovered repositories: \n${sortedRepositories.join(" \n")}`);
20886
- for (const repository of sortedRepositories) {
20887
- const entityName = repository.meta.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
  }