@venok/core 1.0.0 → 1.0.1-canary.0
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/constants.d.ts +0 -2
- package/constants.js +1 -3
- package/context/{external/creator.d.ts → context.d.ts} +12 -9
- package/context/{external/creator.js → context.js} +23 -26
- package/context/execution-host.d.ts +1 -1
- package/context/index.d.ts +4 -0
- package/context/index.js +20 -0
- package/context/proxy.d.ts +6 -0
- package/context/proxy.js +33 -0
- package/decorators/catch.decorator.d.ts +1 -1
- package/errors/exceptions/invalid-class-scope.exception.d.ts +1 -1
- package/errors/exceptions/undefined-forwardref.exception.d.ts +1 -1
- package/errors/messages.d.ts +1 -1
- package/exceptions/handler.d.ts +10 -0
- package/exceptions/{external/handler.js → handler.js} +14 -11
- package/exceptions/index.d.ts +2 -0
- package/exceptions/index.js +18 -0
- package/exceptions/zone/index.d.ts +2 -0
- package/exceptions/zone/index.js +18 -0
- package/{exceptions/filter-context.d.ts → filters/context-creator.d.ts} +3 -3
- package/{exceptions/filter-context.js → filters/context-creator.js} +8 -15
- package/filters/context.d.ts +12 -0
- package/{exceptions/external/filter-context.js → filters/context.js} +10 -6
- package/filters/filter.d.ts +6 -0
- package/filters/filter.js +16 -0
- package/filters/index.d.ts +3 -0
- package/filters/index.js +19 -0
- package/guards/context-creator.d.ts +1 -1
- package/injector/container.d.ts +7 -7
- package/injector/helpers/class-scope.helper.d.ts +1 -1
- package/injector/helpers/is-durable.helper.d.ts +1 -1
- package/injector/injector.d.ts +2 -2
- package/injector/internal-core-module/internal-core-module-factory.js +10 -5
- package/injector/module/compiler.d.ts +5 -5
- package/injector/module/lazy/loader.d.ts +1 -1
- package/injector/module/module.d.ts +2 -2
- package/injector/module/token-factory.d.ts +3 -3
- package/inspector/serialized-graph.js +1 -1
- package/interceptors/context-creator.d.ts +1 -1
- package/interfaces/context/index.d.ts +2 -0
- package/interfaces/context/index.js +18 -0
- package/interfaces/features/index.d.ts +4 -0
- package/interfaces/features/index.js +20 -0
- package/interfaces/features/pipes.interface.d.ts +1 -1
- package/interfaces/index.d.ts +2 -0
- package/interfaces/index.js +2 -0
- package/interfaces/modules/definition.interface.d.ts +1 -1
- package/interfaces/modules/dynamic-module.interface.d.ts +1 -1
- package/interfaces/modules/module-metadata.interface.d.ts +1 -1
- package/interfaces/modules/provider.interface.d.ts +1 -1
- package/package.json +1 -1
- package/pipes/context-creator.d.ts +1 -1
- package/scanner.d.ts +9 -9
- package/services/reflector.service.d.ts +8 -8
- package/test/context/{external/creator.spec.js → creator.spec.js} +4 -4
- package/test/context/{external/proxy.spec.js → proxy.spec.js} +10 -9
- package/test/exceptions/{external/handler.spec.js → handler.spec.js} +6 -5
- package/test/{exceptions/filter-context.spec.js → filters/context-creator.spec.js} +3 -3
- package/test/injector/internal-core-module/internal-core-module-factory.spec.js +3 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/context/external/proxy.d.ts +0 -5
- package/context/external/proxy.js +0 -19
- package/exceptions/external/filter-context.d.ts +0 -10
- package/exceptions/external/filter.d.ts +0 -5
- package/exceptions/external/filter.js +0 -16
- package/exceptions/external/handler.d.ts +0 -9
- package/exceptions/select-exception-filter-metadata.d.ts +0 -2
- package/exceptions/select-exception-filter-metadata.js +0 -6
- /package/test/context/{external/creator.spec.d.ts → creator.spec.d.ts} +0 -0
- /package/test/context/{external/proxy.spec.d.ts → proxy.spec.d.ts} +0 -0
- /package/test/exceptions/{external/handler.spec.d.ts → handler.spec.d.ts} +0 -0
- /package/test/{exceptions/filter-context.spec.d.ts → filters/context-creator.spec.d.ts} +0 -0
package/injector/container.d.ts
CHANGED
|
@@ -9,8 +9,8 @@ import { ContextId } from "@venok/core/injector/instance/wrapper";
|
|
|
9
9
|
import { ApplicationConfig } from "@venok/core/application/config";
|
|
10
10
|
import { SerializedGraph } from "@venok/core/inspector/serialized-graph";
|
|
11
11
|
import { Injectable } from "@venok/core/interfaces/injectable.interface";
|
|
12
|
-
type ModuleMetatype = Type
|
|
13
|
-
type ModuleScope = Type
|
|
12
|
+
type ModuleMetatype = Type | DynamicModule | Promise<DynamicModule>;
|
|
13
|
+
type ModuleScope = Type[];
|
|
14
14
|
export declare class VenokContainer {
|
|
15
15
|
private readonly _applicationConfig;
|
|
16
16
|
private readonly globalModules;
|
|
@@ -32,18 +32,18 @@ export declare class VenokContainer {
|
|
|
32
32
|
inserted: boolean;
|
|
33
33
|
} | undefined>;
|
|
34
34
|
private setModule;
|
|
35
|
-
addDynamicMetadata(token: string, dynamicModuleMetadata: Partial<DynamicModule> | undefined, scope: Type
|
|
36
|
-
addDynamicModules(modules: any[] | undefined, scope: Type
|
|
37
|
-
isGlobalModule(metatype: Type
|
|
35
|
+
addDynamicMetadata(token: string, dynamicModuleMetadata: Partial<DynamicModule> | undefined, scope: Type[]): Promise<void>;
|
|
36
|
+
addDynamicModules(modules: any[] | undefined, scope: Type[]): Promise<void>;
|
|
37
|
+
isGlobalModule(metatype: Type, dynamicMetadata?: Partial<DynamicModule>): boolean;
|
|
38
38
|
addGlobalModule(module: Module): void;
|
|
39
39
|
getModules(): ModulesContainer;
|
|
40
40
|
getModuleCompiler(): ModuleCompiler;
|
|
41
41
|
getModuleByKey(moduleKey: string): Module;
|
|
42
42
|
getInternalCoreModuleRef(): Module | undefined;
|
|
43
|
-
addImport(relatedModule: Type
|
|
43
|
+
addImport(relatedModule: Type | DynamicModule, token: string): Promise<void>;
|
|
44
44
|
addProvider(provider: Provider, token: string, enhancerSubtype?: EnhancerSubtype): string | symbol | Function;
|
|
45
45
|
addInjectable(injectable: Provider, token: string, enhancerSubtype: EnhancerSubtype, host?: Type<Injectable>): string | symbol | Function | import("@venok/core/injector/instance/wrapper").InstanceWrapper<unknown>;
|
|
46
|
-
addExportedProvider(provider: Type
|
|
46
|
+
addExportedProvider(provider: Type, token: string): void;
|
|
47
47
|
clear(): void;
|
|
48
48
|
replace(toReplace: any, options: any & {
|
|
49
49
|
scope: any[] | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Scope, Type } from "@venok/core/interfaces";
|
|
2
|
-
export declare function getClassScope(provider: Type
|
|
2
|
+
export declare function getClassScope(provider: Type): Scope;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Type } from "@venok/core/interfaces";
|
|
2
|
-
export declare function isDurable(provider: Type
|
|
2
|
+
export declare function isDurable(provider: Type): boolean | undefined;
|
package/injector/injector.d.ts
CHANGED
|
@@ -57,8 +57,8 @@ export declare class Injector {
|
|
|
57
57
|
reflectConstructorParams<T>(type: Type<T>): any[];
|
|
58
58
|
reflectOptionalParams<T>(type: Type<T>): any[];
|
|
59
59
|
reflectSelfParams<T>(type: Type<T>): any[];
|
|
60
|
-
resolveSingleParam<T>(wrapper: InstanceWrapper<T>, param: Type
|
|
61
|
-
resolveParamToken<T>(wrapper: InstanceWrapper<T>, param: Type
|
|
60
|
+
resolveSingleParam<T>(wrapper: InstanceWrapper<T>, param: Type | string | symbol | any, dependencyContext: InjectorDependencyContext, moduleRef: Module, contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: symbol | string | number): Promise<InstanceWrapper<any>>;
|
|
61
|
+
resolveParamToken<T>(wrapper: InstanceWrapper<T>, param: Type | string | symbol | any): any;
|
|
62
62
|
resolveComponentInstance<T>(moduleRef: Module, token: InjectionToken, dependencyContext: InjectorDependencyContext, wrapper: InstanceWrapper<T>, contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: symbol | string | number): Promise<InstanceWrapper>;
|
|
63
63
|
resolveComponentHost<T>(moduleRef: Module, instanceWrapper: InstanceWrapper<T | Promise<T>>, contextId?: ContextId, inquirer?: InstanceWrapper): Promise<InstanceWrapper>;
|
|
64
64
|
lookupComponent<T = any>(providers: Map<Function | string | symbol, InstanceWrapper>, moduleRef: Module, dependencyContext: InjectorDependencyContext, wrapper: InstanceWrapper<T>, contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: symbol | string | number): Promise<InstanceWrapper<T>>;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InternalCoreModuleFactory = void 0;
|
|
4
|
+
const container_1 = require("@venok/core/injector/container");
|
|
4
5
|
const logger_service_1 = require("@venok/core/services/logger.service");
|
|
5
6
|
const loader_1 = require("@venok/core/injector/module/lazy/loader");
|
|
6
7
|
const injector_1 = require("@venok/core/injector/injector");
|
|
7
8
|
const loader_2 = require("@venok/core/injector/instance/loader");
|
|
8
9
|
const internal_core_module_1 = require("@venok/core/injector/internal-core-module/internal-core-module");
|
|
9
|
-
const
|
|
10
|
+
const container_2 = require("@venok/core/injector/module/container");
|
|
10
11
|
const serialized_graph_1 = require("@venok/core/inspector/serialized-graph");
|
|
11
|
-
const
|
|
12
|
+
const context_1 = require("@venok/core/context/context");
|
|
12
13
|
class InternalCoreModuleFactory {
|
|
13
14
|
static create(container, scanner, moduleCompiler, graphInspector, moduleOverrides) {
|
|
14
15
|
const lazyModuleLoaderFactory = () => {
|
|
@@ -21,11 +22,15 @@ class InternalCoreModuleFactory {
|
|
|
21
22
|
};
|
|
22
23
|
return internal_core_module_1.InternalCoreModule.register([
|
|
23
24
|
{
|
|
24
|
-
provide:
|
|
25
|
-
useValue:
|
|
25
|
+
provide: container_1.VenokContainer,
|
|
26
|
+
useValue: container,
|
|
26
27
|
},
|
|
27
28
|
{
|
|
28
|
-
provide:
|
|
29
|
+
provide: context_1.VenokContextCreator,
|
|
30
|
+
useValue: context_1.VenokContextCreator.fromContainer(container),
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
provide: container_2.ModulesContainer,
|
|
29
34
|
useValue: container.getModules(),
|
|
30
35
|
},
|
|
31
36
|
{
|
|
@@ -3,17 +3,17 @@ import { DynamicModule } from "@venok/core/interfaces/modules/dynamic-module.int
|
|
|
3
3
|
import { ForwardReference } from "@venok/core/interfaces/modules/forward-reference.interface";
|
|
4
4
|
import { TokenFactory } from "@venok/core/injector/module/token-factory";
|
|
5
5
|
export interface ModuleFactory {
|
|
6
|
-
type: Type
|
|
6
|
+
type: Type;
|
|
7
7
|
token: string;
|
|
8
8
|
dynamicMetadata?: Partial<DynamicModule>;
|
|
9
9
|
}
|
|
10
10
|
export declare class ModuleCompiler {
|
|
11
11
|
private readonly moduleTokenFactory;
|
|
12
12
|
constructor(moduleTokenFactory?: TokenFactory);
|
|
13
|
-
compile(metatype: Type
|
|
14
|
-
extractMetadata(metatype: Type
|
|
15
|
-
type: Type
|
|
13
|
+
compile(metatype: Type | DynamicModule | Promise<DynamicModule>): Promise<ModuleFactory>;
|
|
14
|
+
extractMetadata(metatype: Type | ForwardReference | DynamicModule): {
|
|
15
|
+
type: Type;
|
|
16
16
|
dynamicMetadata?: Partial<DynamicModule> | undefined;
|
|
17
17
|
};
|
|
18
|
-
isDynamicModule(module: Type
|
|
18
|
+
isDynamicModule(module: Type | DynamicModule | ForwardReference): module is DynamicModule;
|
|
19
19
|
}
|
|
@@ -14,7 +14,7 @@ export declare class LazyModuleLoader {
|
|
|
14
14
|
private readonly modulesContainer;
|
|
15
15
|
private readonly moduleOverrides?;
|
|
16
16
|
constructor(dependenciesScanner: DependenciesScanner, instanceLoader: InstanceLoader, moduleCompiler: ModuleCompiler, modulesContainer: ModulesContainer, moduleOverrides?: ModuleOverride[] | undefined);
|
|
17
|
-
load(loaderFn: () => Promise<Type
|
|
17
|
+
load(loaderFn: () => Promise<Type | DynamicModule> | Type | DynamicModule, loadOpts?: LazyModuleLoaderLoadOptions): Promise<ModuleRef>;
|
|
18
18
|
private registerLoggerConfiguration;
|
|
19
19
|
private createLazyModulesContainer;
|
|
20
20
|
private getTargetModuleRef;
|
|
@@ -18,7 +18,7 @@ export declare class Module {
|
|
|
18
18
|
private _initOnPreview;
|
|
19
19
|
private _isGlobal;
|
|
20
20
|
private _token;
|
|
21
|
-
constructor(_metatype: Type
|
|
21
|
+
constructor(_metatype: Type, container: VenokContainer);
|
|
22
22
|
get id(): string;
|
|
23
23
|
get token(): string;
|
|
24
24
|
set token(token: string);
|
|
@@ -33,7 +33,7 @@ export declare class Module {
|
|
|
33
33
|
get entryProviders(): Array<InstanceWrapper<Injectable>>;
|
|
34
34
|
get exports(): Set<InjectionToken>;
|
|
35
35
|
get instance(): VenokModule;
|
|
36
|
-
get metatype(): Type
|
|
36
|
+
get metatype(): Type;
|
|
37
37
|
get distance(): number;
|
|
38
38
|
set distance(value: number);
|
|
39
39
|
addCoreProviders(): void;
|
|
@@ -3,11 +3,11 @@ import { DynamicModule } from "@venok/core/interfaces/modules";
|
|
|
3
3
|
export declare class TokenFactory {
|
|
4
4
|
private readonly moduleTokenCache;
|
|
5
5
|
private readonly moduleIdsCache;
|
|
6
|
-
create(metatype: Type
|
|
6
|
+
create(metatype: Type, dynamicModuleMetadata?: Partial<DynamicModule> | undefined): string;
|
|
7
7
|
getStaticModuleToken(moduleId: string, moduleName: string): string;
|
|
8
8
|
getStringifiedOpaqueToken(opaqueToken: object | undefined): string;
|
|
9
|
-
getModuleId(metatype: Type
|
|
10
|
-
getModuleName(metatype: Type
|
|
9
|
+
getModuleId(metatype: Type): string;
|
|
10
|
+
getModuleName(metatype: Type): string;
|
|
11
11
|
private hashString;
|
|
12
12
|
private replacer;
|
|
13
13
|
}
|
|
@@ -110,7 +110,7 @@ SerializedGraph.INTERNAL_PROVIDERS = [
|
|
|
110
110
|
ref_1.ModuleRef,
|
|
111
111
|
// HttpAdapterHost,
|
|
112
112
|
loader_1.LazyModuleLoader,
|
|
113
|
-
//
|
|
113
|
+
// VenokContextCreator,
|
|
114
114
|
container_1.ModulesContainer,
|
|
115
115
|
services_1.Reflector,
|
|
116
116
|
SerializedGraph,
|
|
@@ -12,6 +12,6 @@ export declare class InterceptorsContextCreator extends ContextCreator {
|
|
|
12
12
|
create(instance: object, callback: (...args: unknown[]) => unknown, module: string, contextId?: import("@venok/core/injector/instance/wrapper").ContextId, inquirerId?: string): VenokInterceptor[];
|
|
13
13
|
createConcreteContext<T extends any[], R extends any[]>(metadata: T, contextId?: import("@venok/core/injector/instance/wrapper").ContextId, inquirerId?: string): R;
|
|
14
14
|
getInterceptorInstance(metatype: Function | VenokInterceptor, contextId?: import("@venok/core/injector/instance/wrapper").ContextId, inquirerId?: string): VenokInterceptor | null;
|
|
15
|
-
getInstanceByMetatype(metatype: Type
|
|
15
|
+
getInstanceByMetatype(metatype: Type): InstanceWrapper | undefined;
|
|
16
16
|
getGlobalMetadata<T extends unknown[]>(contextId?: import("@venok/core/injector/instance/wrapper").ContextId, inquirerId?: string): T;
|
|
17
17
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./arguments-host.interface"), exports);
|
|
18
|
+
__exportStar(require("./execution.interface"), exports);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./exception-filter.interface"), exports);
|
|
18
|
+
__exportStar(require("./guards.interface"), exports);
|
|
19
|
+
__exportStar(require("./interceptor.interface"), exports);
|
|
20
|
+
__exportStar(require("./pipes.interface"), exports);
|
|
@@ -14,7 +14,7 @@ export interface ArgumentMetadata {
|
|
|
14
14
|
* Underlying base type (e.g., `String`) of the parameter, based on the type
|
|
15
15
|
* definition in the route handler.
|
|
16
16
|
*/
|
|
17
|
-
readonly metatype?: Type
|
|
17
|
+
readonly metatype?: Type | undefined;
|
|
18
18
|
/**
|
|
19
19
|
* String passed as an argument to the decorator.
|
|
20
20
|
* Example: `@Body('userId')` would yield `userId`
|
package/interfaces/index.d.ts
CHANGED
package/interfaces/index.js
CHANGED
|
@@ -15,6 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./application"), exports);
|
|
18
|
+
__exportStar(require("./context"), exports);
|
|
19
|
+
__exportStar(require("./features"), exports);
|
|
18
20
|
__exportStar(require("./modules"), exports);
|
|
19
21
|
__exportStar(require("./abstract.interface"), exports);
|
|
20
22
|
__exportStar(require("./helper.interface"), exports);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ForwardReference } from "@venok/core/interfaces/modules/forward-reference.interface";
|
|
2
2
|
import { Type } from "@venok/core/interfaces";
|
|
3
3
|
import { DynamicModule } from "@venok/core/interfaces/modules/dynamic-module.interface";
|
|
4
|
-
export type ModuleDefinition = ForwardReference | Type
|
|
4
|
+
export type ModuleDefinition = ForwardReference | Type | DynamicModule | Promise<DynamicModule>;
|
|
@@ -10,7 +10,7 @@ export interface ModuleMetadata {
|
|
|
10
10
|
* Optional list of imported modules that export the providers which are
|
|
11
11
|
* required in this module.
|
|
12
12
|
*/
|
|
13
|
-
imports?: Array<Type
|
|
13
|
+
imports?: Array<Type | DynamicModule | Promise<DynamicModule> | ForwardReference>;
|
|
14
14
|
/**
|
|
15
15
|
* Optional list of providers that will be instantiated by the Venok injector
|
|
16
16
|
* and that may be shared at least across this module.
|
|
@@ -4,7 +4,7 @@ import { InjectionToken, OptionalFactoryDependency } from "@venok/core/interface
|
|
|
4
4
|
*
|
|
5
5
|
* @publicApi
|
|
6
6
|
*/
|
|
7
|
-
export type Provider<T = any> = Type
|
|
7
|
+
export type Provider<T = any> = Type | ClassProvider<T> | ValueProvider<T> | FactoryProvider<T> | ExistingProvider<T>;
|
|
8
8
|
/**
|
|
9
9
|
* Interface defining a *Class* type provider.
|
|
10
10
|
*
|
package/package.json
CHANGED
|
@@ -12,7 +12,7 @@ export declare class PipesContextCreator extends ContextCreator {
|
|
|
12
12
|
create(instance: object, callback: (...args: unknown[]) => unknown, moduleKey: string, contextId?: import("@venok/core/injector/instance/wrapper").ContextId, inquirerId?: string): PipeTransform[];
|
|
13
13
|
createConcreteContext<T extends any[], R extends any[]>(metadata: T, contextId?: import("@venok/core/injector/instance/wrapper").ContextId, inquirerId?: string): R;
|
|
14
14
|
getPipeInstance(pipe: Function | PipeTransform, contextId?: import("@venok/core/injector/instance/wrapper").ContextId, inquirerId?: string): PipeTransform | null;
|
|
15
|
-
getInstanceByMetatype(metatype: Type
|
|
15
|
+
getInstanceByMetatype(metatype: Type): InstanceWrapper | undefined;
|
|
16
16
|
getGlobalMetadata<T extends unknown[]>(contextId?: import("@venok/core/injector/instance/wrapper").ContextId, inquirerId?: string): T;
|
|
17
17
|
setModuleContext(context: string): void;
|
|
18
18
|
}
|
package/scanner.d.ts
CHANGED
|
@@ -10,8 +10,8 @@ import { InstanceWrapper } from "@venok/core/injector/instance/wrapper";
|
|
|
10
10
|
import { Injectable } from "@venok/core/interfaces/injectable.interface";
|
|
11
11
|
interface ModulesScanParameters {
|
|
12
12
|
moduleDefinition: ModuleDefinition;
|
|
13
|
-
scope?: Type
|
|
14
|
-
ctxRegistry?: (ForwardReference | DynamicModule | Type
|
|
13
|
+
scope?: Type[];
|
|
14
|
+
ctxRegistry?: (ForwardReference | DynamicModule | Type)[];
|
|
15
15
|
overrides?: ModuleOverride[];
|
|
16
16
|
lazy?: boolean;
|
|
17
17
|
}
|
|
@@ -22,19 +22,19 @@ export declare class DependenciesScanner {
|
|
|
22
22
|
private readonly applicationConfig;
|
|
23
23
|
private readonly applicationProvidersApplyMap;
|
|
24
24
|
constructor(container: VenokContainer, metadataScanner: MetadataScanner, graphInspector: GraphInspector, applicationConfig?: ApplicationConfig);
|
|
25
|
-
scan(module: Type
|
|
25
|
+
scan(module: Type, options?: {
|
|
26
26
|
overrides?: ModuleOverride[];
|
|
27
27
|
}): Promise<void>;
|
|
28
28
|
scanForModules({ moduleDefinition, lazy, scope, ctxRegistry, overrides, }: ModulesScanParameters): Promise<Module[]>;
|
|
29
|
-
insertModule(moduleDefinition: any, scope: Type
|
|
29
|
+
insertModule(moduleDefinition: any, scope: Type[]): Promise<{
|
|
30
30
|
moduleRef: Module;
|
|
31
31
|
inserted: boolean;
|
|
32
32
|
} | undefined>;
|
|
33
33
|
scanModulesForDependencies(modules?: Map<string, Module>): Promise<void>;
|
|
34
|
-
reflectImports(module: Type
|
|
35
|
-
reflectProviders(module: Type
|
|
34
|
+
reflectImports(module: Type, token: string, context: string): Promise<void>;
|
|
35
|
+
reflectProviders(module: Type, token: string): void;
|
|
36
36
|
reflectDynamicMetadata(cls: Type<Injectable>, token: string): void;
|
|
37
|
-
reflectExports(module: Type
|
|
37
|
+
reflectExports(module: Type, token: string): void;
|
|
38
38
|
reflectInjectables(component: Type<Injectable>, token: string, metadataKey: keyof typeof ENHANCER_KEY_TO_SUBTYPE_MAP): void;
|
|
39
39
|
reflectParamInjectables(component: Type<Injectable>, token: string, metadataKey: string): void;
|
|
40
40
|
reflectKeyMetadata(component: Type<Injectable>, key: string, methodKey: string): {
|
|
@@ -50,7 +50,7 @@ export declare class DependenciesScanner {
|
|
|
50
50
|
private insertOrOverrideModule;
|
|
51
51
|
private getOverrideModuleByModule;
|
|
52
52
|
private overrideModule;
|
|
53
|
-
reflectMetadata<T = any>(metadataKey: string, metatype: Type
|
|
53
|
+
reflectMetadata<T = any>(metadataKey: string, metatype: Type): T[];
|
|
54
54
|
registerCoreModule(overrides?: ModuleOverride[]): Promise<void>;
|
|
55
55
|
/**
|
|
56
56
|
* Add either request or transient globally scoped enhancers
|
|
@@ -64,7 +64,7 @@ export declare class DependenciesScanner {
|
|
|
64
64
|
getApplyRequestProvidersMap(): {
|
|
65
65
|
[type: string]: Function;
|
|
66
66
|
};
|
|
67
|
-
isDynamicModule(module: Type
|
|
67
|
+
isDynamicModule(module: Type | DynamicModule): module is DynamicModule;
|
|
68
68
|
/**
|
|
69
69
|
* @param metatype
|
|
70
70
|
* @returns `true` if `metatype` is annotated with the `@Injectable()` decorator.
|
|
@@ -46,7 +46,7 @@ export declare class Reflector {
|
|
|
46
46
|
* @param target context (decorated object) to retrieve metadata from
|
|
47
47
|
*
|
|
48
48
|
*/
|
|
49
|
-
get<T extends ReflectableDecorator<any>>(decorator: T, target: Type
|
|
49
|
+
get<T extends ReflectableDecorator<any>>(decorator: T, target: Type | Function): T extends ReflectableDecorator<any, infer R> ? R : unknown;
|
|
50
50
|
/**
|
|
51
51
|
* Retrieve metadata for a specified key for a specified target.
|
|
52
52
|
*
|
|
@@ -57,7 +57,7 @@ export declare class Reflector {
|
|
|
57
57
|
* @param target context (decorated object) to retrieve metadata from
|
|
58
58
|
*
|
|
59
59
|
*/
|
|
60
|
-
get<TResult = any, TKey = any>(metadataKey: TKey, target: Type
|
|
60
|
+
get<TResult = any, TKey = any>(metadataKey: TKey, target: Type | Function): TResult;
|
|
61
61
|
/**
|
|
62
62
|
* Retrieve metadata for a specified decorator for a specified set of targets.
|
|
63
63
|
*
|
|
@@ -65,7 +65,7 @@ export declare class Reflector {
|
|
|
65
65
|
* @param targets context (decorated objects) to retrieve metadata from
|
|
66
66
|
*
|
|
67
67
|
*/
|
|
68
|
-
getAll<T extends ReflectableDecorator<any>>(decorator: T, targets: (Type
|
|
68
|
+
getAll<T extends ReflectableDecorator<any>>(decorator: T, targets: (Type | Function)[]): T extends ReflectableDecorator<infer R> ? (R extends Array<any> ? R : R[]) : unknown;
|
|
69
69
|
/**
|
|
70
70
|
* Retrieve metadata for a specified key for a specified set of targets.
|
|
71
71
|
*
|
|
@@ -73,7 +73,7 @@ export declare class Reflector {
|
|
|
73
73
|
* @param targets context (decorated objects) to retrieve metadata from
|
|
74
74
|
*
|
|
75
75
|
*/
|
|
76
|
-
getAll<TResult extends any[] = any[], TKey = any>(metadataKey: TKey, targets: (Type
|
|
76
|
+
getAll<TResult extends any[] = any[], TKey = any>(metadataKey: TKey, targets: (Type | Function)[]): TResult;
|
|
77
77
|
/**
|
|
78
78
|
* Retrieve metadata for a specified decorator for a specified set of targets and merge results.
|
|
79
79
|
*
|
|
@@ -81,7 +81,7 @@ export declare class Reflector {
|
|
|
81
81
|
* @param targets context (decorated objects) to retrieve metadata from
|
|
82
82
|
*
|
|
83
83
|
*/
|
|
84
|
-
getAllAndMerge<T extends ReflectableDecorator<any>>(decorator: T, targets: (Type
|
|
84
|
+
getAllAndMerge<T extends ReflectableDecorator<any>>(decorator: T, targets: (Type | Function)[]): T extends ReflectableDecorator<infer R> ? R : unknown;
|
|
85
85
|
/**
|
|
86
86
|
* Retrieve metadata for a specified key for a specified set of targets and merge results.
|
|
87
87
|
*
|
|
@@ -89,7 +89,7 @@ export declare class Reflector {
|
|
|
89
89
|
* @param targets context (decorated objects) to retrieve metadata from
|
|
90
90
|
*
|
|
91
91
|
*/
|
|
92
|
-
getAllAndMerge<TResult extends any[] | object = any[], TKey = any>(metadataKey: TKey, targets: (Type
|
|
92
|
+
getAllAndMerge<TResult extends any[] | object = any[], TKey = any>(metadataKey: TKey, targets: (Type | Function)[]): TResult;
|
|
93
93
|
/**
|
|
94
94
|
* Retrieve metadata for a specified decorator for a specified set of targets and return a first not undefined value.
|
|
95
95
|
*
|
|
@@ -97,7 +97,7 @@ export declare class Reflector {
|
|
|
97
97
|
* @param targets context (decorated objects) to retrieve metadata from
|
|
98
98
|
*
|
|
99
99
|
*/
|
|
100
|
-
getAllAndOverride<T extends ReflectableDecorator<any>>(decorator: T, targets: (Type
|
|
100
|
+
getAllAndOverride<T extends ReflectableDecorator<any>>(decorator: T, targets: (Type | Function)[]): T extends ReflectableDecorator<infer R> ? R : unknown;
|
|
101
101
|
/**
|
|
102
102
|
* Retrieve metadata for a specified key for a specified set of targets and return a first not undefined value.
|
|
103
103
|
*
|
|
@@ -105,6 +105,6 @@ export declare class Reflector {
|
|
|
105
105
|
* @param targets context (decorated objects) to retrieve metadata from
|
|
106
106
|
*
|
|
107
107
|
*/
|
|
108
|
-
getAllAndOverride<TResult = any, TKey = any>(metadataKey: TKey, targets: (Type
|
|
108
|
+
getAllAndOverride<TResult = any, TKey = any>(metadataKey: TKey, targets: (Type | Function)[]): TResult;
|
|
109
109
|
}
|
|
110
110
|
export {};
|
|
@@ -6,15 +6,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const chai_1 = require("chai");
|
|
7
7
|
const rxjs_1 = require("rxjs");
|
|
8
8
|
const sinon_1 = __importDefault(require("sinon"));
|
|
9
|
-
const
|
|
9
|
+
const context_1 = require("@venok/core/context/context");
|
|
10
10
|
const guards_1 = require("@venok/core/guards");
|
|
11
11
|
const pipes_1 = require("@venok/core/pipes");
|
|
12
12
|
const container_1 = require("@venok/core/injector/container");
|
|
13
13
|
const interceptors_1 = require("@venok/core/interceptors");
|
|
14
14
|
const container_2 = require("@venok/core/injector/module/container");
|
|
15
|
-
const
|
|
15
|
+
const context_2 = require("@venok/core/filters/context");
|
|
16
16
|
const module_1 = require("@venok/core/injector/module/module");
|
|
17
|
-
describe("
|
|
17
|
+
describe("VenokContextCreator", () => {
|
|
18
18
|
let contextCreator;
|
|
19
19
|
let callback;
|
|
20
20
|
let bindSpy;
|
|
@@ -33,7 +33,7 @@ describe("ExternalContextCreator", () => {
|
|
|
33
33
|
pipesConsumer = new pipes_1.PipesConsumer();
|
|
34
34
|
guardsContextCreator = new guards_1.GuardsContextCreator(new container_1.VenokContainer());
|
|
35
35
|
sinon_1.default.stub(guardsContextCreator, "create").returns([{}]);
|
|
36
|
-
contextCreator = new
|
|
36
|
+
contextCreator = new context_1.VenokContextCreator(guardsContextCreator, guardsConsumer, new interceptors_1.InterceptorsContextCreator(new container_1.VenokContainer()), new interceptors_1.InterceptorsConsumer(), new container_2.ModulesContainer(), new pipes_1.PipesContextCreator(new container_1.VenokContainer()), pipesConsumer, new context_2.VenokExceptionFilterContext(new container_1.VenokContainer()));
|
|
37
37
|
});
|
|
38
38
|
describe("create", () => {
|
|
39
39
|
it('should call "getContextModuleName" with expected argument', (done) => {
|
|
@@ -5,26 +5,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const chai_1 = require("chai");
|
|
7
7
|
const sinon_1 = __importDefault(require("sinon"));
|
|
8
|
-
const proxy_1 = require("@venok/core/context/
|
|
9
|
-
const handler_1 = require("@venok/core/exceptions/
|
|
8
|
+
const proxy_1 = require("@venok/core/context/proxy");
|
|
9
|
+
const handler_1 = require("@venok/core/exceptions/handler");
|
|
10
10
|
const exceptions_1 = require("@venok/core/errors/exceptions");
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
const filter_1 = require("@venok/core/filters/filter");
|
|
12
|
+
describe("VenokProxy", () => {
|
|
13
|
+
let venokProxy;
|
|
13
14
|
let handlerMock;
|
|
14
15
|
let handler;
|
|
15
16
|
beforeEach(() => {
|
|
16
|
-
handler = new handler_1.
|
|
17
|
+
handler = new handler_1.VenokExceptionsHandler(new filter_1.VenokExceptionFilter());
|
|
17
18
|
handlerMock = sinon_1.default.mock(handler);
|
|
18
|
-
|
|
19
|
+
venokProxy = new proxy_1.VenokProxy();
|
|
19
20
|
});
|
|
20
21
|
describe("createProxy", () => {
|
|
21
22
|
it("should method return thunk", () => {
|
|
22
|
-
const proxy =
|
|
23
|
+
const proxy = venokProxy.createProxy(() => { }, handler);
|
|
23
24
|
(0, chai_1.expect)(typeof proxy === "function").to.be.true;
|
|
24
25
|
});
|
|
25
26
|
it("should method encapsulate callback passed as argument", () => {
|
|
26
27
|
const expectation = handlerMock.expects("next").once();
|
|
27
|
-
const proxy =
|
|
28
|
+
const proxy = venokProxy.createProxy((req, res, next) => {
|
|
28
29
|
throw new exceptions_1.RuntimeException("test");
|
|
29
30
|
}, handler);
|
|
30
31
|
proxy(null, null, null);
|
|
@@ -32,7 +33,7 @@ describe("ExternalErrorProxy", () => {
|
|
|
32
33
|
});
|
|
33
34
|
it("should method encapsulate async callback passed as argument", (done) => {
|
|
34
35
|
const expectation = handlerMock.expects("next").once();
|
|
35
|
-
const proxy =
|
|
36
|
+
const proxy = venokProxy.createProxy(async (req, res, next) => {
|
|
36
37
|
throw new exceptions_1.RuntimeException("test");
|
|
37
38
|
}, handler);
|
|
38
39
|
proxy(null, null, null);
|
|
@@ -6,11 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const chai_1 = require("chai");
|
|
7
7
|
const rxjs_1 = require("rxjs");
|
|
8
8
|
const sinon_1 = __importDefault(require("sinon"));
|
|
9
|
-
const handler_1 = require("@venok/core/exceptions/
|
|
10
|
-
|
|
9
|
+
const handler_1 = require("@venok/core/exceptions/handler");
|
|
10
|
+
const filter_1 = require("@venok/core/filters/filter");
|
|
11
|
+
describe("VenokExceptionsHandler", () => {
|
|
11
12
|
let handler;
|
|
12
13
|
beforeEach(() => {
|
|
13
|
-
handler = new handler_1.
|
|
14
|
+
handler = new handler_1.VenokExceptionsHandler(new filter_1.VenokExceptionFilter());
|
|
14
15
|
});
|
|
15
16
|
describe("next", () => {
|
|
16
17
|
// it("should method returns expected stream with message when exception is unknown", () => {
|
|
@@ -41,7 +42,7 @@ describe("ExternalExceptionsHandler", () => {
|
|
|
41
42
|
describe("invokeCustomFilters", () => {
|
|
42
43
|
describe("when filters array is empty", () => {
|
|
43
44
|
it("should return identity", () => {
|
|
44
|
-
(0, chai_1.expect)(handler.invokeCustomFilters(null, null)).to.be.
|
|
45
|
+
(0, chai_1.expect)(handler.invokeCustomFilters(null, null)).to.be.false;
|
|
45
46
|
});
|
|
46
47
|
});
|
|
47
48
|
describe("when filters array is not empty", () => {
|
|
@@ -81,7 +82,7 @@ describe("ExternalExceptionsHandler", () => {
|
|
|
81
82
|
(0, chai_1.expect)(funcSpy.notCalled).to.be.true;
|
|
82
83
|
});
|
|
83
84
|
it("should return null", () => {
|
|
84
|
-
(0, chai_1.expect)(handler.invokeCustomFilters(new TestException(), null)).to.be.
|
|
85
|
+
(0, chai_1.expect)(handler.invokeCustomFilters(new TestException(), null)).to.be.false;
|
|
85
86
|
});
|
|
86
87
|
});
|
|
87
88
|
});
|
|
@@ -26,17 +26,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.Filter = void 0;
|
|
27
27
|
const chai_1 = require("chai");
|
|
28
28
|
const sinon = __importStar(require("sinon"));
|
|
29
|
-
const
|
|
29
|
+
const context_creator_1 = require("@venok/core/filters/context-creator");
|
|
30
30
|
const container_1 = require("@venok/core/injector/container");
|
|
31
31
|
class Filter {
|
|
32
32
|
}
|
|
33
33
|
exports.Filter = Filter;
|
|
34
|
-
describe("
|
|
34
|
+
describe("ExceptionFilterContextCreator", () => {
|
|
35
35
|
let filter;
|
|
36
36
|
let container;
|
|
37
37
|
beforeEach(() => {
|
|
38
38
|
container = new container_1.VenokContainer();
|
|
39
|
-
filter = new
|
|
39
|
+
filter = new context_creator_1.ExceptionFilterContextCreator(container);
|
|
40
40
|
});
|
|
41
41
|
describe("getFilterInstance", () => {
|
|
42
42
|
describe("when param is an object", () => {
|
|
@@ -8,16 +8,16 @@ const container_2 = require("@venok/core/injector/container");
|
|
|
8
8
|
const internal_core_module_1 = require("@venok/core/injector/internal-core-module/internal-core-module");
|
|
9
9
|
const loader_1 = require("@venok/core/injector/module/lazy/loader");
|
|
10
10
|
const serialized_graph_1 = require("@venok/core/inspector/serialized-graph");
|
|
11
|
-
const
|
|
11
|
+
const context_1 = require("@venok/core/context/context");
|
|
12
12
|
describe("InternalCoreModuleFactory", () => {
|
|
13
13
|
it("should return the internal core module definition", () => {
|
|
14
14
|
const moduleDefinition = internal_core_module_factory_1.InternalCoreModuleFactory.create(new container_2.VenokContainer(), null, null, null, null);
|
|
15
15
|
(0, chai_1.expect)(moduleDefinition.module).to.equal(internal_core_module_1.InternalCoreModule);
|
|
16
16
|
const providedInjectables = moduleDefinition.providers.map((item) => item.provide);
|
|
17
17
|
(0, chai_1.expect)(providedInjectables).to.deep.equal([
|
|
18
|
-
|
|
18
|
+
container_2.VenokContainer,
|
|
19
|
+
context_1.VenokContextCreator,
|
|
19
20
|
container_1.ModulesContainer,
|
|
20
|
-
// HttpAdapterHost,
|
|
21
21
|
loader_1.LazyModuleLoader,
|
|
22
22
|
serialized_graph_1.SerializedGraph,
|
|
23
23
|
]);
|