@nmtjs/core 0.15.0-beta.5 → 0.15.0-beta.51

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 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
+ ```
@@ -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): any;
34
- provide<T extends AnyInjectable>(injectable: T, value: ResolveInjectableType<T> | AnyInjectable<ResolveInjectableType<T>>): any;
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 "./enums.js";
4
- import { CoreInjectables, compareScope, createValueInjectable, getDepedencencyInjectable, isFactoryInjectable, isInjectable, isLazyInjectable, isOptionalInjectable, isValueInjectable, provide, } from "./injectables.js";
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.instances.has(injectable) || this.resolvers.has(injectable);
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
- async provide(injectable, ...[value]) {
109
+ provide(injectable, ...[value]) {
105
110
  const injections = Array.isArray(injectable)
106
111
  ? injectable
107
- : [provide(injectable, value)];
108
- await Promise.all(injections.map(async ({ token, value }) => {
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
- const _value = isInjectable(value) ? await this.resolve(value) : value;
114
- this.instances.set(token, [
115
- { private: _value, public: _value, context: undefined },
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 (isValueInjectable(injectable)) {
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) ||
@@ -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
@@ -1,4 +1,5 @@
1
- export var Scope;
1
+ export { Scope };
2
+ var Scope;
2
3
  (function (Scope) {
3
4
  Scope["Global"] = "Global";
4
5
  Scope["Connection"] = "Connection";
package/dist/enums.js.map CHANGED
@@ -1 +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"}
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
- createSignal<T extends keyof T>(hook: T): {
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
- createSignal(hook) {
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 { controller, signal: controller.signal, unregister };
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,YAAY,CACV,IAAO;QAMP,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,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,CAAA;IAC9D,CAAC;CACF"}
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
- // // biome-ignore lint/correctness/noUnusedImports: TSC wants it
2
- // // biome-ignore assist/source/organizeImports: TSC wants it
3
- // import {} from 'pino'
4
- export * from "./constants.js";
5
- export * from "./container.js";
6
- export * from "./enums.js";
7
- export * from "./hooks.js";
8
- export * from "./injectables.js";
9
- export * from "./logger.js";
10
- export * from "./metadata.js";
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,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"}
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"}
@@ -1,4 +1,4 @@
1
- import type { Async } from '@nmtjs/common';
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>) => Async<InjectableType>;
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 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<{
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<(<T extends AnyInjectable>(injectable: T, instance?: any) => Promise<void>), Scope.Global>;
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 provide: <T extends AnyInjectable<any, any>, V extends T extends AnyInjectable<infer R, Scope> ? R | AnyInjectable<R> : never>(token: T, value: V) => Injection<T>;
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>;
@@ -1,6 +1,6 @@
1
1
  import { tryCaptureStackTrace } from '@nmtjs/common';
2
- import { kFactoryInjectable, kInjectable, kLazyInjectable, kOptionalDependency, kValueInjectable, } from "./constants.js";
3
- import { Scope } from "./enums.js";
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 logger = Object.assign((label) => createFactoryInjectable({
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 inject = createLazyInjectable(Scope.Global, 'Inject function');
131
- const dispose = createLazyInjectable(Scope.Global, 'Dispose function');
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 const CoreInjectables = { logger, inject, dispose };
139
- export const provide = (token, value) => {
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
@@ -1 +1 @@
1
- {"version":3,"file":"injectables.js","sourceRoot":"","sources":["../src/injectables.ts"],"names":[],"mappings":"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"}
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 * 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;
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<pinoType.DestinationStream | pinoType.StreamEntry<pinoType.Level>>;
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 = {}, $lable) => {
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
- ? pino.levels.values[destination.level]
43
+ ? levels.values[destination.level]
44
44
  : Number.POSITIVE_INFINITY), Number.POSITIVE_INFINITY);
45
- const level = pino.levels.labels[lowestLevelValue];
46
- const serializers = { ...pinoOptions?.serializers, err: errWithCause };
47
- return pino({ timestamp: stdTimeFunctions.isoTime, ...pinoOptions, level, serializers }, pino.multistream(destinations)).child({ $lable, $threadId: threadId });
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,$lable,$threadId',
64
+ ignore: 'hostname,$label,$threadId',
54
65
  errorLikeObjectKeys: ['err', 'error', 'cause'],
55
66
  messageFormat: (log, messageKey) => {
56
- const group = fg(`[${log.$lable}]`, 11);
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}`;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
package/dist/metadata.js CHANGED
@@ -1,4 +1,4 @@
1
- import { kMetadata } from "./constants.js";
1
+ import { kMetadata } from './constants.js';
2
2
  export const createMetadataKey = (key) => {
3
3
  const metadataKey = {
4
4
  [kMetadata]: key,
@@ -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;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"}
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 { Async } from '@nmtjs/common';
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) => Async<Type>;
5
+ factory: (context: Context) => MaybePromise<Type>;
6
6
  [kPlugin]: any;
7
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;
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,4 +1,4 @@
1
- import { kPlugin } from "./constants.js";
1
+ import { kPlugin } from './constants.js';
2
2
  export const createPlugin = (name, factory) => ({ name, factory, [kPlugin]: true });
3
3
  export const isPlugin = (value) => kPlugin in value;
4
4
  //# sourceMappingURL=plugin.js.map
@@ -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;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"}
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"}
@@ -1,4 +1,4 @@
1
- export * from "./functions.js";
2
- export * from "./pool.js";
3
- export * from "./semaphore.js";
1
+ export * from './functions.js';
2
+ export * from './pool.js';
3
+ export * from './semaphore.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -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;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"}
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;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"}
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
- ".": "./dist/index.js",
6
- "./constants": "./dist/constants.js"
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": "^9.6.0",
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.5",
12
- "@nmtjs/type": "0.15.0-beta.5"
24
+ "@nmtjs/common": "0.15.0-beta.51",
25
+ "@nmtjs/type": "0.15.0-beta.51"
13
26
  },
