@nmtjs/core 0.15.0-beta.2 → 0.15.0-beta.20
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/constants.d.ts +18 -0
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -0
- package/dist/container.d.ts +47 -0
- package/dist/container.js +1 -0
- package/dist/container.js.map +1 -0
- package/dist/enums.d.ts +6 -0
- package/dist/enums.js +1 -0
- package/dist/enums.js.map +1 -0
- package/dist/hooks.d.ts +14 -0
- package/dist/hooks.js +8 -2
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/injectables.d.ts +88 -0
- package/dist/injectables.js +1 -0
- package/dist/injectables.js.map +1 -0
- package/dist/logger.d.ts +11 -0
- package/dist/logger.js +1 -0
- package/dist/logger.js.map +1 -0
- package/dist/metadata.d.ts +13 -0
- package/dist/metadata.js +1 -0
- package/dist/metadata.js.map +1 -0
- package/dist/plugin.d.ts +9 -0
- package/dist/plugin.js +1 -0
- package/dist/plugin.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/functions.d.ts +7 -0
- package/dist/utils/functions.js +1 -0
- package/dist/utils/functions.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/pool.d.ts +18 -0
- package/dist/utils/pool.js +1 -0
- package/dist/utils/pool.js.map +1 -0
- package/dist/utils/semaphore.d.ts +13 -0
- package/dist/utils/semaphore.js +1 -0
- package/dist/utils/semaphore.js.map +1 -0
- package/package.json +7 -6
- package/src/constants.ts +34 -0
- package/src/container.ts +509 -0
- package/src/enums.ts +6 -0
- package/src/hooks.ts +30 -0
- package/src/index.ts +14 -0
- package/src/injectables.ts +359 -0
- package/src/logger.ts +103 -0
- package/src/metadata.ts +24 -0
- package/src/plugin.ts +16 -0
- package/src/types.ts +3 -0
- package/src/utils/functions.ts +31 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/pool.ts +111 -0
- package/src/utils/semaphore.ts +63 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const kOptionalDependency: unique symbol;
|
|
2
|
+
export type kOptionalDependency = typeof kOptionalDependency;
|
|
3
|
+
export declare const kInjectable: unique symbol;
|
|
4
|
+
export type kInjectable = typeof kInjectable;
|
|
5
|
+
export declare const kLazyInjectable: unique symbol;
|
|
6
|
+
export type kLazyInjectable = typeof kLazyInjectable;
|
|
7
|
+
export declare const kValueInjectable: unique symbol;
|
|
8
|
+
export type kValueInjectable = typeof kValueInjectable;
|
|
9
|
+
export declare const kFactoryInjectable: unique symbol;
|
|
10
|
+
export type kFactoryInjectable = typeof kFactoryInjectable;
|
|
11
|
+
export declare const kProvider: unique symbol;
|
|
12
|
+
export type kProvider = typeof kProvider;
|
|
13
|
+
export declare const kPlugin: unique symbol;
|
|
14
|
+
export type kPlugin = typeof kPlugin;
|
|
15
|
+
export declare const kMetadata: unique symbol;
|
|
16
|
+
export type kMetadata = typeof kMetadata;
|
|
17
|
+
export declare const kHook: unique symbol;
|
|
18
|
+
export type kHook = typeof kHook;
|
package/dist/constants.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAkB,MAAM,CAAC,GAAG,CAC1D,+BAA+B,CAChC,CAAA;AAGD,MAAM,CAAC,MAAM,WAAW,GAAkB,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;AAG7E,MAAM,CAAC,MAAM,eAAe,GAAkB,MAAM,CAAC,GAAG,CACtD,2BAA2B,CAC5B,CAAA;AAGD,MAAM,CAAC,MAAM,gBAAgB,GAAkB,MAAM,CAAC,GAAG,CACvD,4BAA4B,CAC7B,CAAA;AAGD,MAAM,CAAC,MAAM,kBAAkB,GAAkB,MAAM,CAAC,GAAG,CACzD,8BAA8B,CAC/B,CAAA;AAGD,MAAM,CAAC,MAAM,SAAS,GAAkB,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;AAGzE,MAAM,CAAC,MAAM,OAAO,GAAkB,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAGrE,MAAM,CAAC,MAAM,SAAS,GAAkB,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;AAGzE,MAAM,CAAC,MAAM,KAAK,GAAkB,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { PerformanceMeasure } from 'node:perf_hooks';
|
|
2
|
+
import type { AnyInjectable, Dependencies, DependencyContext, Injection, ResolveInjectableType } from './injectables.ts';
|
|
3
|
+
import type { Logger } from './logger.ts';
|
|
4
|
+
import { Scope } from './enums.ts';
|
|
5
|
+
type InstanceWrapper = {
|
|
6
|
+
private: any;
|
|
7
|
+
public: any;
|
|
8
|
+
context: any;
|
|
9
|
+
};
|
|
10
|
+
type ContainerOptions = {
|
|
11
|
+
logger: Logger;
|
|
12
|
+
};
|
|
13
|
+
export declare class Container {
|
|
14
|
+
private readonly runtime;
|
|
15
|
+
readonly scope: Exclude<Scope, Scope.Transient>;
|
|
16
|
+
private readonly parent?;
|
|
17
|
+
readonly instances: Map<AnyInjectable, InstanceWrapper[]>;
|
|
18
|
+
private readonly resolvers;
|
|
19
|
+
private readonly injectables;
|
|
20
|
+
private readonly dependants;
|
|
21
|
+
private disposing;
|
|
22
|
+
constructor(runtime: ContainerOptions, scope?: Exclude<Scope, Scope.Transient>, parent?: Container | undefined);
|
|
23
|
+
initialize(injectables: Iterable<AnyInjectable>): Promise<PerformanceMeasure[]>;
|
|
24
|
+
fork(scope: Exclude<Scope, Scope.Transient>): Container;
|
|
25
|
+
find(scope: Exclude<Scope, Scope.Transient>): Container | undefined;
|
|
26
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
27
|
+
dispose(): Promise<void>;
|
|
28
|
+
containsWithinSelf(injectable: AnyInjectable): boolean;
|
|
29
|
+
contains(injectable: AnyInjectable): boolean;
|
|
30
|
+
get<T extends AnyInjectable>(injectable: T): ResolveInjectableType<T>;
|
|
31
|
+
resolve<T extends AnyInjectable>(injectable: T, measurements?: PerformanceMeasure[]): Promise<ResolveInjectableType<T>>;
|
|
32
|
+
createContext<T extends Dependencies>(dependencies: T): Promise<DependencyContext<T>>;
|
|
33
|
+
provide<T extends Injection[]>(injections: T): any;
|
|
34
|
+
provide<T extends AnyInjectable>(injectable: T, value: ResolveInjectableType<T> | AnyInjectable<ResolveInjectableType<T>>): any;
|
|
35
|
+
satisfies(injectable: AnyInjectable): boolean;
|
|
36
|
+
disposeInjectableInstances(injectable: AnyInjectable): Promise<void>;
|
|
37
|
+
disposeInjectableInstance(injectable: AnyInjectable, instance: any, context: any): Promise<void>;
|
|
38
|
+
private createInjectableContext;
|
|
39
|
+
private resolveInjectable;
|
|
40
|
+
private createResolution;
|
|
41
|
+
private createInjectFunction;
|
|
42
|
+
private createDisposeFunction;
|
|
43
|
+
private getDisposalOrder;
|
|
44
|
+
}
|
|
45
|
+
export type InjectFn = ReturnType<Container['createInjectFunction']>;
|
|
46
|
+
export type DisposeFn = ReturnType<Container['createDisposeFunction']>;
|
|
47
|
+
export {};
|
package/dist/container.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
|
package/dist/enums.d.ts
ADDED
package/dist/enums.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,KAKX;AALD,WAAY,KAAK;IACf,0BAAiB,CAAA;IACjB,kCAAyB,CAAA;IACzB,sBAAa,CAAA;IACb,gCAAuB,CAAA;AACzB,CAAC,EALW,KAAK,KAAL,KAAK,QAKhB"}
|
package/dist/hooks.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { NestedHooks } from 'hookable';
|
|
2
|
+
import { Hookable } from 'hookable';
|
|
3
|
+
import type { HookTypes } from './types.ts';
|
|
4
|
+
export declare class Hooks<T extends HookTypes = HookTypes> extends Hookable<T> {
|
|
5
|
+
_: {
|
|
6
|
+
config: NestedHooks<T>;
|
|
7
|
+
};
|
|
8
|
+
once<H extends keyof T>(hook: H): {
|
|
9
|
+
controller: globalThis.AbortController;
|
|
10
|
+
signal: AbortSignal;
|
|
11
|
+
unregister: () => void;
|
|
12
|
+
[Symbol.dispose]: () => void;
|
|
13
|
+
};
|
|
14
|
+
}
|
package/dist/hooks.js
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { Hookable } from 'hookable';
|
|
2
2
|
export class Hooks extends Hookable {
|
|
3
3
|
_;
|
|
4
|
-
|
|
4
|
+
once(hook) {
|
|
5
5
|
const controller = new AbortController();
|
|
6
6
|
const unregister = this.hookOnce(String(hook),
|
|
7
7
|
//@ts-expect-error
|
|
8
8
|
() => controller.abort());
|
|
9
|
-
return {
|
|
9
|
+
return {
|
|
10
|
+
controller,
|
|
11
|
+
signal: controller.signal,
|
|
12
|
+
unregister,
|
|
13
|
+
[Symbol.dispose]: unregister,
|
|
14
|
+
};
|
|
10
15
|
}
|
|
11
16
|
}
|
|
17
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAInC,MAAM,OAAO,KAAuC,SAAQ,QAAW;IACrE,CAAC,CAA6B;IAE9B,IAAI,CACF,IAAO;QAOP,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAC9B,MAAM,CAAC,IAAI,CAAC;QACZ,kBAAkB;QAClB,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CACzB,CAAA;QACD,OAAO;YACL,UAAU;YACV,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,UAAU;YACV,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,UAAU;SAC7B,CAAA;IACH,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './constants.ts';
|
|
2
|
+
export * from './container.ts';
|
|
3
|
+
export * from './enums.ts';
|
|
4
|
+
export * from './hooks.ts';
|
|
5
|
+
export * from './injectables.ts';
|
|
6
|
+
export * from './logger.ts';
|
|
7
|
+
export * from './metadata.ts';
|
|
8
|
+
export * from './plugin.ts';
|
|
9
|
+
export * from './types.ts';
|
|
10
|
+
export * from './utils/index.ts';
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,8DAA8D;AAC9D,wBAAwB;AAExB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { MaybePromise } from '@nmtjs/common';
|
|
2
|
+
import type { Logger } from './logger.ts';
|
|
3
|
+
import { kFactoryInjectable, kInjectable, kLazyInjectable, kOptionalDependency, kValueInjectable } from './constants.ts';
|
|
4
|
+
import { Scope } from './enums.ts';
|
|
5
|
+
export type DependencyOptional<T extends AnyInjectable = AnyInjectable> = {
|
|
6
|
+
[kOptionalDependency]: any;
|
|
7
|
+
injectable: T;
|
|
8
|
+
};
|
|
9
|
+
export type Depedency = DependencyOptional | AnyInjectable;
|
|
10
|
+
export type Dependencies = Record<string, Depedency>;
|
|
11
|
+
export type ResolveInjectableType<T extends AnyInjectable> = T extends Injectable<infer Type, any, any> ? Type : never;
|
|
12
|
+
export interface Dependant<Deps extends Dependencies = Dependencies> {
|
|
13
|
+
dependencies: Deps;
|
|
14
|
+
label?: string;
|
|
15
|
+
stack?: string;
|
|
16
|
+
}
|
|
17
|
+
export type DependencyInjectable<T extends Depedency> = T extends AnyInjectable ? T : T extends DependencyOptional ? T['injectable'] : never;
|
|
18
|
+
export type DependencyContext<Deps extends Dependencies> = {
|
|
19
|
+
readonly [K in keyof Deps as Deps[K] extends AnyInjectable ? K : never]: Deps[K] extends AnyInjectable ? ResolveInjectableType<Deps[K]> : never;
|
|
20
|
+
} & {
|
|
21
|
+
readonly [K in keyof Deps as Deps[K] extends DependencyOptional ? K : never]?: Deps[K] extends DependencyOptional ? ResolveInjectableType<Deps[K]['injectable']> : never;
|
|
22
|
+
};
|
|
23
|
+
export type InjectableFactoryType<InjectableType, InjectableDeps extends Dependencies> = (context: DependencyContext<InjectableDeps>) => MaybePromise<InjectableType>;
|
|
24
|
+
export type InjectablePickType<Input, Output> = (injectable: Input) => Output;
|
|
25
|
+
export type InjectableDisposeType<InjectableType, InjectableDeps extends Dependencies> = (instance: InjectableType, context: DependencyContext<InjectableDeps>) => any;
|
|
26
|
+
export interface LazyInjectable<T, S extends Scope = Scope.Global> extends Dependant<{}> {
|
|
27
|
+
scope: S;
|
|
28
|
+
$withType<O extends T>(): LazyInjectable<O, S>;
|
|
29
|
+
optional(): DependencyOptional<LazyInjectable<T, S>>;
|
|
30
|
+
[kInjectable]: any;
|
|
31
|
+
[kLazyInjectable]: T;
|
|
32
|
+
}
|
|
33
|
+
export interface ValueInjectable<T> extends Dependant<{}> {
|
|
34
|
+
scope: Scope.Global;
|
|
35
|
+
value: T;
|
|
36
|
+
[kInjectable]: any;
|
|
37
|
+
[kValueInjectable]: any;
|
|
38
|
+
}
|
|
39
|
+
export interface FactoryInjectable<T, D extends Dependencies = {}, S extends Scope = Scope.Global, P = T> extends Dependant<D> {
|
|
40
|
+
scope: S;
|
|
41
|
+
factory: InjectableFactoryType<P, D>;
|
|
42
|
+
pick: InjectablePickType<P, T>;
|
|
43
|
+
dispose?: InjectableDisposeType<P, D>;
|
|
44
|
+
optional(): DependencyOptional<FactoryInjectable<T, D, S, P>>;
|
|
45
|
+
[kInjectable]: any;
|
|
46
|
+
[kFactoryInjectable]: any;
|
|
47
|
+
}
|
|
48
|
+
export type Injectable<V = any, D extends Dependencies = {}, S extends Scope = Scope> = LazyInjectable<V, S> | ValueInjectable<V> | FactoryInjectable<V, D, S, any>;
|
|
49
|
+
export type AnyInjectable<T = any, S extends Scope = Scope> = Injectable<T, any, S>;
|
|
50
|
+
export declare const isLazyInjectable: (injectable: any) => injectable is LazyInjectable<any>;
|
|
51
|
+
export declare const isFactoryInjectable: (injectable: any) => injectable is FactoryInjectable<any>;
|
|
52
|
+
export declare const isValueInjectable: (injectable: any) => injectable is ValueInjectable<any>;
|
|
53
|
+
export declare const isInjectable: (injectable: any) => injectable is AnyInjectable<any>;
|
|
54
|
+
export declare const isOptionalInjectable: (injectable: any) => injectable is DependencyOptional<any>;
|
|
55
|
+
export declare function getInjectableScope(injectable: AnyInjectable): Scope;
|
|
56
|
+
export declare function getDepedencencyInjectable(dependency: Depedency): AnyInjectable;
|
|
57
|
+
export declare function createOptionalInjectable<T extends AnyInjectable>(injectable: T): DependencyOptional<T>;
|
|
58
|
+
export declare function createLazyInjectable<T, S extends Scope = Scope.Global>(scope?: S, label?: string, stackTraceDepth?: number): LazyInjectable<T, S>;
|
|
59
|
+
export declare function createValueInjectable<T>(value: T, label?: string, stackTraceDepth?: number): ValueInjectable<T>;
|
|
60
|
+
export declare function createFactoryInjectable<T, D extends Dependencies = {}, S extends Scope = Scope.Global, P = T>(paramsOrFactory: {
|
|
61
|
+
dependencies?: D;
|
|
62
|
+
scope?: S;
|
|
63
|
+
pick?: InjectablePickType<P, T>;
|
|
64
|
+
factory: InjectableFactoryType<P, D>;
|
|
65
|
+
dispose?: InjectableDisposeType<P, D>;
|
|
66
|
+
} | InjectableFactoryType<P, D>, label?: string, stackTraceDepth?: number): FactoryInjectable<null extends T ? P : T, D, S, P>;
|
|
67
|
+
export type DependenciesSubstitution<T extends Dependencies> = {
|
|
68
|
+
[K in keyof T]?: T[K] extends AnyInjectable<infer Type> ? AnyInjectable<Type> | DependenciesSubstitution<T[K]['dependencies']> : never;
|
|
69
|
+
};
|
|
70
|
+
export declare function substitute<T extends FactoryInjectable<any, any, Scope>>(injectable: T, substitution: DependenciesSubstitution<T['dependencies']>, stackTraceDepth?: number): T;
|
|
71
|
+
export declare function compareScope(left: Scope, operator: '>' | '<' | '>=' | '<=' | '=' | '!=', right: Scope): boolean;
|
|
72
|
+
export declare const CoreInjectables: {
|
|
73
|
+
logger: ((label: string) => FactoryInjectable<Logger, {
|
|
74
|
+
logger: LazyInjectable<Logger>;
|
|
75
|
+
}>) & LazyInjectable<Logger, Scope.Global>;
|
|
76
|
+
inject: LazyInjectable<(<T extends AnyInjectable>(injectable: T, context: { [K in keyof T["dependencies"]]?: ResolveInjectableType<T["dependencies"][K]> | AnyInjectable<ResolveInjectableType<T["dependencies"][K]>> | undefined; }, scope?: Exclude<Scope, Scope.Transient>) => Promise<ResolveInjectableType<T>>) & {
|
|
77
|
+
explicit: <T extends AnyInjectable>(injectable: T, context: { [K in keyof T["dependencies"]]?: ResolveInjectableType<T["dependencies"][K]> | AnyInjectable<ResolveInjectableType<T["dependencies"][K]>> | undefined; }, scope?: Exclude<Scope, Scope.Transient>) => Promise<{
|
|
78
|
+
instance: Awaited<ResolveInjectableType<T>>;
|
|
79
|
+
[Symbol.asyncDispose]: () => Promise<void>;
|
|
80
|
+
}>;
|
|
81
|
+
}, Scope.Global>;
|
|
82
|
+
dispose: LazyInjectable<(<T extends AnyInjectable>(injectable: T, instance?: any) => Promise<void>), Scope.Global>;
|
|
83
|
+
};
|
|
84
|
+
export type Injection<T extends AnyInjectable<any, any> = AnyInjectable<any, any>> = {
|
|
85
|
+
token: T;
|
|
86
|
+
value: T extends AnyInjectable<infer R, Scope> ? R | AnyInjectable<R> : never;
|
|
87
|
+
};
|
|
88
|
+
export declare const provide: <T extends AnyInjectable<any, any>, V extends T extends AnyInjectable<infer R, Scope> ? R | AnyInjectable<R> : never>(token: T, value: V) => Injection<T>;
|
package/dist/injectables.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectables.js","sourceRoot":"","sources":["../src/injectables.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type * as pinoType from 'pino';
|
|
2
|
+
export type { StreamEntry } from 'pino';
|
|
3
|
+
export type Logger = pinoType.Logger;
|
|
4
|
+
export type LoggerOptions = pinoType.LoggerOptions;
|
|
5
|
+
export type LoggerChildOptions = pinoType.ChildLoggerOptions;
|
|
6
|
+
export type LoggingOptions = {
|
|
7
|
+
destinations?: Array<pinoType.DestinationStream | pinoType.StreamEntry<pinoType.Level>>;
|
|
8
|
+
pinoOptions?: LoggerOptions;
|
|
9
|
+
};
|
|
10
|
+
export declare const createLogger: (options: LoggingOptions | undefined, $lable: string) => pinoType.P.Logger<never, boolean>;
|
|
11
|
+
export declare const createConsolePrettyDestination: (level: pinoType.Level, sync?: boolean) => pinoType.StreamEntry;
|
package/dist/logger.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAG9C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAC7C,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAa7C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,8BAA8B;AAC9B,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,KAAK,IAAI,KAAK,SAAS,CAAA;AAC5D,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,KAAK,IAAI,KAAK,SAAS,CAAA;AAEjE,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;CAC9B,CAAA;AACD,MAAM,aAAa,GAAG;IACpB,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;CAC9B,CAAA;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,QAAQ;CACrC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAA0B,EAAE,EAAE,MAAc,EAAE,EAAE;IAC3E,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;IAE3C,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAC3C,YAAY,GAAG;YACb,8BAA8B,CAC5B,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,MAAM,CAAmB,CACzD;SACF,CAAA;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,YAAa,CAAC,MAAM,CAC3C,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CACnB,IAAI,CAAC,GAAG,CACN,GAAG,EACH,QAAQ,IAAI,WAAW;QACrB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAM,CAAC;QACxC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAC7B,EACH,MAAM,CAAC,iBAAiB,CACzB,CAAA;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAClD,MAAM,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,CAAA;IAEtE,OAAO,IAAI,CACT,EAAE,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,EAC3E,IAAI,CAAC,WAAW,CAAC,YAAa,CAAC,CAChC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,KAAqB,EACrB,IAAI,GAAG,IAAI,EACW,EAAE,CAAC,CAAC;IAC1B,KAAK;IACL,MAAM,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,2BAA2B;QACnC,mBAAmB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;QAC9C,aAAa,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAA;YACvC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,KAAe,CAAC,CAAC,CAAA;YACnE,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,GAAG,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,CAAA;YAClD,OAAO,UAAU,MAAM,IAAI,KAAK,IAAI,GAAG,EAAE,CAAA;QAC3C,CAAC;QACD,iBAAiB,EAAE;YACjB,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;SAClE;QACD,IAAI;KACL,CAAC;CACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { kMetadata } from './constants.ts';
|
|
2
|
+
export type Metadata<T = any> = {
|
|
3
|
+
key: MetadataKey<T>;
|
|
4
|
+
value: T;
|
|
5
|
+
};
|
|
6
|
+
export type MetadataKey<T = any> = {
|
|
7
|
+
[kMetadata]: string;
|
|
8
|
+
as(value: T): Metadata<T>;
|
|
9
|
+
};
|
|
10
|
+
export declare const createMetadataKey: <T>(key: string) => MetadataKey<T>;
|
|
11
|
+
export declare class MetadataStore extends Map<MetadataKey, Metadata> {
|
|
12
|
+
get<T>(key: MetadataKey<T>): T | undefined;
|
|
13
|
+
}
|
package/dist/metadata.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAS1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAI,GAAW,EAAkB,EAAE;IAClE,MAAM,WAAW,GAAG;QAClB,CAAC,SAAS,CAAC,EAAE,GAAG;QAChB,EAAE,CAAC,KAAQ;YACT,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;QACpC,CAAC;KACF,CAAA;IACD,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,OAAO,aAAc,SAAQ,GAA0B;IAC3D,GAAG,CAAI,GAAmB;QACxB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAkB,CAAA;IACxC,CAAC;CACF"}
|
package/dist/plugin.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MaybePromise } from '@nmtjs/common';
|
|
2
|
+
import { kPlugin } from './constants.ts';
|
|
3
|
+
export interface Plugin<Type = void, Context = unknown> {
|
|
4
|
+
name: string;
|
|
5
|
+
factory: (context: Context) => MaybePromise<Type>;
|
|
6
|
+
[kPlugin]: any;
|
|
7
|
+
}
|
|
8
|
+
export declare const createPlugin: <Type = void, Context = unknown>(name: string, factory: Plugin<Type, Context>["factory"]) => Plugin<Type, Context>;
|
|
9
|
+
export declare const isPlugin: (value: any) => value is Plugin;
|
package/dist/plugin.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAQxC,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,IAAY,EACZ,OAAyC,EAClB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;AAEhE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAmB,EAAE,CAAC,OAAO,IAAI,KAAK,CAAA"}
|
package/dist/types.d.ts
ADDED
package/dist/types.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { match } from '@nmtjs/common';
|
|
2
|
+
export declare function isJsFile(name: string): boolean;
|
|
3
|
+
export declare function pick<T extends object, K extends {
|
|
4
|
+
[KK in keyof T as T[KK] extends (...args: any[]) => any ? never : KK]?: true;
|
|
5
|
+
}>(obj: T, keys: K): Pick<T, keyof {
|
|
6
|
+
[KK in keyof K as K[KK] extends true ? KK : never]: K[KK];
|
|
7
|
+
}>;
|
package/dist/utils/functions.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/utils/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7B,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,IAAI,CAMlB,GAAM,EACN,IAAO;IAOP,MAAM,MAAM,GAAG,EAAS,CAAA;IACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAkC,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface PoolOptions {
|
|
2
|
+
timeout?: number;
|
|
3
|
+
}
|
|
4
|
+
export declare class PoolError extends Error {
|
|
5
|
+
}
|
|
6
|
+
export declare class Pool<T = unknown> {
|
|
7
|
+
#private;
|
|
8
|
+
private readonly options;
|
|
9
|
+
constructor(options?: PoolOptions);
|
|
10
|
+
add(item: T): void;
|
|
11
|
+
remove(item: T): void;
|
|
12
|
+
capture(timeout?: number | undefined): Promise<T>;
|
|
13
|
+
next(exclusive?: boolean, timeout?: number | undefined): Promise<T>;
|
|
14
|
+
release(item: T): void;
|
|
15
|
+
isFree(item: T): boolean;
|
|
16
|
+
get items(): T[];
|
|
17
|
+
}
|
|
18
|
+
export {};
|
package/dist/utils/pool.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../src/utils/pool.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,SAAU,SAAQ,KAAK;CAAG;AAEvC,uDAAuD;AACvD,MAAM,OAAO,IAAI;IAQc;IAP7B,MAAM,GAAa,EAAE,CAAA;IACrB,KAAK,GAAmB,EAAE,CAAA;IAC1B,MAAM,GAAoB,EAAE,CAAA;IAC5B,QAAQ,GAAW,CAAC,CAAA;IACpB,KAAK,GAAW,CAAC,CAAA;IACjB,UAAU,GAAW,CAAC,CAAA;IAEtB,YAA6B,UAAuB,EAAE;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAE1D,GAAG,CAAC,IAAO;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAA;QAC1E,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,MAAM,CAAC,IAAO;QACZ,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,eAAe,CAAC,CAAA;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAA;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,UAAU;YAAE,IAAI,CAAC,UAAU,EAAE,CAAA;QACjC,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,QAAQ,EAAE,CAAA;QACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC7B,CAAC;IAED,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;QAC1D,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,eAAe,CAAC,CAAA;QAC1D,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,OAAO,GAAkB;oBAC7B,OAAO,EAAE,CAAC,IAAO,EAAE,EAAE;wBACnB,IAAI,SAAS;4BAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;wBAClC,OAAO,CAAC,IAAI,CAAC,CAAA;oBACf,CAAC;oBACD,KAAK,EAAE,SAAS;iBACjB,CAAA;gBACD,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC9B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;wBAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;wBACnB,MAAM,CAAC,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAA;oBAC5C,CAAC,EAAE,OAAO,CAAC,CAAA;gBACb,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC3B,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,IAAmB,CAAA;QACvB,IAAI,IAAI,GAAG,KAAK,CAAA;QAChB,GAAG,CAAC;YACF,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACjC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAChC,IAAI,CAAC,QAAQ,EAAE,CAAA;YACf,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpD,CAAC,QAAQ,OAAO,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,EAAC;QAC9C,IAAI,SAAS;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CAAC,IAAO;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAA;QACrD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACnB,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAA;QAC5D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAG,CAAA;YAC/C,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,IAAI,OAAO;gBAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAO;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,KAAK,CAAA;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC;IAED,QAAQ,CAAC,IAAO;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QACzB,IAAI,CAAC,UAAU,EAAE,CAAA;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare class SemaphoreError extends Error {
|
|
2
|
+
}
|
|
3
|
+
export declare class Semaphore {
|
|
4
|
+
private readonly size;
|
|
5
|
+
private readonly timeout;
|
|
6
|
+
private counter;
|
|
7
|
+
private readonly queue;
|
|
8
|
+
constructor(concurrency: number, size?: number, timeout?: number);
|
|
9
|
+
enter(): Promise<void>;
|
|
10
|
+
leave(): void;
|
|
11
|
+
get isEmpty(): boolean;
|
|
12
|
+
get queueLength(): number;
|
|
13
|
+
}
|
package/dist/utils/semaphore.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semaphore.js","sourceRoot":"","sources":["../../src/utils/semaphore.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,cAAe,SAAQ,KAAK;CAAG;AAE5C,sDAAsD;AACtD,MAAM,OAAO,SAAS;IAOD;IACA;IAPX,OAAO,CAAQ;IAEN,KAAK,GAAyB,EAAE,CAAA;IAEjD,YACE,WAAmB,EACF,OAAe,CAAC,EAChB,UAAkB,CAAC;QADnB,SAAI,GAAJ,IAAI,CAAY;QAChB,YAAO,GAAP,OAAO,CAAY;QAEpC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAA;IAC5B,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC,CAAA;QAC5D,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,OAAO,GAAuB,EAAE,OAAO,EAAE,CAAA;gBAC/C,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;oBAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;oBAClB,MAAM,CAAC,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;gBACvC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;gBAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;YAC/B,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;gBAC/B,IAAI,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAA;gBAC9B,IAAI,OAAO;oBAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -8,18 +8,19 @@
|
|
|
8
8
|
"peerDependencies": {
|
|
9
9
|
"pino": "^9.6.0",
|
|
10
10
|
"pino-pretty": "^13.0.0",
|
|
11
|
-
"@nmtjs/common": "0.15.0-beta.
|
|
12
|
-
"@nmtjs/type": "0.15.0-beta.
|
|
11
|
+
"@nmtjs/common": "0.15.0-beta.20",
|
|
12
|
+
"@nmtjs/type": "0.15.0-beta.20"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@types/node": "^24",
|
|
16
16
|
"pino": "^9.6.0",
|
|
17
17
|
"pino-pretty": "^13.0.0",
|
|
18
|
-
"@nmtjs/common": "0.15.0-beta.
|
|
19
|
-
"@nmtjs/type": "0.15.0-beta.
|
|
18
|
+
"@nmtjs/common": "0.15.0-beta.20",
|
|
19
|
+
"@nmtjs/type": "0.15.0-beta.20"
|
|
20
20
|
},
|
|
21
21
|
"files": [
|
|
22
22
|
"dist",
|
|
23
|
+
"src",
|
|
23
24
|
"LICENSE.md",
|
|
24
25
|
"README.md"
|
|
25
26
|
],
|
|
@@ -27,10 +28,10 @@
|
|
|
27
28
|
"hookable": "6.0.0-rc.1",
|
|
28
29
|
"pino-std-serializers": "^7.0.0"
|
|
29
30
|
},
|
|
30
|
-
"version": "0.15.0-beta.
|
|
31
|
+
"version": "0.15.0-beta.20",
|
|
31
32
|
"scripts": {
|
|
32
33
|
"clean-build": "rm -rf ./dist",
|
|
33
|
-
"build": "tsc",
|
|
34
|
+
"build": "tsc --declaration --sourcemap",
|
|
34
35
|
"dev": "tsc --watch",
|
|
35
36
|
"type-check": "tsc --noEmit"
|
|
36
37
|
}
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export const kOptionalDependency: unique symbol = Symbol.for(
|
|
2
|
+
'neemata:OptionalDependencyKey',
|
|
3
|
+
)
|
|
4
|
+
export type kOptionalDependency = typeof kOptionalDependency
|
|
5
|
+
|
|
6
|
+
export const kInjectable: unique symbol = Symbol.for('neemata:InjectableKey')
|
|
7
|
+
export type kInjectable = typeof kInjectable
|
|
8
|
+
|
|
9
|
+
export const kLazyInjectable: unique symbol = Symbol.for(
|
|
10
|
+
'neemata:LazyInjectableKey',
|
|
11
|
+
)
|
|
12
|
+
export type kLazyInjectable = typeof kLazyInjectable
|
|
13
|
+
|
|
14
|
+
export const kValueInjectable: unique symbol = Symbol.for(
|
|
15
|
+
'neemata:ValueInjectableKey',
|
|
16
|
+
)
|
|
17
|
+
export type kValueInjectable = typeof kValueInjectable
|
|
18
|
+
|
|
19
|
+
export const kFactoryInjectable: unique symbol = Symbol.for(
|
|
20
|
+
'neemata:FactoryInjectableKey',
|
|
21
|
+
)
|
|
22
|
+
export type kFactoryInjectable = typeof kFactoryInjectable
|
|
23
|
+
|
|
24
|
+
export const kProvider: unique symbol = Symbol.for('neemata:ProviderKey')
|
|
25
|
+
export type kProvider = typeof kProvider
|
|
26
|
+
|
|
27
|
+
export const kPlugin: unique symbol = Symbol.for('neemata:PluginKey')
|
|
28
|
+
export type kPlugin = typeof kPlugin
|
|
29
|
+
|
|
30
|
+
export const kMetadata: unique symbol = Symbol.for('neemata:MetadataKey')
|
|
31
|
+
export type kMetadata = typeof kMetadata
|
|
32
|
+
|
|
33
|
+
export const kHook: unique symbol = Symbol.for('neemata:HookKey')
|
|
34
|
+
export type kHook = typeof kHook
|