@nmtjs/core 0.15.0-beta.5 → 0.15.0-beta.50
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/README.md +31 -1
- package/dist/container.d.ts +4 -2
- package/dist/container.js +30 -14
- package/dist/container.js.map +1 -1
- package/dist/enums.js +2 -1
- package/dist/enums.js.map +1 -1
- package/dist/hooks.d.ts +3 -2
- package/dist/hooks.js +7 -2
- package/dist/hooks.js.map +1 -1
- package/dist/index.js +10 -13
- package/dist/index.js.map +1 -1
- package/dist/injectables.d.ts +14 -14
- package/dist/injectables.js +14 -8
- package/dist/injectables.js.map +1 -1
- package/dist/logger.d.ts +6 -8
- package/dist/logger.js +19 -8
- package/dist/logger.js.map +1 -1
- package/dist/metadata.js +1 -1
- package/dist/metadata.js.map +1 -1
- package/dist/plugin.d.ts +4 -4
- package/dist/plugin.js +1 -1
- package/dist/utils/functions.js.map +1 -1
- package/dist/utils/index.js +3 -3
- package/dist/utils/pool.js.map +1 -1
- package/dist/utils/semaphore.js.map +1 -1
- package/package.json +25 -18
- package/src/container.ts +43 -23
- package/src/hooks.ts +10 -4
- package/src/index.ts +0 -4
- package/src/injectables.ts +15 -8
- package/src/logger.ts +51 -26
- package/src/plugin.ts +2 -2
package/README.md
CHANGED
|
@@ -6,4 +6,34 @@
|
|
|
6
6
|
- binary data streaming and event subscriptions
|
|
7
7
|
- contract-based API
|
|
8
8
|
- end-to-end type safety
|
|
9
|
-
- CPU-intensive task execution on separate workers
|
|
9
|
+
- CPU-intensive task execution on separate workers
|
|
10
|
+
|
|
11
|
+
## Jobs E2E (Local Docker)
|
|
12
|
+
|
|
13
|
+
Prerequisites:
|
|
14
|
+
- Docker Desktop (or Docker Engine) with `docker compose` available
|
|
15
|
+
|
|
16
|
+
No host ports are exposed in this setup. Tests run fully inside Docker containers.
|
|
17
|
+
The test image is optimized for Docker layer caching with `pnpm fetch` + offline install.
|
|
18
|
+
|
|
19
|
+
Run both backends with one command:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pnpm run test:e2e:jobs:docker
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
This command rebuilds the test image on each run and executes Redis + Valkey suites in one pass.
|
|
26
|
+
|
|
27
|
+
Run Jobs E2E directly in Docker:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
docker compose -f docker-compose.jobs-e2e.yml run --rm --build test-jobs
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Manual Docker control:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
docker compose -f docker-compose.jobs-e2e.yml up -d --wait redis valkey
|
|
37
|
+
docker compose -f docker-compose.jobs-e2e.yml run --rm --build test-jobs
|
|
38
|
+
docker compose -f docker-compose.jobs-e2e.yml down -v --remove-orphans
|
|
39
|
+
```
|
package/dist/container.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare class Container {
|
|
|
18
18
|
private readonly resolvers;
|
|
19
19
|
private readonly injectables;
|
|
20
20
|
private readonly dependants;
|
|
21
|
+
private readonly provisions;
|
|
21
22
|
private disposing;
|
|
22
23
|
constructor(runtime: ContainerOptions, scope?: Exclude<Scope, Scope.Transient>, parent?: Container | undefined);
|
|
23
24
|
initialize(injectables: Iterable<AnyInjectable>): Promise<PerformanceMeasure[]>;
|
|
@@ -30,8 +31,9 @@ export declare class Container {
|
|
|
30
31
|
get<T extends AnyInjectable>(injectable: T): ResolveInjectableType<T>;
|
|
31
32
|
resolve<T extends AnyInjectable>(injectable: T, measurements?: PerformanceMeasure[]): Promise<ResolveInjectableType<T>>;
|
|
32
33
|
createContext<T extends Dependencies>(dependencies: T): Promise<DependencyContext<T>>;
|
|
33
|
-
provide<T extends Injection[]>(injections: T):
|
|
34
|
-
provide<T extends AnyInjectable>(injectable: T, value: ResolveInjectableType<T> | AnyInjectable<ResolveInjectableType<T>>):
|
|
34
|
+
provide<T extends Injection[]>(injections: T): void;
|
|
35
|
+
provide<T extends AnyInjectable>(injectable: T, value: ResolveInjectableType<T> | AnyInjectable<ResolveInjectableType<T>>): void;
|
|
36
|
+
withhold(...injectables: AnyInjectable[]): void;
|
|
35
37
|
satisfies(injectable: AnyInjectable): boolean;
|
|
36
38
|
disposeInjectableInstances(injectable: AnyInjectable): Promise<void>;
|
|
37
39
|
disposeInjectableInstance(injectable: AnyInjectable, instance: any, context: any): Promise<void>;
|
package/dist/container.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import assert from 'node:assert';
|
|
2
2
|
import { tryCaptureStackTrace } from '@nmtjs/common';
|
|
3
|
-
import { Scope } from
|
|
4
|
-
import { CoreInjectables, compareScope, createValueInjectable, getDepedencencyInjectable, isFactoryInjectable, isInjectable, isLazyInjectable, isOptionalInjectable, isValueInjectable,
|
|
3
|
+
import { Scope } from './enums.js';
|
|
4
|
+
import { CoreInjectables, compareScope, createValueInjectable, getDepedencencyInjectable, isFactoryInjectable, isInjectable, isLazyInjectable, isOptionalInjectable, isValueInjectable, provision, } from './injectables.js';
|
|
5
5
|
export class Container {
|
|
6
6
|
runtime;
|
|
7
7
|
scope;
|
|
@@ -10,14 +10,14 @@ export class Container {
|
|
|
10
10
|
resolvers = new Map();
|
|
11
11
|
injectables = new Set();
|
|
12
12
|
dependants = new Map();
|
|
13
|
+
provisions = new Map();
|
|
13
14
|
disposing = false;
|
|
14
15
|
constructor(runtime, scope = Scope.Global, parent) {
|
|
15
16
|
this.runtime = runtime;
|
|
16
17
|
this.scope = scope;
|
|
17
18
|
this.parent = parent;
|
|
18
|
-
if (scope === Scope.Transient)
|
|
19
|
+
if (scope === Scope.Transient)
|
|
19
20
|
throw new Error('Invalid scope');
|
|
20
|
-
}
|
|
21
21
|
this.provide(CoreInjectables.inject, this.createInjectFunction());
|
|
22
22
|
this.provide(CoreInjectables.dispose, this.createDisposeFunction());
|
|
23
23
|
}
|
|
@@ -77,7 +77,9 @@ export class Container {
|
|
|
77
77
|
this.disposing = false;
|
|
78
78
|
}
|
|
79
79
|
containsWithinSelf(injectable) {
|
|
80
|
-
return this.
|
|
80
|
+
return (this.provisions.has(injectable) ||
|
|
81
|
+
this.instances.has(injectable) ||
|
|
82
|
+
this.resolvers.has(injectable));
|
|
81
83
|
}
|
|
82
84
|
contains(injectable) {
|
|
83
85
|
return (this.containsWithinSelf(injectable) ||
|
|
@@ -87,6 +89,9 @@ export class Container {
|
|
|
87
89
|
if (injectable.scope === Scope.Transient) {
|
|
88
90
|
throw new Error('Cannot get transient injectable directly');
|
|
89
91
|
}
|
|
92
|
+
if (this.provisions.has(injectable)) {
|
|
93
|
+
return this.provisions.get(injectable);
|
|
94
|
+
}
|
|
90
95
|
if (this.instances.has(injectable)) {
|
|
91
96
|
return this.instances.get(injectable).at(0).public;
|
|
92
97
|
}
|
|
@@ -101,20 +106,22 @@ export class Container {
|
|
|
101
106
|
async createContext(dependencies) {
|
|
102
107
|
return this.createInjectableContext(dependencies);
|
|
103
108
|
}
|
|
104
|
-
|
|
109
|
+
provide(injectable, ...[value]) {
|
|
105
110
|
const injections = Array.isArray(injectable)
|
|
106
111
|
? injectable
|
|
107
|
-
: [
|
|
108
|
-
|
|
112
|
+
: [provision(injectable, value)];
|
|
113
|
+
for (const { token, value } of injections) {
|
|
109
114
|
if (compareScope(token.scope, '>', this.scope)) {
|
|
110
115
|
// TODO: more informative error
|
|
111
116
|
throw new Error('Invalid scope');
|
|
112
117
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
+
this.provisions.set(token, value);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
withhold(...injectables) {
|
|
122
|
+
for (const injectable of injectables) {
|
|
123
|
+
this.provisions.delete(injectable);
|
|
124
|
+
}
|
|
118
125
|
}
|
|
119
126
|
satisfies(injectable) {
|
|
120
127
|
return compareScope(injectable.scope, '<=', this.scope);
|
|
@@ -163,7 +170,16 @@ export class Container {
|
|
|
163
170
|
// TODO: more informative error
|
|
164
171
|
return Promise.reject(new Error('Invalid scope: dependant is looser than injectable'));
|
|
165
172
|
}
|
|
166
|
-
if (
|
|
173
|
+
if (this.provisions.has(injectable)) {
|
|
174
|
+
const provided = this.provisions.get(injectable);
|
|
175
|
+
if (isInjectable(provided)) {
|
|
176
|
+
return this.resolveInjectable(provided, dependant, isOptional, measurements);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
return Promise.resolve(provided);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
else if (isValueInjectable(injectable)) {
|
|
167
183
|
return Promise.resolve(injectable.value);
|
|
168
184
|
}
|
|
169
185
|
else if (this.parent?.contains(injectable) ||
|
package/dist/container.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
|
package/dist/enums.js
CHANGED
package/dist/enums.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":"SAAY,KAAK;AAAjB,IAAY,KAKX;AALD,WAAY,KAAK;IACf,0BAAiB,CAAA;IACjB,kCAAyB,CAAA;IACzB,sBAAa,CAAA;IACb,gCAAuB,CAAA;AAAC,CAC1B,EALY,KAAK,KAAL,KAAK,QAKhB"}
|
package/dist/hooks.d.ts
CHANGED
|
@@ -5,9 +5,10 @@ export declare class Hooks<T extends HookTypes = HookTypes> extends Hookable<T>
|
|
|
5
5
|
_: {
|
|
6
6
|
config: NestedHooks<T>;
|
|
7
7
|
};
|
|
8
|
-
|
|
9
|
-
controller: AbortController;
|
|
8
|
+
once<H extends keyof T>(hook: H): {
|
|
9
|
+
controller: globalThis.AbortController;
|
|
10
10
|
signal: AbortSignal;
|
|
11
11
|
unregister: () => void;
|
|
12
|
+
[Symbol.dispose]: () => void;
|
|
12
13
|
};
|
|
13
14
|
}
|
package/dist/hooks.js
CHANGED
|
@@ -1,12 +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
|
}
|
|
12
17
|
//# sourceMappingURL=hooks.js.map
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +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,
|
|
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,EAMP;QACA,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;IAAA,CACF;CACF"}
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from
|
|
8
|
-
export * from
|
|
9
|
-
export * from
|
|
10
|
-
export * from
|
|
11
|
-
export * from "./plugin.js";
|
|
12
|
-
export * from "./types.js";
|
|
13
|
-
export * from "./utils/index.js";
|
|
1
|
+
export * from './constants.js';
|
|
2
|
+
export * from './container.js';
|
|
3
|
+
export * from './enums.js';
|
|
4
|
+
export * from './hooks.js';
|
|
5
|
+
export * from './injectables.js';
|
|
6
|
+
export * from './logger.js';
|
|
7
|
+
export * from './metadata.js';
|
|
8
|
+
export * from './plugin.js';
|
|
9
|
+
export * from './types.js';
|
|
10
|
+
export * from './utils/index.js';
|
|
14
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,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"}
|
package/dist/injectables.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MaybePromise } from '@nmtjs/common';
|
|
2
2
|
import type { Logger } from './logger.ts';
|
|
3
3
|
import { kFactoryInjectable, kInjectable, kLazyInjectable, kOptionalDependency, kValueInjectable } from './constants.ts';
|
|
4
4
|
import { Scope } from './enums.ts';
|
|
@@ -20,7 +20,7 @@ export type DependencyContext<Deps extends Dependencies> = {
|
|
|
20
20
|
} & {
|
|
21
21
|
readonly [K in keyof Deps as Deps[K] extends DependencyOptional ? K : never]?: Deps[K] extends DependencyOptional ? ResolveInjectableType<Deps[K]['injectable']> : never;
|
|
22
22
|
};
|
|
23
|
-
export type InjectableFactoryType<InjectableType, InjectableDeps extends Dependencies> = (context: DependencyContext<InjectableDeps>) =>
|
|
23
|
+
export type InjectableFactoryType<InjectableType, InjectableDeps extends Dependencies> = (context: DependencyContext<InjectableDeps>) => MaybePromise<InjectableType>;
|
|
24
24
|
export type InjectablePickType<Input, Output> = (injectable: Input) => Output;
|
|
25
25
|
export type InjectableDisposeType<InjectableType, InjectableDeps extends Dependencies> = (instance: InjectableType, context: DependencyContext<InjectableDeps>) => any;
|
|
26
26
|
export interface LazyInjectable<T, S extends Scope = Scope.Global> extends Dependant<{}> {
|
|
@@ -47,10 +47,10 @@ export interface FactoryInjectable<T, D extends Dependencies = {}, S extends Sco
|
|
|
47
47
|
}
|
|
48
48
|
export type Injectable<V = any, D extends Dependencies = {}, S extends Scope = Scope> = LazyInjectable<V, S> | ValueInjectable<V> | FactoryInjectable<V, D, S, any>;
|
|
49
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>;
|
|
50
|
+
export declare const isLazyInjectable: (injectable: any) => injectable is LazyInjectable<any, Scope.Global>;
|
|
51
|
+
export declare const isFactoryInjectable: (injectable: any) => injectable is FactoryInjectable<any, {}, Scope.Global, any>;
|
|
52
52
|
export declare const isValueInjectable: (injectable: any) => injectable is ValueInjectable<any>;
|
|
53
|
-
export declare const isInjectable: (injectable: any) => injectable is AnyInjectable<any>;
|
|
53
|
+
export declare const isInjectable: (injectable: any) => injectable is AnyInjectable<any, Scope>;
|
|
54
54
|
export declare const isOptionalInjectable: (injectable: any) => injectable is DependencyOptional<any>;
|
|
55
55
|
export declare function getInjectableScope(injectable: AnyInjectable): Scope;
|
|
56
56
|
export declare function getDepedencencyInjectable(dependency: Depedency): AnyInjectable;
|
|
@@ -69,20 +69,20 @@ export type DependenciesSubstitution<T extends Dependencies> = {
|
|
|
69
69
|
};
|
|
70
70
|
export declare function substitute<T extends FactoryInjectable<any, any, Scope>>(injectable: T, substitution: DependenciesSubstitution<T['dependencies']>, stackTraceDepth?: number): T;
|
|
71
71
|
export declare function compareScope(left: Scope, operator: '>' | '<' | '>=' | '<=' | '=' | '!=', right: Scope): boolean;
|
|
72
|
-
export declare
|
|
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?:
|
|
77
|
-
explicit: <T extends AnyInjectable>(injectable: T, context: { [K in keyof T["dependencies"]]?: ResolveInjectableType<T["dependencies"][K]> | AnyInjectable<ResolveInjectableType<T["dependencies"][K]>> | undefined; }, scope?:
|
|
72
|
+
export declare namespace CoreInjectables {
|
|
73
|
+
const logger: ((label: string) => FactoryInjectable<Logger, {
|
|
74
|
+
logger: LazyInjectable<Logger, Scope.Global>;
|
|
75
|
+
}, Scope.Global, Logger>) & LazyInjectable<Logger, Scope.Global>;
|
|
76
|
+
const inject: LazyInjectable<(<T extends AnyInjectable>(injectable: T, context: { [K in keyof T["dependencies"]]?: ResolveInjectableType<T["dependencies"][K]> | AnyInjectable<ResolveInjectableType<T["dependencies"][K]>> | undefined; }, scope?: Scope.Global | Scope.Connection | Scope.Call) => 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?: Scope.Global | Scope.Connection | Scope.Call) => Promise<{
|
|
78
78
|
instance: Awaited<ResolveInjectableType<T>>;
|
|
79
79
|
[Symbol.asyncDispose]: () => Promise<void>;
|
|
80
80
|
}>;
|
|
81
81
|
}, Scope.Global>;
|
|
82
|
-
dispose: LazyInjectable
|
|
83
|
-
}
|
|
82
|
+
const dispose: LazyInjectable<<T extends AnyInjectable>(injectable: T, instance?: any) => Promise<void>, Scope.Global>;
|
|
83
|
+
}
|
|
84
84
|
export type Injection<T extends AnyInjectable<any, any> = AnyInjectable<any, any>> = {
|
|
85
85
|
token: T;
|
|
86
86
|
value: T extends AnyInjectable<infer R, Scope> ? R | AnyInjectable<R> : never;
|
|
87
87
|
};
|
|
88
|
-
export declare const
|
|
88
|
+
export declare const provision: <T extends AnyInjectable<any, any>, V extends T extends AnyInjectable<infer R, Scope> ? R | AnyInjectable<R, Scope> : never>(token: T, value: V) => Injection<T>;
|
package/dist/injectables.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { tryCaptureStackTrace } from '@nmtjs/common';
|
|
2
|
-
import { kFactoryInjectable, kInjectable, kLazyInjectable, kOptionalDependency, kValueInjectable, } from
|
|
3
|
-
import { Scope } from
|
|
2
|
+
import { kFactoryInjectable, kInjectable, kLazyInjectable, kOptionalDependency, kValueInjectable, } from './constants.js';
|
|
3
|
+
import { Scope } from './enums.js';
|
|
4
4
|
const ScopeStrictness = {
|
|
5
5
|
[Scope.Transient]: Number.NaN, // this should make it always fail to compare with other scopes
|
|
6
6
|
[Scope.Global]: 1,
|
|
@@ -122,21 +122,27 @@ export function compareScope(left, operator, right) {
|
|
|
122
122
|
throw new Error('Invalid operator');
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
|
-
const
|
|
126
|
-
dependencies: { logger },
|
|
125
|
+
const loggerInjectable = Object.assign((label) => createFactoryInjectable({
|
|
126
|
+
dependencies: { logger: loggerInjectable },
|
|
127
127
|
scope: Scope.Global,
|
|
128
128
|
factory: ({ logger }) => logger.child({ $label: label }),
|
|
129
129
|
}), createLazyInjectable(Scope.Global, 'Logger'));
|
|
130
|
-
const
|
|
131
|
-
const
|
|
130
|
+
const injectFnInjectable = createLazyInjectable(Scope.Global, 'Inject function');
|
|
131
|
+
const disposeFnInjectable = createLazyInjectable(Scope.Global, 'Dispose function');
|
|
132
132
|
function resolveInjectableScope(isDefaultScope, injectable) {
|
|
133
133
|
const actualScope = getInjectableScope(injectable);
|
|
134
134
|
if (!isDefaultScope && compareScope(actualScope, '>', injectable.scope))
|
|
135
135
|
throw new Error(`Invalid scope ${injectable.scope} for an injectable: dependencies have stricter scope - ${actualScope}`);
|
|
136
136
|
return actualScope;
|
|
137
137
|
}
|
|
138
|
-
export
|
|
139
|
-
|
|
138
|
+
export { CoreInjectables };
|
|
139
|
+
var CoreInjectables;
|
|
140
|
+
(function (CoreInjectables) {
|
|
141
|
+
CoreInjectables.logger = loggerInjectable;
|
|
142
|
+
CoreInjectables.inject = injectFnInjectable;
|
|
143
|
+
CoreInjectables.dispose = disposeFnInjectable;
|
|
144
|
+
})(CoreInjectables || (CoreInjectables = {}));
|
|
145
|
+
export const provision = (token, value) => {
|
|
140
146
|
return { token, value };
|
|
141
147
|
};
|
|
142
148
|
//# sourceMappingURL=injectables.js.map
|
package/dist/injectables.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectables.js","sourceRoot":"","sources":["../src/injectables.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAIpD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,eAAe,GAAG;IACtB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,+DAA+D;IAC9F,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IACjB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;IACrB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;CAChB,CAAA;AAkGD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,UAAe,EACoB,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,UAAe,EACuB,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;AAEzE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,UAAe,EACqB,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;AAErE,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,UAAe,EACmB,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AAE9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,UAAe,EACwB,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAA;AAE3E,MAAM,UAAU,kBAAkB,CAAC,UAAyB;
|
|
1
|
+
{"version":3,"file":"injectables.js","sourceRoot":"","sources":["../src/injectables.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export
|
|
3
|
-
export type
|
|
4
|
-
export
|
|
5
|
-
export type
|
|
1
|
+
import type { ChildLoggerOptions, DestinationStream, Level, Logger, LoggerOptions, StreamEntry } from 'pino';
|
|
2
|
+
export declare const createLogger: (options: LoggingOptions | undefined, $label: string) => Logger<never, boolean>;
|
|
3
|
+
export type CreateConsolePrettyDestination = (level: Level, sync?: boolean) => StreamEntry;
|
|
4
|
+
export declare const createConsolePrettyDestination: CreateConsolePrettyDestination;
|
|
5
|
+
export type { Logger, ChildLoggerOptions, LoggerOptions, DestinationStream, StreamEntry, Level, };
|
|
6
6
|
export type LoggingOptions = {
|
|
7
|
-
destinations?: Array<
|
|
7
|
+
destinations?: Array<DestinationStream | StreamEntry<Level>>;
|
|
8
8
|
pinoOptions?: LoggerOptions;
|
|
9
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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { threadId } from 'node:worker_threads';
|
|
2
|
-
import { pino, stdTimeFunctions } from 'pino';
|
|
2
|
+
import { levels, multistream, pino, stdTimeFunctions } from 'pino';
|
|
3
3
|
import { build as pretty } from 'pino-pretty';
|
|
4
4
|
import { errWithCause } from 'pino-std-serializers';
|
|
5
5
|
// TODO: use node:util inspect
|
|
@@ -32,7 +32,7 @@ const levelLabels = {
|
|
|
32
32
|
60: ' FATAL ',
|
|
33
33
|
[Number.POSITIVE_INFINITY]: 'SILENT',
|
|
34
34
|
};
|
|
35
|
-
export const createLogger = (options = {}, $
|
|
35
|
+
export const createLogger = (options = {}, $label) => {
|
|
36
36
|
let { destinations, pinoOptions } = options;
|
|
37
37
|
if (!destinations || !destinations?.length) {
|
|
38
38
|
destinations = [
|
|
@@ -40,20 +40,31 @@ export const createLogger = (options = {}, $lable) => {
|
|
|
40
40
|
];
|
|
41
41
|
}
|
|
42
42
|
const lowestLevelValue = destinations.reduce((acc, destination) => Math.min(acc, 'stream' in destination
|
|
43
|
-
?
|
|
43
|
+
? levels.values[destination.level]
|
|
44
44
|
: Number.POSITIVE_INFINITY), Number.POSITIVE_INFINITY);
|
|
45
|
-
const level =
|
|
46
|
-
const serializers = {
|
|
47
|
-
|
|
45
|
+
const level = levels.labels[lowestLevelValue];
|
|
46
|
+
const serializers = {
|
|
47
|
+
headers: (value) => {
|
|
48
|
+
if (value instanceof Headers) {
|
|
49
|
+
const obj = {};
|
|
50
|
+
value.forEach((v, k) => (obj[k] = v));
|
|
51
|
+
return obj;
|
|
52
|
+
}
|
|
53
|
+
return value;
|
|
54
|
+
},
|
|
55
|
+
...pinoOptions?.serializers,
|
|
56
|
+
err: errWithCause,
|
|
57
|
+
};
|
|
58
|
+
return pino({ timestamp: stdTimeFunctions.isoTime, ...pinoOptions, level, serializers }, multistream(destinations)).child({ $label, $threadId: threadId });
|
|
48
59
|
};
|
|
49
60
|
export const createConsolePrettyDestination = (level, sync = true) => ({
|
|
50
61
|
level,
|
|
51
62
|
stream: pretty({
|
|
52
63
|
colorize: true,
|
|
53
|
-
ignore: 'hostname,$
|
|
64
|
+
ignore: 'hostname,$label,$threadId',
|
|
54
65
|
errorLikeObjectKeys: ['err', 'error', 'cause'],
|
|
55
66
|
messageFormat: (log, messageKey) => {
|
|
56
|
-
const group = fg(`[${log.$
|
|
67
|
+
const group = fg(`[${log.$label}]`, 11);
|
|
57
68
|
const msg = fg(log[messageKey], messageColors[log.level]);
|
|
58
69
|
const thread = fg(`(Thread-${log.$threadId})`, 89);
|
|
59
70
|
return `\x1b[0m${thread} ${group} ${msg}`;
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/metadata.js
CHANGED
package/dist/metadata.js.map
CHANGED
|
@@ -1 +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;
|
|
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,CAAC;IACnE,MAAM,WAAW,GAAG;QAClB,CAAC,SAAS,CAAC,EAAE,GAAG;QAChB,EAAE,CAAC,KAAQ,EAAE;YACX,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;QAAA,CACnC;KACF,CAAA;IACD,OAAO,WAAW,CAAA;AAAA,CACnB,CAAA;AAED,MAAM,OAAO,aAAc,SAAQ,GAA0B;IAC3D,GAAG,CAAI,GAAmB,EAAiB;QACzC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAkB,CAAA;IAAA,CACvC;CACF"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MaybePromise } from '@nmtjs/common';
|
|
2
2
|
import { kPlugin } from './constants.ts';
|
|
3
3
|
export interface Plugin<Type = void, Context = unknown> {
|
|
4
4
|
name: string;
|
|
5
|
-
factory: (context: Context) =>
|
|
5
|
+
factory: (context: Context) => MaybePromise<Type>;
|
|
6
6
|
[kPlugin]: any;
|
|
7
7
|
}
|
|
8
|
-
export declare const createPlugin: <Type = void, Context = unknown>(name: string, factory:
|
|
9
|
-
export declare const isPlugin: (value: any) => value is Plugin
|
|
8
|
+
export declare const createPlugin: <Type = void, Context = unknown>(name: string, factory: (context: Context) => MaybePromise<Type>) => Plugin<Type, Context>;
|
|
9
|
+
export declare const isPlugin: (value: any) => value is Plugin<void, unknown>;
|
package/dist/plugin.js
CHANGED
|
@@ -1 +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;
|
|
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,EAAE;IACrC,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;AAAA,CAC9D;AAED,MAAM,UAAU,IAAI,CAMlB,GAAM,EACN,IAAO,EAMP;IACA,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;AAAA,CACd"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
1
|
+
export * from './functions.js';
|
|
2
|
+
export * from './pool.js';
|
|
3
|
+
export * from './semaphore.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/pool.js.map
CHANGED
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../src/utils/pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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,IAAI;IACJ,OAAO;IAPlB,OAAO,CAAQ;IAEN,KAAK,GAAyB,EAAE,CAAA;IAEjD,YACE,WAAmB,EACF,IAAI,GAAW,CAAC,EAChB,OAAO,GAAW,CAAC,EACpC;oBAFiB,IAAI;uBACJ,OAAO;QAExB,IAAI,CAAC,OAAO,GAAG,WAAW,CAAA;IAAA,CAC3B;IAED,KAAK,GAAkB;QACrB,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,CAAC;gBACtC,MAAM,OAAO,GAAuB,EAAE,OAAO,EAAE,CAAA;gBAC/C,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;oBAC/B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;oBAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;oBAClB,MAAM,CAAC,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;gBAAA,CACtC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;gBAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAAA,CACzB,CAAC,CAAA;QACJ,CAAC;IAAA,CACF;IAED,KAAK,GAAG;QACN,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;IAAA,CACF;IAED,IAAI,OAAO,GAAG;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAA;IAAA,CAC/B;IAED,IAAI,WAAW,GAAG;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAAA,CACzB;CACF"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nmtjs/core",
|
|
3
|
+
"description": "Dependency injection, hooks, and scoped lifecycle management for Neemata.",
|
|
3
4
|
"type": "module",
|
|
4
5
|
"exports": {
|
|
5
|
-
".":
|
|
6
|
-
|
|
6
|
+
".": {
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"import": "./dist/index.js",
|
|
9
|
+
"module-sync": "./dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"./constants": {
|
|
12
|
+
"types": "./dist/constants.d.ts",
|
|
13
|
+
"import": "./dist/constants.js",
|
|
14
|
+
"module-sync": "./dist/constants.js"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"hookable": "6.0.1"
|
|
7
19
|
},
|
|
8
20
|
"peerDependencies": {
|
|
9
|
-
"pino": "^
|
|
21
|
+
"pino-std-serializers": "^7.0.0",
|
|
22
|
+
"pino": "^10.0.0",
|
|
10
23
|
"pino-pretty": "^13.0.0",
|
|
11
|
-
"@nmtjs/common": "0.15.0-beta.
|
|
12
|
-
"@nmtjs/type": "0.15.0-beta.
|
|
24
|
+
"@nmtjs/common": "0.15.0-beta.50",
|
|
25
|
+
"@nmtjs/type": "0.15.0-beta.50"
|
|
13
26
|
},
|
|
14
27
|
"devDependencies": {
|
|
15
|
-
"
|
|
16
|
-
"pino": "^
|
|
28
|
+
"pino-std-serializers": "^7.0.0",
|
|
29
|
+
"pino": "^10.0.0",
|
|
17
30
|
"pino-pretty": "^13.0.0",
|
|
18
|
-
"@
|
|
19
|
-
"@nmtjs/type": "0.15.0-beta.
|
|
31
|
+
"@types/node": "^24",
|
|
32
|
+
"@nmtjs/type": "0.15.0-beta.50",
|
|
33
|
+
"@nmtjs/common": "0.15.0-beta.50"
|
|
20
34
|
},
|
|
21
35
|
"files": [
|
|
22
36
|
"dist",
|
|
@@ -24,15 +38,8 @@
|
|
|
24
38
|
"LICENSE.md",
|
|
25
39
|
"README.md"
|
|
26
40
|
],
|
|
27
|
-
"
|
|
28
|
-
"hookable": "6.0.0-rc.1",
|
|
29
|
-
"pino-std-serializers": "^7.0.0"
|
|
30
|
-
},
|
|
31
|
-
"version": "0.15.0-beta.5",
|
|
41
|
+
"version": "0.15.0-beta.50",
|
|
32
42
|
"scripts": {
|
|
33
|
-
"clean-build": "rm -rf ./dist"
|
|
34
|
-
"build": "tsc --declaration --sourcemap",
|
|
35
|
-
"dev": "tsc --watch",
|
|
36
|
-
"type-check": "tsc --noEmit"
|
|
43
|
+
"clean-build": "rm -rf ./dist"
|
|
37
44
|
}
|
|
38
45
|
}
|
package/src/container.ts
CHANGED
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
isLazyInjectable,
|
|
23
23
|
isOptionalInjectable,
|
|
24
24
|
isValueInjectable,
|
|
25
|
-
|
|
25
|
+
provision,
|
|
26
26
|
} from './injectables.ts'
|
|
27
27
|
|
|
28
28
|
type InstanceWrapper = { private: any; public: any; context: any }
|
|
@@ -34,6 +34,7 @@ export class Container {
|
|
|
34
34
|
private readonly resolvers = new Map<AnyInjectable, Promise<any>>()
|
|
35
35
|
private readonly injectables = new Set<AnyInjectable>()
|
|
36
36
|
private readonly dependants = new Map<AnyInjectable, Set<AnyInjectable>>()
|
|
37
|
+
private readonly provisions = new Map<AnyInjectable, any>()
|
|
37
38
|
private disposing = false
|
|
38
39
|
|
|
39
40
|
constructor(
|
|
@@ -41,9 +42,7 @@ export class Container {
|
|
|
41
42
|
public readonly scope: Exclude<Scope, Scope.Transient> = Scope.Global,
|
|
42
43
|
private readonly parent?: Container,
|
|
43
44
|
) {
|
|
44
|
-
if ((scope as
|
|
45
|
-
throw new Error('Invalid scope')
|
|
46
|
-
}
|
|
45
|
+
if ((scope as Scope) === Scope.Transient) throw new Error('Invalid scope')
|
|
47
46
|
this.provide(CoreInjectables.inject, this.createInjectFunction())
|
|
48
47
|
this.provide(CoreInjectables.dispose, this.createDisposeFunction())
|
|
49
48
|
}
|
|
@@ -123,7 +122,11 @@ export class Container {
|
|
|
123
122
|
}
|
|
124
123
|
|
|
125
124
|
containsWithinSelf(injectable: AnyInjectable) {
|
|
126
|
-
return
|
|
125
|
+
return (
|
|
126
|
+
this.provisions.has(injectable) ||
|
|
127
|
+
this.instances.has(injectable) ||
|
|
128
|
+
this.resolvers.has(injectable)
|
|
129
|
+
)
|
|
127
130
|
}
|
|
128
131
|
|
|
129
132
|
contains(injectable: AnyInjectable): boolean {
|
|
@@ -138,6 +141,10 @@ export class Container {
|
|
|
138
141
|
throw new Error('Cannot get transient injectable directly')
|
|
139
142
|
}
|
|
140
143
|
|
|
144
|
+
if (this.provisions.has(injectable)) {
|
|
145
|
+
return this.provisions.get(injectable)
|
|
146
|
+
}
|
|
147
|
+
|
|
141
148
|
if (this.instances.has(injectable)) {
|
|
142
149
|
return this.instances.get(injectable)!.at(0)!.public
|
|
143
150
|
}
|
|
@@ -165,12 +172,12 @@ export class Container {
|
|
|
165
172
|
return this.createInjectableContext(dependencies)
|
|
166
173
|
}
|
|
167
174
|
|
|
168
|
-
|
|
169
|
-
|
|
175
|
+
provide<T extends Injection[]>(injections: T): void
|
|
176
|
+
provide<T extends AnyInjectable>(
|
|
170
177
|
injectable: T,
|
|
171
178
|
value: ResolveInjectableType<T> | AnyInjectable<ResolveInjectableType<T>>,
|
|
172
|
-
)
|
|
173
|
-
|
|
179
|
+
): void
|
|
180
|
+
provide<T extends AnyInjectable | Injection[]>(
|
|
174
181
|
injectable: T,
|
|
175
182
|
...[value]: T extends AnyInjectable
|
|
176
183
|
? [
|
|
@@ -182,19 +189,20 @@ export class Container {
|
|
|
182
189
|
) {
|
|
183
190
|
const injections = Array.isArray(injectable)
|
|
184
191
|
? injectable
|
|
185
|
-
: [
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
192
|
+
: [provision(injectable, value)]
|
|
193
|
+
for (const { token, value } of injections) {
|
|
194
|
+
if (compareScope(token.scope, '>', this.scope)) {
|
|
195
|
+
// TODO: more informative error
|
|
196
|
+
throw new Error('Invalid scope')
|
|
197
|
+
}
|
|
198
|
+
this.provisions.set(token, value)
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
withhold(...injectables: AnyInjectable[]) {
|
|
203
|
+
for (const injectable of injectables) {
|
|
204
|
+
this.provisions.delete(injectable)
|
|
205
|
+
}
|
|
198
206
|
}
|
|
199
207
|
|
|
200
208
|
satisfies(injectable: AnyInjectable) {
|
|
@@ -278,7 +286,19 @@ export class Container {
|
|
|
278
286
|
)
|
|
279
287
|
}
|
|
280
288
|
|
|
281
|
-
if (
|
|
289
|
+
if (this.provisions.has(injectable)) {
|
|
290
|
+
const provided = this.provisions.get(injectable)
|
|
291
|
+
if (isInjectable(provided)) {
|
|
292
|
+
return this.resolveInjectable(
|
|
293
|
+
provided,
|
|
294
|
+
dependant,
|
|
295
|
+
isOptional,
|
|
296
|
+
measurements,
|
|
297
|
+
)
|
|
298
|
+
} else {
|
|
299
|
+
return Promise.resolve(provided)
|
|
300
|
+
}
|
|
301
|
+
} else if (isValueInjectable(injectable)) {
|
|
282
302
|
return Promise.resolve(injectable.value)
|
|
283
303
|
} else if (
|
|
284
304
|
this.parent?.contains(injectable) ||
|
package/src/hooks.ts
CHANGED
|
@@ -6,12 +6,13 @@ import type { HookTypes } from './types.ts'
|
|
|
6
6
|
export class Hooks<T extends HookTypes = HookTypes> extends Hookable<T> {
|
|
7
7
|
_!: { config: NestedHooks<T> }
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
hook:
|
|
9
|
+
once<H extends keyof T>(
|
|
10
|
+
hook: H,
|
|
11
11
|
): {
|
|
12
|
-
controller: AbortController
|
|
12
|
+
controller: globalThis.AbortController
|
|
13
13
|
signal: AbortSignal
|
|
14
14
|
unregister: () => void
|
|
15
|
+
[Symbol.dispose]: () => void
|
|
15
16
|
} {
|
|
16
17
|
const controller = new AbortController()
|
|
17
18
|
const unregister = this.hookOnce(
|
|
@@ -19,6 +20,11 @@ export class Hooks<T extends HookTypes = HookTypes> extends Hookable<T> {
|
|
|
19
20
|
//@ts-expect-error
|
|
20
21
|
() => controller.abort(),
|
|
21
22
|
)
|
|
22
|
-
return {
|
|
23
|
+
return {
|
|
24
|
+
controller,
|
|
25
|
+
signal: controller.signal,
|
|
26
|
+
unregister,
|
|
27
|
+
[Symbol.dispose]: unregister,
|
|
28
|
+
}
|
|
23
29
|
}
|
|
24
30
|
}
|
package/src/index.ts
CHANGED
package/src/injectables.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MaybePromise } from '@nmtjs/common'
|
|
2
2
|
import { tryCaptureStackTrace } from '@nmtjs/common'
|
|
3
3
|
|
|
4
4
|
import type { DisposeFn, InjectFn } from './container.ts'
|
|
@@ -60,7 +60,7 @@ export type DependencyContext<Deps extends Dependencies> = {
|
|
|
60
60
|
export type InjectableFactoryType<
|
|
61
61
|
InjectableType,
|
|
62
62
|
InjectableDeps extends Dependencies,
|
|
63
|
-
> = (context: DependencyContext<InjectableDeps>) =>
|
|
63
|
+
> = (context: DependencyContext<InjectableDeps>) => MaybePromise<InjectableType>
|
|
64
64
|
|
|
65
65
|
export type InjectablePickType<Input, Output> = (injectable: Input) => Output
|
|
66
66
|
|
|
@@ -306,10 +306,10 @@ export function compareScope(
|
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
308
|
|
|
309
|
-
const
|
|
309
|
+
const loggerInjectable = Object.assign(
|
|
310
310
|
(label: string) =>
|
|
311
311
|
createFactoryInjectable({
|
|
312
|
-
dependencies: { logger },
|
|
312
|
+
dependencies: { logger: loggerInjectable },
|
|
313
313
|
scope: Scope.Global,
|
|
314
314
|
factory: ({ logger }) => logger.child({ $label: label }),
|
|
315
315
|
}),
|
|
@@ -319,8 +319,11 @@ const logger = Object.assign(
|
|
|
319
319
|
) => FactoryInjectable<Logger, { logger: LazyInjectable<Logger> }>) &
|
|
320
320
|
LazyInjectable<Logger>
|
|
321
321
|
|
|
322
|
-
const
|
|
323
|
-
|
|
322
|
+
const injectFnInjectable = createLazyInjectable<InjectFn>(
|
|
323
|
+
Scope.Global,
|
|
324
|
+
'Inject function',
|
|
325
|
+
)
|
|
326
|
+
const disposeFnInjectable = createLazyInjectable<DisposeFn>(
|
|
324
327
|
Scope.Global,
|
|
325
328
|
'Dispose function',
|
|
326
329
|
)
|
|
@@ -337,7 +340,11 @@ function resolveInjectableScope(
|
|
|
337
340
|
return actualScope
|
|
338
341
|
}
|
|
339
342
|
|
|
340
|
-
export
|
|
343
|
+
export namespace CoreInjectables {
|
|
344
|
+
export const logger = loggerInjectable
|
|
345
|
+
export const inject = injectFnInjectable
|
|
346
|
+
export const dispose = disposeFnInjectable
|
|
347
|
+
}
|
|
341
348
|
|
|
342
349
|
export type Injection<
|
|
343
350
|
T extends AnyInjectable<any, any> = AnyInjectable<any, any>,
|
|
@@ -346,7 +353,7 @@ export type Injection<
|
|
|
346
353
|
value: T extends AnyInjectable<infer R, Scope> ? R | AnyInjectable<R> : never
|
|
347
354
|
}
|
|
348
355
|
|
|
349
|
-
export const
|
|
356
|
+
export const provision = <
|
|
350
357
|
T extends AnyInjectable<any, any>,
|
|
351
358
|
V extends T extends AnyInjectable<infer R, Scope>
|
|
352
359
|
? R | AnyInjectable<R>
|
package/src/logger.ts
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
import { threadId } from 'node:worker_threads'
|
|
2
2
|
|
|
3
|
-
import type
|
|
4
|
-
|
|
3
|
+
import type {
|
|
4
|
+
ChildLoggerOptions,
|
|
5
|
+
DestinationStream,
|
|
6
|
+
Level,
|
|
7
|
+
Logger,
|
|
8
|
+
LoggerOptions,
|
|
9
|
+
StreamEntry,
|
|
10
|
+
} from 'pino'
|
|
11
|
+
import { levels, multistream, pino, stdTimeFunctions } from 'pino'
|
|
5
12
|
import { build as pretty } from 'pino-pretty'
|
|
6
|
-
|
|
7
|
-
export type { StreamEntry } from 'pino'
|
|
8
|
-
export type Logger = pinoType.Logger
|
|
9
|
-
export type LoggerOptions = pinoType.LoggerOptions
|
|
10
|
-
export type LoggerChildOptions = pinoType.ChildLoggerOptions
|
|
11
|
-
export type LoggingOptions = {
|
|
12
|
-
destinations?: Array<
|
|
13
|
-
pinoType.DestinationStream | pinoType.StreamEntry<pinoType.Level>
|
|
14
|
-
>
|
|
15
|
-
pinoOptions?: LoggerOptions
|
|
16
|
-
}
|
|
17
|
-
|
|
18
13
|
import { errWithCause } from 'pino-std-serializers'
|
|
19
14
|
|
|
20
15
|
// TODO: use node:util inspect
|
|
@@ -50,13 +45,13 @@ const levelLabels = {
|
|
|
50
45
|
[Number.POSITIVE_INFINITY]: 'SILENT',
|
|
51
46
|
}
|
|
52
47
|
|
|
53
|
-
export const createLogger = (options: LoggingOptions = {}, $
|
|
48
|
+
export const createLogger = (options: LoggingOptions = {}, $label: string) => {
|
|
54
49
|
let { destinations, pinoOptions } = options
|
|
55
50
|
|
|
56
51
|
if (!destinations || !destinations?.length) {
|
|
57
52
|
destinations = [
|
|
58
53
|
createConsolePrettyDestination(
|
|
59
|
-
(options.pinoOptions?.level || 'info') as
|
|
54
|
+
(options.pinoOptions?.level || 'info') as Level,
|
|
60
55
|
),
|
|
61
56
|
]
|
|
62
57
|
}
|
|
@@ -66,31 +61,47 @@ export const createLogger = (options: LoggingOptions = {}, $lable: string) => {
|
|
|
66
61
|
Math.min(
|
|
67
62
|
acc,
|
|
68
63
|
'stream' in destination
|
|
69
|
-
?
|
|
64
|
+
? levels.values[destination.level!]
|
|
70
65
|
: Number.POSITIVE_INFINITY,
|
|
71
66
|
),
|
|
72
67
|
Number.POSITIVE_INFINITY,
|
|
73
68
|
)
|
|
74
|
-
const level =
|
|
75
|
-
const serializers = {
|
|
69
|
+
const level = levels.labels[lowestLevelValue]
|
|
70
|
+
const serializers = {
|
|
71
|
+
headers: (value: any) => {
|
|
72
|
+
if (value instanceof Headers) {
|
|
73
|
+
const obj = {}
|
|
74
|
+
value.forEach((v, k) => (obj[k] = v))
|
|
75
|
+
return obj
|
|
76
|
+
}
|
|
77
|
+
return value
|
|
78
|
+
},
|
|
79
|
+
...pinoOptions?.serializers,
|
|
80
|
+
err: errWithCause,
|
|
81
|
+
}
|
|
76
82
|
|
|
77
83
|
return pino(
|
|
78
84
|
{ timestamp: stdTimeFunctions.isoTime, ...pinoOptions, level, serializers },
|
|
79
|
-
|
|
80
|
-
).child({ $
|
|
85
|
+
multistream(destinations!),
|
|
86
|
+
).child({ $label, $threadId: threadId })
|
|
81
87
|
}
|
|
82
88
|
|
|
83
|
-
export
|
|
84
|
-
level:
|
|
89
|
+
export type CreateConsolePrettyDestination = (
|
|
90
|
+
level: Level,
|
|
91
|
+
sync?: boolean,
|
|
92
|
+
) => StreamEntry
|
|
93
|
+
|
|
94
|
+
export const createConsolePrettyDestination: CreateConsolePrettyDestination = (
|
|
95
|
+
level,
|
|
85
96
|
sync = true,
|
|
86
|
-
)
|
|
97
|
+
) => ({
|
|
87
98
|
level,
|
|
88
99
|
stream: pretty({
|
|
89
100
|
colorize: true,
|
|
90
|
-
ignore: 'hostname,$
|
|
101
|
+
ignore: 'hostname,$label,$threadId',
|
|
91
102
|
errorLikeObjectKeys: ['err', 'error', 'cause'],
|
|
92
103
|
messageFormat: (log, messageKey) => {
|
|
93
|
-
const group = fg(`[${log.$
|
|
104
|
+
const group = fg(`[${log.$label}]`, 11)
|
|
94
105
|
const msg = fg(log[messageKey], messageColors[log.level as number])
|
|
95
106
|
const thread = fg(`(Thread-${log.$threadId})`, 89)
|
|
96
107
|
return `\x1b[0m${thread} ${group} ${msg}`
|
|
@@ -101,3 +112,17 @@ export const createConsolePrettyDestination = (
|
|
|
101
112
|
sync,
|
|
102
113
|
}),
|
|
103
114
|
})
|
|
115
|
+
|
|
116
|
+
export type {
|
|
117
|
+
Logger,
|
|
118
|
+
ChildLoggerOptions,
|
|
119
|
+
LoggerOptions,
|
|
120
|
+
DestinationStream,
|
|
121
|
+
StreamEntry,
|
|
122
|
+
Level,
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export type LoggingOptions = {
|
|
126
|
+
destinations?: Array<DestinationStream | StreamEntry<Level>>
|
|
127
|
+
pinoOptions?: LoggerOptions
|
|
128
|
+
}
|
package/src/plugin.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MaybePromise } from '@nmtjs/common'
|
|
2
2
|
|
|
3
3
|
import { kPlugin } from './constants.ts'
|
|
4
4
|
|
|
5
5
|
export interface Plugin<Type = void, Context = unknown> {
|
|
6
6
|
name: string
|
|
7
|
-
factory: (context: Context) =>
|
|
7
|
+
factory: (context: Context) => MaybePromise<Type>
|
|
8
8
|
[kPlugin]: any
|
|
9
9
|
}
|
|
10
10
|
|