14
27
  "devDependencies": {
15
- "@types/node": "^24",
16
- "pino": "^9.6.0",
28
+ "pino-std-serializers": "^7.0.0",
29
+ "pino": "^10.0.0",
17
30
  "pino-pretty": "^13.0.0",
18
- "@nmtjs/common": "0.15.0-beta.5",
19
- "@nmtjs/type": "0.15.0-beta.5"
31
+ "@types/node": "^24",
32
+ "@nmtjs/common": "0.15.0-beta.51",
33
+ "@nmtjs/type": "0.15.0-beta.51"
20
34
  },
21
35
  "files": [
22
36
  "dist",
@@ -24,15 +38,8 @@
24
38
  "LICENSE.md",
25
39
  "README.md"
26
40
  ],
27
- "dependencies": {
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.51",
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
- provide,
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 any) === Scope.Transient) {
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 this.instances.has(injectable) || this.resolvers.has(injectable)
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
- async provide<T extends Injection[]>(injections: T)
169
- async provide<T extends AnyInjectable>(
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
- async provide<T extends AnyInjectable | Injection[]>(
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
- : [provide(injectable, value)]
186
- await Promise.all(
187
- injections.map(async ({ token, value }) => {
188
- if (compareScope(token.scope, '>', this.scope)) {
189
- // TODO: more informative error
190
- throw new Error('Invalid scope')
191
- }
192
- const _value = isInjectable(value) ? await this.resolve(value) : value
193
- this.instances.set(token, [
194
- { private: _value, public: _value, context: undefined },
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 (isValueInjectable(injectable)) {
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
- createSignal<T extends keyof T>(
10
- hook: T,
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 { controller, signal: controller.signal, unregister }
23
+ return {
24
+ controller,
25
+ signal: controller.signal,
26
+ unregister,
27
+ [Symbol.dispose]: unregister,
28
+ }
23
29
  }
24
30
  }
package/src/index.ts CHANGED
@@ -1,7 +1,3 @@
1
- // // biome-ignore lint/correctness/noUnusedImports: TSC wants it
2
- // // biome-ignore assist/source/organizeImports: TSC wants it
3
- // import {} from 'pino'
4
-
5
1
  export * from './constants.ts'
6
2
  export * from './container.ts'
7
3
  export * from './enums.ts'
@@ -1,4 +1,4 @@
1
- import type { Async } from '@nmtjs/common'
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>) => Async<InjectableType>
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 logger = Object.assign(
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 inject = createLazyInjectable<InjectFn>(Scope.Global, 'Inject function')
323
- const dispose = createLazyInjectable<DisposeFn>(
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 const CoreInjectables = { logger, inject, dispose }
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 provide = <
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 * as pinoType from 'pino'
4
- import { pino, stdTimeFunctions } from 'pino'
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 = {}, $lable: string) => {
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 pinoType.Level,
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
- ? pino.levels.values[destination.level!]
64
+ ? levels.values[destination.level!]
70
65
  : Number.POSITIVE_INFINITY,
71
66
  ),
72
67
  Number.POSITIVE_INFINITY,
73
68
  )
74
- const level = pino.levels.labels[lowestLevelValue]
75
- const serializers = { ...pinoOptions?.serializers, err: errWithCause }
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
- pino.multistream(destinations!),
80
- ).child({ $lable, $threadId: threadId })
85
+ multistream(destinations!),
86
+ ).child({ $label, $threadId: threadId })
81
87
  }
82
88
 
83
- export const createConsolePrettyDestination = (
84
- level: pinoType.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
- ): pinoType.StreamEntry => ({
97
+ ) => ({
87
98
  level,
88
99
  stream: pretty({
89
100
  colorize: true,
90
- ignore: 'hostname,$lable,$threadId',
101
+ ignore: 'hostname,$label,$threadId',
91
102
  errorLikeObjectKeys: ['err', 'error', 'cause'],
92
103
  messageFormat: (log, messageKey) => {
93
- const group = fg(`[${log.$lable}]`, 11)
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 { Async } from '@nmtjs/common'
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) => Async<Type>
7
+ factory: (context: Context) => MaybePromise<Type>
8
8
  [kPlugin]: any
9
9
  }
10
10