@punks/backend-entity-manager 0.0.1 → 0.0.3
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 +41374 -7749
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/__test__/entity/foo.d.ts +9 -9
- package/dist/cjs/types/__test__/providers/typeorm/entity/foo.d.ts +9 -10
- package/dist/cjs/types/abstractions/actions.d.ts +12 -12
- package/dist/cjs/types/abstractions/adapters.d.ts +8 -0
- package/dist/cjs/types/abstractions/commands.d.ts +2 -2
- package/dist/cjs/types/abstractions/configuration.d.ts +7 -1
- package/dist/cjs/types/abstractions/converters.d.ts +7 -15
- package/dist/cjs/types/abstractions/index.d.ts +3 -1
- package/dist/cjs/types/abstractions/manager.d.ts +5 -5
- package/dist/cjs/types/abstractions/repository.d.ts +1 -0
- package/dist/cjs/types/abstractions/searchParameters.d.ts +1 -1
- package/dist/cjs/types/actions/create.d.ts +2 -2
- package/dist/cjs/types/actions/upsert.d.ts +2 -2
- package/dist/cjs/types/commands/create.d.ts +2 -2
- package/dist/cjs/types/commands/update.d.ts +2 -2
- package/dist/cjs/types/concrete/index.d.ts +13 -13
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/integrations/index.d.ts +1 -0
- package/dist/cjs/types/integrations/repository/index.d.ts +1 -0
- package/dist/cjs/types/integrations/repository/typeorm/index.d.ts +2 -1
- package/dist/cjs/types/integrations/repository/typeorm/queryBuilder.d.ts +22 -0
- package/dist/cjs/types/integrations/repository/typeorm/repository.d.ts +2 -1
- package/dist/cjs/types/ioc/index.d.ts +3 -0
- package/dist/cjs/types/models/search.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/actions.d.ts +8 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/controller.d.ts +11 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/converter.d.ts +9 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/dto.d.ts +20 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/entity.d.ts +6 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/index.d.ts +8 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/manager.d.ts +7 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/models.d.ts +19 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/query.d.ts +11 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/repository.d.ts +6 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/index.d.ts +6 -0
- package/dist/cjs/types/platforms/nest/__test__/server/index.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/__test__/tests/base/test_crud_actions.test.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/__test__/tests/base/test_crud_api.test.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/__test__/tests/base/test_crud_operations.test.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/base/entityActions.d.ts +9 -0
- package/dist/cjs/types/platforms/nest/base/entityManager.d.ts +9 -0
- package/dist/cjs/types/platforms/nest/base/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/decorators/actions.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/decorators/adapter.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/decorators/authorization.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/decorators/connector.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/decorators/converter.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/decorators/entity.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/decorators/index.d.ts +9 -0
- package/dist/cjs/types/platforms/nest/decorators/manager.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/decorators/queryBuilder.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/decorators/repository.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/decorators/symbols.d.ts +11 -0
- package/dist/cjs/types/platforms/nest/index.d.ts +3 -0
- package/dist/cjs/types/platforms/nest/integrations/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/integrations/typeorm/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/integrations/typeorm/queryBuilder.d.ts +7 -0
- package/dist/cjs/types/platforms/nest/integrations/typeorm/repository.d.ts +5 -0
- package/dist/cjs/types/platforms/nest/ioc/discovery/index.d.ts +102 -0
- package/dist/cjs/types/platforms/nest/ioc/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/ioc/registry/index.d.ts +18 -0
- package/dist/cjs/types/platforms/nest/module.d.ts +1 -4
- package/dist/cjs/types/platforms/nest/processors/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +16 -0
- package/dist/cjs/types/platforms/nest/services/index.d.ts +1 -0
- package/dist/cjs/types/providers/services.d.ts +20 -31
- package/dist/cjs/types/symbols/ioc.d.ts +2 -6
- package/dist/cjs/types/templates/index.d.ts +1 -0
- package/dist/cjs/types/templates/queryBuilder.d.ts +11 -0
- package/dist/cjs/types/testing/mocks/repository.d.ts +1 -0
- package/dist/esm/index.js +41357 -7743
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/__test__/entity/foo.d.ts +9 -9
- package/dist/esm/types/__test__/providers/typeorm/entity/foo.d.ts +9 -10
- package/dist/esm/types/abstractions/actions.d.ts +12 -12
- package/dist/esm/types/abstractions/adapters.d.ts +8 -0
- package/dist/esm/types/abstractions/commands.d.ts +2 -2
- package/dist/esm/types/abstractions/configuration.d.ts +7 -1
- package/dist/esm/types/abstractions/converters.d.ts +7 -15
- package/dist/esm/types/abstractions/index.d.ts +3 -1
- package/dist/esm/types/abstractions/manager.d.ts +5 -5
- package/dist/esm/types/abstractions/repository.d.ts +1 -0
- package/dist/esm/types/abstractions/searchParameters.d.ts +1 -1
- package/dist/esm/types/actions/create.d.ts +2 -2
- package/dist/esm/types/actions/upsert.d.ts +2 -2
- package/dist/esm/types/commands/create.d.ts +2 -2
- package/dist/esm/types/commands/update.d.ts +2 -2
- package/dist/esm/types/concrete/index.d.ts +13 -13
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/integrations/index.d.ts +1 -0
- package/dist/esm/types/integrations/repository/index.d.ts +1 -0
- package/dist/esm/types/integrations/repository/typeorm/index.d.ts +2 -1
- package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +22 -0
- package/dist/esm/types/integrations/repository/typeorm/repository.d.ts +2 -1
- package/dist/esm/types/ioc/index.d.ts +3 -0
- package/dist/esm/types/models/search.d.ts +1 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/actions.d.ts +8 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/controller.d.ts +11 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/converter.d.ts +9 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/dto.d.ts +20 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/entity.d.ts +6 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/index.d.ts +8 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/manager.d.ts +7 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/models.d.ts +19 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/query.d.ts +11 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/repository.d.ts +6 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/index.d.ts +6 -0
- package/dist/esm/types/platforms/nest/__test__/server/index.d.ts +4 -0
- package/dist/esm/types/platforms/nest/__test__/tests/base/test_crud_actions.test.d.ts +1 -0
- package/dist/esm/types/platforms/nest/__test__/tests/base/test_crud_api.test.d.ts +1 -0
- package/dist/esm/types/platforms/nest/__test__/tests/base/test_crud_operations.test.d.ts +1 -0
- package/dist/esm/types/platforms/nest/base/entityActions.d.ts +9 -0
- package/dist/esm/types/platforms/nest/base/entityManager.d.ts +9 -0
- package/dist/esm/types/platforms/nest/base/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/decorators/actions.d.ts +4 -0
- package/dist/esm/types/platforms/nest/decorators/adapter.d.ts +4 -0
- package/dist/esm/types/platforms/nest/decorators/authorization.d.ts +4 -0
- package/dist/esm/types/platforms/nest/decorators/connector.d.ts +4 -0
- package/dist/esm/types/platforms/nest/decorators/converter.d.ts +4 -0
- package/dist/esm/types/platforms/nest/decorators/entity.d.ts +4 -0
- package/dist/esm/types/platforms/nest/decorators/index.d.ts +9 -0
- package/dist/esm/types/platforms/nest/decorators/manager.d.ts +4 -0
- package/dist/esm/types/platforms/nest/decorators/queryBuilder.d.ts +4 -0
- package/dist/esm/types/platforms/nest/decorators/repository.d.ts +4 -0
- package/dist/esm/types/platforms/nest/decorators/symbols.d.ts +11 -0
- package/dist/esm/types/platforms/nest/index.d.ts +3 -0
- package/dist/esm/types/platforms/nest/integrations/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/integrations/typeorm/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/integrations/typeorm/queryBuilder.d.ts +7 -0
- package/dist/esm/types/platforms/nest/integrations/typeorm/repository.d.ts +5 -0
- package/dist/esm/types/platforms/nest/ioc/discovery/index.d.ts +102 -0
- package/dist/esm/types/platforms/nest/ioc/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/ioc/registry/index.d.ts +18 -0
- package/dist/esm/types/platforms/nest/module.d.ts +1 -4
- package/dist/esm/types/platforms/nest/processors/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +16 -0
- package/dist/esm/types/platforms/nest/services/index.d.ts +1 -0
- package/dist/esm/types/providers/services.d.ts +20 -31
- package/dist/esm/types/symbols/ioc.d.ts +2 -6
- package/dist/esm/types/templates/index.d.ts +1 -0
- package/dist/esm/types/templates/queryBuilder.d.ts +11 -0
- package/dist/esm/types/testing/mocks/repository.d.ts +1 -0
- package/dist/index.d.ts +237 -94
- package/package.json +14 -5
- package/readme.md +10 -1
- package/dist/cjs/types/platforms/nest/ioc/container/index.d.ts +0 -3
- package/dist/cjs/types/platforms/nest/services/manager/index.d.ts +0 -2
- package/dist/esm/types/platforms/nest/ioc/container/index.d.ts +0 -3
- package/dist/esm/types/platforms/nest/services/manager/index.d.ts +0 -2
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IEntityManager, IEntitySearchParameters, SortingType } from "../../../abstractions";
|
|
2
|
+
import { EntityServiceLocator } from "../../../providers/services";
|
|
3
|
+
import { EntityManagerRegistry } from "../ioc/registry";
|
|
4
|
+
export declare abstract class NestEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> {
|
|
5
|
+
protected readonly services: EntityServiceLocator<TEntity, TEntityId>;
|
|
6
|
+
private managerInstance;
|
|
7
|
+
constructor(entityName: string, registry: EntityManagerRegistry);
|
|
8
|
+
get provider(): IEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitySearchParameters, TSorting, TCursor, TFacets>;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { NestEntityManager } from "./entityManager";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export interface EntityActionsProps {
|
|
2
|
+
entityName: string;
|
|
3
|
+
}
|
|
4
|
+
export declare const WpEntityActions: (entityName: string, props?: Omit<EntityActionsProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export interface EntityAdapterProps {
|
|
2
|
+
entityName: string;
|
|
3
|
+
}
|
|
4
|
+
export declare const WpEntityAdapter: (entityName: string, props?: Omit<EntityAdapterProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export interface EntityAuthMiddlewareProps {
|
|
2
|
+
entityName: string;
|
|
3
|
+
}
|
|
4
|
+
export declare const WpEntityAuthMiddleware: (entityName: string, props?: Omit<EntityAuthMiddlewareProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export interface EntityConnectorProps {
|
|
2
|
+
entityName: string;
|
|
3
|
+
}
|
|
4
|
+
export declare const WpEntityConnector: (entityName: string, props?: Omit<EntityConnectorProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export interface EntityConverterProps {
|
|
2
|
+
entityName: string;
|
|
3
|
+
}
|
|
4
|
+
export declare const WpEntityConverter: (entityName: string, props?: Omit<EntityConverterProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export interface EntityProps {
|
|
2
|
+
name: string;
|
|
3
|
+
}
|
|
4
|
+
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;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { WpEntityAuthMiddleware, EntityAuthMiddlewareProps, } from "./authorization";
|
|
2
|
+
export { WpEntityActions, EntityActionsProps } from "./actions";
|
|
3
|
+
export { WpEntityConnector, EntityConnectorProps } from "./connector";
|
|
4
|
+
export { WpEntityConverter, EntityConverterProps } from "./converter";
|
|
5
|
+
export { WpEntity, EntityProps } from "./entity";
|
|
6
|
+
export { WpEntityRepository, EntityRepositoryProps } from "./repository";
|
|
7
|
+
export { WpEntityManager, EntityManagerProps } from "./manager";
|
|
8
|
+
export { WpEntityQueryBuilder, EntityQueryBuilderProps } from "./queryBuilder";
|
|
9
|
+
export { EntityManagerSymbols } from "./symbols";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export interface EntityManagerProps {
|
|
2
|
+
entityName: string;
|
|
3
|
+
}
|
|
4
|
+
export declare const WpEntityManager: (entityName: string, props?: Omit<EntityManagerProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export interface EntityQueryBuilderProps {
|
|
2
|
+
entityName: string;
|
|
3
|
+
}
|
|
4
|
+
export declare const WpEntityQueryBuilder: (entityName: string, props?: Omit<EntityQueryBuilderProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export interface EntityRepositoryProps {
|
|
2
|
+
entityName: string;
|
|
3
|
+
}
|
|
4
|
+
export declare const WpEntityRepository: (entityName: string, props?: Omit<EntityRepositoryProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const EntityManagerSymbols: {
|
|
2
|
+
Entity: symbol;
|
|
3
|
+
EntityActions: symbol;
|
|
4
|
+
EntityAdapter: symbol;
|
|
5
|
+
EntityAuthMiddleware: symbol;
|
|
6
|
+
EntityRepository: symbol;
|
|
7
|
+
EntityConnector: symbol;
|
|
8
|
+
EntityConverter: symbol;
|
|
9
|
+
EntityManager: symbol;
|
|
10
|
+
EntityQueryBuilder: symbol;
|
|
11
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./typeorm";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ObjectLiteral } from "typeorm";
|
|
2
|
+
import { TypeOrmQueryBuilder } from "../../../../integrations";
|
|
3
|
+
import { IEntitySearchParameters, SortingType } from "../../../../abstractions";
|
|
4
|
+
import { EntityManagerRegistry } from "../../ioc/registry";
|
|
5
|
+
export declare abstract class NestTypeOrmQueryBuilder<TEntity extends ObjectLiteral, TEntitySearchParameters extends IEntitySearchParameters<TSorting, number>, TSorting extends SortingType, TFacets> extends TypeOrmQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TFacets> {
|
|
6
|
+
constructor(entityName: string, registry: EntityManagerRegistry);
|
|
7
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ObjectLiteral, Repository } from "typeorm";
|
|
2
|
+
import { TypeOrmRepository } from "../../../../integrations";
|
|
3
|
+
export declare class NestTypeOrmRepository<TEntity extends ObjectLiteral, TEntityId> extends TypeOrmRepository<TEntity, TEntityId> {
|
|
4
|
+
constructor(repository: Repository<TEntity>);
|
|
5
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { Type } from "@nestjs/common";
|
|
2
|
+
import { ModulesContainer } from "@nestjs/core/injector/modules-container";
|
|
3
|
+
import { MetadataScanner } from "@nestjs/core/metadata-scanner";
|
|
4
|
+
export interface DiscoveredModule<T = object> {
|
|
5
|
+
name: string;
|
|
6
|
+
instance: T;
|
|
7
|
+
injectType?: Function | Type<any>;
|
|
8
|
+
dependencyType: Type<T>;
|
|
9
|
+
}
|
|
10
|
+
export interface DiscoveredClass extends DiscoveredModule {
|
|
11
|
+
parentModule: DiscoveredModule;
|
|
12
|
+
}
|
|
13
|
+
export interface DiscoveredMethod {
|
|
14
|
+
handler: (...args: any[]) => any;
|
|
15
|
+
methodName: string;
|
|
16
|
+
parentClass: DiscoveredClass;
|
|
17
|
+
}
|
|
18
|
+
export interface DiscoveredMethodWithMeta<T> {
|
|
19
|
+
discoveredMethod: DiscoveredMethod;
|
|
20
|
+
meta: T;
|
|
21
|
+
}
|
|
22
|
+
export interface DiscoveredClassWithMeta<T> {
|
|
23
|
+
discoveredClass: DiscoveredClass;
|
|
24
|
+
meta: T;
|
|
25
|
+
}
|
|
26
|
+
export type MetaKey = string | number | symbol;
|
|
27
|
+
export type Filter<T> = (item: T) => boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Attempts to retrieve meta information from a Nest DiscoveredClass component
|
|
30
|
+
* @param key The meta key to retrieve data from
|
|
31
|
+
* @param component The discovered component to retrieve meta from
|
|
32
|
+
*/
|
|
33
|
+
export declare function getComponentMetaAtKey<T>(key: MetaKey, component: DiscoveredClass): T | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* A filter that can be used to search for DiscoveredClasses in an App that contain meta attached to a
|
|
36
|
+
* certain key
|
|
37
|
+
* @param key The meta key to search for
|
|
38
|
+
*/
|
|
39
|
+
export declare const withMetaAtKey: (key: MetaKey) => Filter<DiscoveredClass>;
|
|
40
|
+
export declare class DiscoveryService {
|
|
41
|
+
private readonly modulesContainer;
|
|
42
|
+
private readonly metadataScanner;
|
|
43
|
+
private discoveredControllers?;
|
|
44
|
+
private discoveredProviders?;
|
|
45
|
+
constructor(modulesContainer: ModulesContainer, metadataScanner: MetadataScanner);
|
|
46
|
+
/**
|
|
47
|
+
* Discovers all providers in a Nest App that match a filter
|
|
48
|
+
* @param filter
|
|
49
|
+
*/
|
|
50
|
+
providers(filter: Filter<DiscoveredClass>): Promise<DiscoveredClass[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Discovers all controller methods that either directly have a certain meta key attached to them
|
|
53
|
+
* or belong to a controller that has the same meta key attached to them
|
|
54
|
+
* @param metaKey The meta key to scan for
|
|
55
|
+
* @param metaFilter An optional filter for the contents of the meta object
|
|
56
|
+
*/
|
|
57
|
+
methodsAndControllerMethodsWithMetaAtKey<T>(metaKey: MetaKey, metaFilter?: Filter<T>): Promise<DiscoveredMethodWithMeta<T>[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Discovers all providers in an App that have meta at a specific key and returns the provider(s) and associated meta
|
|
60
|
+
* @param metaKey The metakey to scan for
|
|
61
|
+
*/
|
|
62
|
+
providersWithMetaAtKey<T>(metaKey: MetaKey): Promise<DiscoveredClassWithMeta<T>[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Discovers all controllers in a Nest App that match a filter
|
|
65
|
+
* @param filter
|
|
66
|
+
*/
|
|
67
|
+
controllers(filter: Filter<DiscoveredClass>): Promise<DiscoveredClass[]>;
|
|
68
|
+
/**
|
|
69
|
+
* Discovers all controllers in an App that have meta at a specific key and returns the controller(s) and associated meta
|
|
70
|
+
* @param metaKey The metakey to scan for
|
|
71
|
+
*/
|
|
72
|
+
controllersWithMetaAtKey<T>(metaKey: MetaKey): Promise<DiscoveredClassWithMeta<T>[]>;
|
|
73
|
+
/**
|
|
74
|
+
* Discovers all method handlers matching a particular metakey from a Provider or Controller
|
|
75
|
+
* @param component
|
|
76
|
+
* @param metaKey
|
|
77
|
+
*/
|
|
78
|
+
classMethodsWithMetaAtKey<T>(component: DiscoveredClass, metaKey: MetaKey): DiscoveredMethodWithMeta<T>[];
|
|
79
|
+
/**
|
|
80
|
+
* Discovers all the methods that exist on providers in a Nest App that contain metadata under a specific key
|
|
81
|
+
* @param metaKey The metakey to scan for
|
|
82
|
+
* @param providerFilter A predicate used to limit the providers being scanned. Defaults to all providers in the app module
|
|
83
|
+
*/
|
|
84
|
+
providerMethodsWithMetaAtKey<T>(metaKey: MetaKey, providerFilter?: Filter<DiscoveredClass>): Promise<DiscoveredMethodWithMeta<T>[]>;
|
|
85
|
+
/**
|
|
86
|
+
* Discovers all the methods that exist on controllers in a Nest App that contain metadata under a specific key
|
|
87
|
+
* @param metaKey The metakey to scan for
|
|
88
|
+
* @param controllerFilter A predicate used to limit the controllers being scanned. Defaults to all providers in the app module
|
|
89
|
+
*/
|
|
90
|
+
controllerMethodsWithMetaAtKey<T>(metaKey: MetaKey, controllerFilter?: Filter<DiscoveredClass>): Promise<DiscoveredMethodWithMeta<T>[]>;
|
|
91
|
+
private toDiscoveredClass;
|
|
92
|
+
private extractMethodMetaAtKey;
|
|
93
|
+
private discover;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Exposes a query API over top of the NestJS Module container
|
|
97
|
+
*
|
|
98
|
+
* @export
|
|
99
|
+
* @class DiscoveryModule
|
|
100
|
+
*/
|
|
101
|
+
export declare class DiscoveryModule {
|
|
102
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { INestApplicationContext } from "@nestjs/common";
|
|
2
|
+
import { EntityAuthMiddlewareProps, EntityConverterProps, EntityQueryBuilderProps, EntityRepositoryProps } from "../../decorators";
|
|
3
|
+
import { EntityServiceLocator } from "../../../../providers/services";
|
|
4
|
+
import { DiscoveredClassWithMeta } from "../discovery";
|
|
5
|
+
import { EntityAdapterProps } from "../../decorators/adapter";
|
|
6
|
+
export declare class EntityManagerRegistry {
|
|
7
|
+
private readonly container;
|
|
8
|
+
getContainer(): import("../../../../abstractions").IEntityManagerServiceRoot;
|
|
9
|
+
registerDiscoveredEntity(app: INestApplicationContext, { adapter, entityName, converter, queryBuilder, repository, authMiddleware, }: {
|
|
10
|
+
entityName: string;
|
|
11
|
+
repository: DiscoveredClassWithMeta<EntityRepositoryProps>;
|
|
12
|
+
converter: DiscoveredClassWithMeta<EntityConverterProps>;
|
|
13
|
+
adapter: DiscoveredClassWithMeta<EntityAdapterProps>;
|
|
14
|
+
queryBuilder: DiscoveredClassWithMeta<EntityQueryBuilderProps>;
|
|
15
|
+
authMiddleware?: DiscoveredClassWithMeta<EntityAuthMiddlewareProps>;
|
|
16
|
+
}): Promise<void>;
|
|
17
|
+
resolveEntityServicesCollection<TEntity>(entityName: string): EntityServiceLocator<TEntity, unknown>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { INestApplicationContext } from "@nestjs/common";
|
|
2
|
+
import { EntityManagerRegistry } from "../../ioc/registry";
|
|
3
|
+
import { DiscoveryService } from "../../ioc/discovery";
|
|
4
|
+
export declare class EntityManagerInitializer {
|
|
5
|
+
private readonly discover;
|
|
6
|
+
private readonly registry;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(discover: DiscoveryService, registry: EntityManagerRegistry);
|
|
9
|
+
initialize(app: INestApplicationContext): Promise<void>;
|
|
10
|
+
private discoverEntities;
|
|
11
|
+
private discoverRepositories;
|
|
12
|
+
private discoverQueryBuilders;
|
|
13
|
+
private discoverConverters;
|
|
14
|
+
private discoverAdapters;
|
|
15
|
+
private discoverAuthMiddlewares;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Services: never[];
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { IEntitiesSearchAction, IEntityActions, IEntityCreateAction, IEntityDeleteAction, IEntityGetAction, IEntityUpdateAction, IEntityUpsertAction } from "../abstractions/actions";
|
|
2
|
+
import { IEntityAdapter } from "../abstractions/adapters";
|
|
2
3
|
import { IEntityAuthorizationMiddleware } from "../abstractions/authorization";
|
|
3
4
|
import { IEntityCreateCommand, IEntityDeleteCommand, IEntityUpdateCommand, IEntityUpsertCommand } from "../abstractions/commands";
|
|
4
5
|
import { SortingType } from "../abstractions/common";
|
|
5
6
|
import { IConnectorsConfiguration, IEntityConnectorDeleteManager, IEntityConnectorSyncManager } from "../abstractions/connectors";
|
|
6
|
-
import {
|
|
7
|
+
import { IEntityConverter } from "../abstractions/converters";
|
|
7
8
|
import { IEntityEventsManager } from "../abstractions/events";
|
|
8
9
|
import { IEntityManager } from "../abstractions/manager";
|
|
9
10
|
import { IEntitiesQueryBuilder, IEntitiesSearchQuery, IEntityGetQuery } from "../abstractions/queries";
|
|
@@ -15,22 +16,18 @@ export declare class EntityServiceLocator<TEntity, TEntityId> {
|
|
|
15
16
|
private readonly services;
|
|
16
17
|
private readonly entityName;
|
|
17
18
|
constructor(services: EntitiesServiceLocator, entityName: string);
|
|
18
|
-
resolveEntityManager(): IEntityManager<TEntity,
|
|
19
|
-
resolveEntityActions(): IEntityActions<TEntity, TEntityId>;
|
|
19
|
+
resolveEntityManager(): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
|
|
20
|
+
resolveEntityActions(): IEntityActions<TEntity, TEntityId, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
|
|
20
21
|
resolveRepository<TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
|
|
21
22
|
resolveEventsManager(): IEntityEventsManager<TEntity, TEntityId>;
|
|
22
|
-
resolveReplicaSyncManager
|
|
23
|
-
resolveReplicaConfiguration
|
|
24
|
-
resolveReplicaDeleteManager<
|
|
25
|
-
resolveConnectorSyncManager
|
|
26
|
-
resolveConnectorDeleteManager<
|
|
27
|
-
resolveConnectorsConfiguration
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
resolveSearchConverter<TListItemDto>(): IEntitiesSearchConverter<TEntity, TListItemDto> | undefined;
|
|
31
|
-
resolveGetConverter<TEntityDto>(): IEntityGetConverter<TEntity, TEntityDto> | undefined;
|
|
32
|
-
resolveCreateConverter<TEntityCreateData, TEntityDto>(): IEntityCreateConverter<TEntity, TEntityCreateData, TEntityDto> | undefined;
|
|
33
|
-
resolveUpdateActionConverter<TEntityDto>(): IEntityUpdateActionConverter<TEntity, TEntityDto> | undefined;
|
|
23
|
+
resolveReplicaSyncManager(): IEntityReplicaSyncManager<TEntity>;
|
|
24
|
+
resolveReplicaConfiguration(): IReplicasConfiguration<TEntity, TEntityId>;
|
|
25
|
+
resolveReplicaDeleteManager<TEntityId>(): IEntityReplicaDeleteManager<TEntity, TEntityId>;
|
|
26
|
+
resolveConnectorSyncManager(): IEntityConnectorSyncManager<TEntity>;
|
|
27
|
+
resolveConnectorDeleteManager<TEntityId>(): IEntityConnectorDeleteManager<TEntity, TEntityId>;
|
|
28
|
+
resolveConnectorsConfiguration(): IConnectorsConfiguration<TEntity>;
|
|
29
|
+
resolveConverter<TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
|
|
30
|
+
resolveAdapter<TEntityCreateData, TEntityUpdateData>(): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
|
|
34
31
|
resolveAuthorizationMiddleware(): IEntityAuthorizationMiddleware<TEntity> | undefined;
|
|
35
32
|
resolveGetQuery<TEntityId>(): IEntityGetQuery<TEntity, TEntityId>;
|
|
36
33
|
resolveSearchQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
|
|
@@ -51,10 +48,10 @@ export declare class EntitiesServiceLocator {
|
|
|
51
48
|
private readonly provider;
|
|
52
49
|
constructor(provider: ServiceLocator);
|
|
53
50
|
getProvider(): ServiceLocator;
|
|
54
|
-
resolveEntityManager<TEntity
|
|
55
|
-
registerEntityManager<TEntity
|
|
56
|
-
resolveEntityActions<TEntity
|
|
57
|
-
registerEntityActions<TEntity
|
|
51
|
+
resolveEntityManager<TEntity>(entityName: string): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
|
|
52
|
+
registerEntityManager<TEntity>(entityName: string, instance: IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>): void;
|
|
53
|
+
resolveEntityActions<TEntity>(entityName: string): IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
|
|
54
|
+
registerEntityActions<TEntity>(entityName: string, instance: IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, unknown>): void;
|
|
58
55
|
resolveRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(entityName: string): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
|
|
59
56
|
registerRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(entityName: string, instance: IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>): void;
|
|
60
57
|
resolveEventsManager<TEntity, TEntityId>(entityName: string): IEntityEventsManager<TEntity, TEntityId>;
|
|
@@ -71,18 +68,10 @@ export declare class EntitiesServiceLocator {
|
|
|
71
68
|
registerConnectorDeleteManager<TEntity, TEntityId>(entityName: string, instance: IEntityConnectorDeleteManager<TEntity, TEntityId>): void;
|
|
72
69
|
resolveConnectorsConfiguration<TEntity>(entityName: string): IConnectorsConfiguration<TEntity>;
|
|
73
70
|
registerConnectorsConfiguration<TEntity>(entityName: string, instance: IConnectorsConfiguration<TEntity>): void;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
resolveSearchConverter<TEntity, TListItemDto>(entityName: string): IEntitiesSearchConverter<TEntity, TListItemDto> | undefined;
|
|
79
|
-
registerSearchConverter<TEntity, TListItemDto>(entityName: string, instance: IEntitiesSearchConverter<TEntity, TListItemDto>): void;
|
|
80
|
-
resolveGetConverter<TEntity, TEntityDto>(entityName: string): IEntityGetConverter<TEntity, TEntityDto> | undefined;
|
|
81
|
-
registerGetConverter<TEntity, TEntityDto>(entityName: string, instance: IEntityGetConverter<TEntity, TEntityDto>): void;
|
|
82
|
-
resolveCreateConverter<TEntity, TEntityCreateData, TEntityDto>(entityName: string): IEntityCreateConverter<TEntity, TEntityCreateData, TEntityDto> | undefined;
|
|
83
|
-
registerCreateActionConverter<TEntity, TEntityCreateData, TEntityDto>(entityName: string, instance: IEntityCreateConverter<TEntity, TEntityCreateData, TEntityDto>): void;
|
|
84
|
-
resolveUpdateActionConverter<TEntity, TEntityDto>(entityName: string): IEntityUpdateActionConverter<TEntity, TEntityDto> | undefined;
|
|
85
|
-
registerUpdateActionConverter<TEntity, TEntityDto>(entityName: string, instance: IEntityUpdateActionConverter<TEntity, TEntityDto>): void;
|
|
71
|
+
registerAdapter<TEntity, TEntityCreateData, TEntityUpdateData>(entityName: string, instance: IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData>): void;
|
|
72
|
+
resolveAdapter<TEntity, TEntityCreateData, TEntityUpdateData>(entityName: string): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
|
|
73
|
+
registerConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string, instance: IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>): void;
|
|
74
|
+
resolveConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
|
|
86
75
|
resolveAuthorizationMiddleware<TEntity>(entityName: string): IEntityAuthorizationMiddleware<TEntity> | undefined;
|
|
87
76
|
registerAuthorizationMiddleware<TEntity>(entityName: string, instance: IEntityAuthorizationMiddleware<TEntity>): void;
|
|
88
77
|
resolveGetQuery<TEntity, TEntityId>(entityName: string): IEntityGetQuery<TEntity, TEntityId>;
|
|
@@ -19,12 +19,8 @@ export declare const Services: {
|
|
|
19
19
|
IEntityDeleteCommand: string;
|
|
20
20
|
};
|
|
21
21
|
Converters: {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
IEntitiesSearchConverter: string;
|
|
25
|
-
IEntityGetConverter: string;
|
|
26
|
-
IEntityCreateActionConverter: string;
|
|
27
|
-
IEntityUpdateActionConverter: string;
|
|
22
|
+
IEntityAdapter: string;
|
|
23
|
+
IEntityConverter: string;
|
|
28
24
|
};
|
|
29
25
|
Connectors: {
|
|
30
26
|
IConnectorsConfiguration: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { QueryBuilderBase } from "./queryBuilder";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IEntitiesQueryBuilder, IEntitySearchParameters, ISearchRequestPaging } from "../abstractions";
|
|
2
|
+
import { SortingType } from "../abstractions/common";
|
|
3
|
+
import { EntitiesSearchResults, EntitiesSearchResultsPaging } from "../models";
|
|
4
|
+
export declare abstract class QueryBuilderBase<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> implements IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets> {
|
|
5
|
+
abstract search(request: TEntitySearchParameters): Promise<EntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
|
|
6
|
+
protected getIndexBasedPagingResult({ paging, totResults, currentPageResults, }: {
|
|
7
|
+
paging?: ISearchRequestPaging<number>;
|
|
8
|
+
totResults: number;
|
|
9
|
+
currentPageResults: number;
|
|
10
|
+
}): EntitiesSearchResultsPaging<number> | undefined;
|
|
11
|
+
}
|
|
@@ -8,6 +8,7 @@ export declare class InMemoryRepository<TEntity> implements IEntityRepository<TE
|
|
|
8
8
|
getBy(condition: FilterExpression<TEntity>): Promise<TEntity | undefined>;
|
|
9
9
|
all(): Promise<TEntity[]>;
|
|
10
10
|
find(condition: FilterExpression<TEntity>): Promise<TEntity[]>;
|
|
11
|
+
count(condition: FilterExpression<TEntity>): Promise<number>;
|
|
11
12
|
findById(id: string[]): Promise<TEntity[]>;
|
|
12
13
|
delete(id: string): Promise<void>;
|
|
13
14
|
deleteBy(condition: FilterExpression<TEntity>): Promise<void>;
|