nmtjs 0.15.0 → 0.15.2
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 +1 -31
- package/dist/runtime/application/api/api.d.ts +1 -0
- package/dist/runtime/application/api/api.js +15 -13
- package/dist/runtime/application/api/api.js.map +1 -1
- package/dist/runtime/application/api/logging.d.ts +9 -2
- package/dist/runtime/application/api/logging.js +32 -20
- package/dist/runtime/application/api/logging.js.map +1 -1
- package/dist/runtime/application/api/types.d.ts +1 -0
- package/dist/runtime/jobs/manager.d.ts +2 -3
- package/dist/runtime/jobs/manager.js +2 -4
- package/dist/runtime/jobs/manager.js.map +1 -1
- package/dist/runtime/plugin.d.ts +2 -2
- package/dist/runtime/pubsub/manager.d.ts +3 -3
- package/dist/runtime/pubsub/manager.js +6 -6
- package/dist/runtime/pubsub/manager.js.map +1 -1
- package/dist/runtime/pubsub/redis.js +13 -14
- package/dist/runtime/pubsub/redis.js.map +1 -1
- package/package.json +23 -23
- package/src/runtime/application/api/api.ts +17 -13
- package/src/runtime/application/api/logging.ts +40 -28
- package/src/runtime/application/api/types.ts +1 -0
- package/src/runtime/jobs/manager.ts +8 -8
- package/src/runtime/plugin.ts +2 -2
- package/src/runtime/pubsub/manager.ts +32 -25
- package/src/runtime/pubsub/redis.ts +15 -17
- package/src/runtime/workers/base.ts +2 -2
package/README.md
CHANGED
|
@@ -6,34 +6,4 @@
|
|
|
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
|
|
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
|
-
```
|
|
9
|
+
- CPU-intensive task execution on separate workers
|
|
@@ -8,6 +8,7 @@ import type { AnyMiddleware } from './middlewares.ts';
|
|
|
8
8
|
import type { AnyProcedure } from './procedure.ts';
|
|
9
9
|
import type { AnyRouter } from './router.ts';
|
|
10
10
|
export type ApiCallOptions<T extends AnyProcedure = AnyProcedure> = Readonly<{
|
|
11
|
+
callId: string;
|
|
11
12
|
connection: GatewayConnection;
|
|
12
13
|
path: AnyRouter[];
|
|
13
14
|
procedure: T;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import assert from 'node:assert';
|
|
2
|
-
import {
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { inspect } from 'node:util';
|
|
4
4
|
import { withTimeout } from '@nmtjs/common';
|
|
5
5
|
import { IsStreamProcedureContract } from '@nmtjs/contract';
|
|
@@ -32,10 +32,12 @@ export class ApplicationApi {
|
|
|
32
32
|
throw NotFound();
|
|
33
33
|
}
|
|
34
34
|
async call(options) {
|
|
35
|
+
const callId = randomUUID();
|
|
35
36
|
const { payload, container, signal, connection } = options;
|
|
36
37
|
const { procedure, path } = this.find(options.procedure);
|
|
37
38
|
options.metadata?.(procedure.metadata);
|
|
38
39
|
const callOptions = Object.freeze({
|
|
40
|
+
callId,
|
|
39
41
|
payload,
|
|
40
42
|
container,
|
|
41
43
|
signal,
|
|
@@ -45,7 +47,6 @@ export class ApplicationApi {
|
|
|
45
47
|
});
|
|
46
48
|
assert(container.scope === Scope.Call, 'Invalid container scope, expected to be Scope.Call');
|
|
47
49
|
const timeout = procedure.contract.timeout ?? this.options.timeout;
|
|
48
|
-
const isIterableProcedure = IsStreamProcedureContract(procedure.contract);
|
|
49
50
|
const streamTimeoutSignal = procedure.streamTimeout
|
|
50
51
|
? AbortSignal.timeout(procedure.streamTimeout)
|
|
51
52
|
: undefined;
|
|
@@ -54,15 +55,9 @@ export class ApplicationApi {
|
|
|
54
55
|
}
|
|
55
56
|
try {
|
|
56
57
|
const handle = await this.createProcedureHandler(callOptions);
|
|
57
|
-
|
|
58
|
+
return timeout
|
|
58
59
|
? await this.withTimeout(handle(payload), timeout)
|
|
59
60
|
: await handle(payload);
|
|
60
|
-
if (isIterableProcedure) {
|
|
61
|
-
return this.handleIterableOutput(procedure, result);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
return this.handleOutput(procedure, result);
|
|
65
|
-
}
|
|
66
61
|
}
|
|
67
62
|
catch (error) {
|
|
68
63
|
const handled = await this.handleFilters(callOptions, error);
|
|
@@ -75,16 +70,18 @@ export class ApplicationApi {
|
|
|
75
70
|
}
|
|
76
71
|
}
|
|
77
72
|
async createProcedureHandler(callOptions) {
|
|
78
|
-
const { connection, procedure, container, path } = callOptions;
|
|
73
|
+
const { callId, connection, procedure, container, path } = callOptions;
|
|
79
74
|
const callCtx = Object.freeze({
|
|
75
|
+
callId,
|
|
80
76
|
connection,
|
|
81
77
|
container,
|
|
82
78
|
path,
|
|
83
79
|
procedure,
|
|
84
80
|
});
|
|
85
|
-
const
|
|
81
|
+
const isIterableProcedure = IsStreamProcedureContract(procedure.contract);
|
|
82
|
+
const middlewares = this.resolveMiddlewares(callOptions);
|
|
86
83
|
const handleProcedure = async (payload) => {
|
|
87
|
-
const middleware = middlewares.next().value;
|
|
84
|
+
const middleware = (await middlewares).next().value;
|
|
88
85
|
if (middleware) {
|
|
89
86
|
const next = (...args) => handleProcedure(args.length === 0 ? payload : args[0]);
|
|
90
87
|
return middleware.handle(middleware.ctx, callCtx, next, payload);
|
|
@@ -95,7 +92,12 @@ export class ApplicationApi {
|
|
|
95
92
|
const { dependencies, handler } = procedure;
|
|
96
93
|
const context = await container.createContext(dependencies);
|
|
97
94
|
const result = await handler(context, input);
|
|
98
|
-
|
|
95
|
+
if (isIterableProcedure) {
|
|
96
|
+
return this.handleIterableOutput(procedure, result);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
return this.handleOutput(procedure, result);
|
|
100
|
+
}
|
|
99
101
|
}
|
|
100
102
|
};
|
|
101
103
|
return handleProcedure;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/api.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import type { MaybePromise } from '@nmtjs/common';
|
|
2
2
|
export declare const LoggingCallContextMiddleware: (cb?: (options: Readonly<{
|
|
3
|
+
callId: string;
|
|
3
4
|
connection: import("@nmtjs/gateway").GatewayConnection;
|
|
4
5
|
container: import("@nmtjs/core").Container;
|
|
5
6
|
path: import("./router.ts").AnyRouter[];
|
|
6
7
|
procedure: import("./procedure.ts").Procedure<import("@nmtjs/contract").TProcedureContract<import("@nmtjs/type").AnyCompatibleType<any, unknown>, import("@nmtjs/type").BaseTypeAny, true | undefined, string | undefined>, any>;
|
|
7
8
|
}>, payload: unknown) => MaybePromise<object>) => import("./middlewares.ts").Middleware<{}>;
|
|
8
9
|
export declare const LoggingCallMiddleware: (options?: {
|
|
10
|
+
level?: "debug" | "info" | "trace" | undefined;
|
|
11
|
+
errorLevel?: "error" | "fatal" | "warn" | undefined;
|
|
9
12
|
includePayload?: boolean | undefined;
|
|
10
|
-
|
|
11
|
-
}) => import("./middlewares.ts").Middleware<{
|
|
13
|
+
includeResponse?: boolean | undefined;
|
|
14
|
+
}) => import("./middlewares.ts").Middleware<{
|
|
15
|
+
logger: import("@nmtjs/core").FactoryInjectable<import("pino").Logger, {
|
|
16
|
+
logger: import("@nmtjs/core").LazyInjectable<import("pino").Logger, import("@nmtjs/core").Scope.Global>;
|
|
17
|
+
}, import("@nmtjs/core").Scope.Global, import("pino").Logger>;
|
|
18
|
+
}>;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { IsStreamProcedureContract } from '@nmtjs/contract';
|
|
1
2
|
import { CoreInjectables, loggerLocalStorage } from '@nmtjs/core';
|
|
2
3
|
import { createMiddleware } from './middlewares.js';
|
|
3
4
|
const defaultContext = (options, payload) => {
|
|
4
5
|
return {
|
|
5
|
-
|
|
6
|
+
callId: options.callId,
|
|
7
|
+
connection: {
|
|
6
8
|
id: options.connection.id,
|
|
7
9
|
type: options.connection.type,
|
|
8
10
|
transport: options.connection.transport,
|
|
@@ -19,28 +21,38 @@ export const LoggingCallContextMiddleware = (cb = defaultContext) => createMiddl
|
|
|
19
21
|
});
|
|
20
22
|
},
|
|
21
23
|
});
|
|
22
|
-
export const LoggingCallMiddleware = (options = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
procedure: call.procedure.contract.name,
|
|
32
|
-
payload: payload,
|
|
33
|
-
},
|
|
34
|
-
}
|
|
35
|
-
: { $rpc: { procedure: call.procedure.contract.name } }, 'RPC call');
|
|
24
|
+
export const LoggingCallMiddleware = (options = { level: 'info', includePayload: true, includeResponse: true }) => createMiddleware({
|
|
25
|
+
dependencies: { logger: CoreInjectables.logger('RPC') },
|
|
26
|
+
handle: async ({ logger }, call, next, payload) => {
|
|
27
|
+
const logFn = logger[options.level || 'info'].bind(logger);
|
|
28
|
+
const errorLogFn = logger[options.errorLevel || 'error'].bind(logger);
|
|
29
|
+
logFn(options.includePayload
|
|
30
|
+
? { procedure: call.procedure.contract.name, payload: payload }
|
|
31
|
+
: { procedure: call.procedure.contract.name }, 'RPC call');
|
|
32
|
+
const isIterableProcedure = IsStreamProcedureContract(call.procedure.contract);
|
|
36
33
|
try {
|
|
37
|
-
const
|
|
38
|
-
if (options.
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
const response = await next();
|
|
35
|
+
if (options.includeResponse) {
|
|
36
|
+
if (isIterableProcedure) {
|
|
37
|
+
logFn({ result: 'success', response: 'Stream' }, 'RPC response');
|
|
38
|
+
return async function* (...args) {
|
|
39
|
+
for await (const chunk of response(...args)) {
|
|
40
|
+
logFn({ callId: call.callId, chunk }, 'RPC stream chunk');
|
|
41
|
+
yield chunk;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
logFn({ result: 'success', response }, 'RPC response');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
logFn({ result: 'success' }, 'RPC response');
|
|
51
|
+
}
|
|
52
|
+
return response;
|
|
41
53
|
}
|
|
42
54
|
catch (error) {
|
|
43
|
-
|
|
55
|
+
errorLogFn({ error }, 'RPC error');
|
|
44
56
|
throw error;
|
|
45
57
|
}
|
|
46
58
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/logging.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEnD,MAAM,cAAc,GAAG,CAAC,OAAuB,EAAE,OAAgB,EAAE,EAAE,CAAC;IACpE,OAAO;QACL,
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import type { AnyCompatibleType, BaseTypeAny } from '@nmtjs/type';
|
|
|
5
5
|
import type { Procedure } from './procedure.ts';
|
|
6
6
|
import type { AnyRouter } from './router.ts';
|
|
7
7
|
export type ApiCallContext<Payload = unknown> = Readonly<{
|
|
8
|
+
callId: string;
|
|
8
9
|
connection: GatewayConnection;
|
|
9
10
|
container: Container;
|
|
10
11
|
path: AnyRouter[];
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { Job, JobState, JobType, QueueEventsListener } from 'bullmq';
|
|
1
|
+
import type { Job, JobState, JobType, QueueEventsListener, RedisClient } from 'bullmq';
|
|
2
2
|
import { Queue, QueueEvents, QueueEventsProducer } from 'bullmq';
|
|
3
3
|
import type { ServerStoreConfig } from '../server/config.ts';
|
|
4
|
-
import type { Store } from '../types.ts';
|
|
5
4
|
import type { AnyJob, JobBackoffOptions } from './job.ts';
|
|
6
5
|
import type { JobDefinitionInfo } from './types.ts';
|
|
7
6
|
/**
|
|
@@ -91,7 +90,7 @@ type JobQueueEntry = {
|
|
|
91
90
|
export declare class JobManager {
|
|
92
91
|
protected storeConfig: ServerStoreConfig;
|
|
93
92
|
protected jobs: AnyJob[];
|
|
94
|
-
protected store:
|
|
93
|
+
protected store: RedisClient;
|
|
95
94
|
/**
|
|
96
95
|
* Per-job dedicated queues. Each job has its own queue for granular control.
|
|
97
96
|
*/
|
|
@@ -73,7 +73,7 @@ export class JobManager {
|
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
75
|
async initialize() {
|
|
76
|
-
this.store = await createStoreClient(this.storeConfig);
|
|
76
|
+
this.store = (await createStoreClient(this.storeConfig));
|
|
77
77
|
await this.store.connect();
|
|
78
78
|
// Create a dedicated queue for each job
|
|
79
79
|
for (const job of this.jobs) {
|
|
@@ -84,9 +84,7 @@ export class JobManager {
|
|
|
84
84
|
connection: this.store,
|
|
85
85
|
autorun: true,
|
|
86
86
|
}),
|
|
87
|
-
custom: new QueueEventsProducer(queueName, {
|
|
88
|
-
connection: this.store,
|
|
89
|
-
}),
|
|
87
|
+
custom: new QueueEventsProducer(queueName, { connection: this.store }),
|
|
90
88
|
};
|
|
91
89
|
this.jobQueues.set(job.options.name, entry);
|
|
92
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/runtime/jobs/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/runtime/jobs/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/plugin.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Provision } from '@nmtjs/core';
|
|
2
2
|
import type { LifecycleHooks } from './hooks.ts';
|
|
3
3
|
export interface RuntimePlugin {
|
|
4
4
|
name: string;
|
|
5
5
|
hooks?: LifecycleHooks['_']['config'];
|
|
6
|
-
injections?:
|
|
6
|
+
injections?: Provision[];
|
|
7
7
|
}
|
|
8
8
|
export declare function createPlugin<T extends RuntimePlugin>(plugin: T): T;
|
|
@@ -19,7 +19,7 @@ export type PubSubChannel = {
|
|
|
19
19
|
};
|
|
20
20
|
export type PubSubSubscribe = <Contract extends TAnySubscriptionContract, Events extends {
|
|
21
21
|
[K in keyof Contract['events']]?: true;
|
|
22
|
-
}>(subscription: Contract, events: Events, options: Contract['options'], signal?: AbortSignal) => Omit<Readable, typeof Symbol.asyncIterator> & {
|
|
22
|
+
}>(subscription: Contract, events: Events, options: Contract['options'], signal?: AbortSignal) => Promise<Omit<Readable, typeof Symbol.asyncIterator> & {
|
|
23
23
|
[Symbol.asyncIterator]: () => AsyncIterator<{} extends Events ? {
|
|
24
24
|
[K in keyof Contract['events']]: {
|
|
25
25
|
event: K;
|
|
@@ -31,7 +31,7 @@ export type PubSubSubscribe = <Contract extends TAnySubscriptionContract, Events
|
|
|
31
31
|
data: t.infer.decode.output<Contract['events'][K]['payload']>;
|
|
32
32
|
} : never;
|
|
33
33
|
}[keyof Events]>;
|
|
34
|
-
}
|
|
34
|
+
}>;
|
|
35
35
|
export type PubSubPublish = <S extends TAnySubscriptionContract, E extends S['events'][keyof S['events']]>(event: E, options: S['options'], data: t.infer.decode.input<E['payload']>) => Promise<boolean>;
|
|
36
36
|
export type PubSubManagerOptions = {
|
|
37
37
|
logger: Logger;
|
|
@@ -41,7 +41,7 @@ export declare class PubSubManager {
|
|
|
41
41
|
protected readonly options: PubSubManagerOptions;
|
|
42
42
|
readonly subscriptions: Map<string, PubSubChannel>;
|
|
43
43
|
constructor(options: PubSubManagerOptions);
|
|
44
|
-
protected get adapter(): PubSubAdapterType
|
|
44
|
+
protected get adapter(): Promise<PubSubAdapterType>;
|
|
45
45
|
subscribe: PubSubSubscribe;
|
|
46
46
|
publish: PubSubPublish;
|
|
47
47
|
private createEventStream;
|
|
@@ -10,10 +10,10 @@ export class PubSubManager {
|
|
|
10
10
|
this.options = options;
|
|
11
11
|
}
|
|
12
12
|
get adapter() {
|
|
13
|
-
return this.options.container.
|
|
13
|
+
return this.options.container.resolve(pubSubAdapter);
|
|
14
14
|
}
|
|
15
|
-
subscribe = (subscription, events, options, signal) => {
|
|
16
|
-
|
|
15
|
+
subscribe = async (subscription, events, options, signal) => {
|
|
16
|
+
const adapter = await this.adapter;
|
|
17
17
|
const eventKeys = Object.keys(events).length === 0
|
|
18
18
|
? Object.keys(subscription.events)
|
|
19
19
|
: Object.keys(events);
|
|
@@ -25,7 +25,7 @@ export class PubSubManager {
|
|
|
25
25
|
streams[index] = this.subscriptions.get(channel).stream;
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
|
-
const iterable =
|
|
28
|
+
const iterable = adapter.subscribe(channel, signal);
|
|
29
29
|
const stream = this.createEventStream(iterable);
|
|
30
30
|
stream.on('close', () => this.subscriptions.delete(channel));
|
|
31
31
|
streams[index] = stream;
|
|
@@ -35,11 +35,11 @@ export class PubSubManager {
|
|
|
35
35
|
return mergeEventStreams(streams, signal);
|
|
36
36
|
};
|
|
37
37
|
publish = async (event, options, data) => {
|
|
38
|
-
|
|
38
|
+
const adapter = await this.adapter;
|
|
39
39
|
const channel = getChannelName(event, options);
|
|
40
40
|
try {
|
|
41
41
|
const payload = event.payload.encode(data);
|
|
42
|
-
return await
|
|
42
|
+
return await adapter.publish(channel, payload);
|
|
43
43
|
}
|
|
44
44
|
catch (error) {
|
|
45
45
|
this.options.logger.error(`Failed to publish event "${event.name}" on channel "${channel}": ${error.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/runtime/pubsub/manager.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AASnD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/runtime/pubsub/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,20 +77,19 @@ export const RedisPubSubAdapterPlugin = () => {
|
|
|
77
77
|
return {
|
|
78
78
|
name: 'pubsub-redis-adapter',
|
|
79
79
|
hooks: {
|
|
80
|
-
'lifecycle:
|
|
81
|
-
ctx.container.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
]);
|
|
80
|
+
'lifecycle:beforeInitialize': async (ctx) => {
|
|
81
|
+
const adapter = await ctx.container.resolve(createFactoryInjectable({
|
|
82
|
+
dependencies: { config: storeConfig },
|
|
83
|
+
factory: async ({ config }) => {
|
|
84
|
+
const connection = await createStoreClient(config);
|
|
85
|
+
const adapter = new RedisPubSubAdapter(connection);
|
|
86
|
+
await adapter.initialize();
|
|
87
|
+
return { adapter, connection };
|
|
88
|
+
},
|
|
89
|
+
pick: ({ adapter }) => adapter,
|
|
90
|
+
dispose: ({ connection }) => connection.quit(),
|
|
91
|
+
}));
|
|
92
|
+
ctx.container.provide(pubSubAdapter, adapter);
|
|
94
93
|
},
|
|
95
94
|
},
|
|
96
95
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/runtime/pubsub/redis.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/runtime/pubsub/redis.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -33,39 +33,39 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@bull-board/api": "6.
|
|
37
|
-
"@bull-board/h3": "6.
|
|
38
|
-
"@bull-board/ui": "6.
|
|
39
|
-
"bullmq": "5.
|
|
40
|
-
"citty": "0.2.
|
|
41
|
-
"dedent": "^1.7.
|
|
42
|
-
"dotenv": "^17.
|
|
36
|
+
"@bull-board/api": "6.20.6",
|
|
37
|
+
"@bull-board/h3": "6.20.6",
|
|
38
|
+
"@bull-board/ui": "6.20.6",
|
|
39
|
+
"bullmq": "5.71.0",
|
|
40
|
+
"citty": "0.2.1",
|
|
41
|
+
"dedent": "^1.7.2",
|
|
42
|
+
"dotenv": "^17.3.1",
|
|
43
43
|
"ejs": "3.1.10",
|
|
44
44
|
"h3": "1.15.9",
|
|
45
|
-
"ioredis": "^5.
|
|
45
|
+
"ioredis": "^5.10.1",
|
|
46
46
|
"iovalkey": "^0.3.3",
|
|
47
|
-
"oxc-resolver": "11.
|
|
47
|
+
"oxc-resolver": "11.19.1",
|
|
48
48
|
"prom-client": "git@github.com:siimon/prom-client.git#d4d2dcb366384833951e0116caca707b5f62aa5e",
|
|
49
|
-
"vite": "8.0.
|
|
50
|
-
"@nmtjs/
|
|
51
|
-
"@nmtjs/
|
|
52
|
-
"@nmtjs/
|
|
53
|
-
"@nmtjs/
|
|
54
|
-
"@nmtjs/
|
|
55
|
-
"@nmtjs/msgpack-format": "0.15.
|
|
56
|
-
"@nmtjs/
|
|
57
|
-
"@nmtjs/
|
|
58
|
-
"@nmtjs/
|
|
59
|
-
"@nmtjs/
|
|
49
|
+
"vite": "8.0.1",
|
|
50
|
+
"@nmtjs/contract": "0.15.2",
|
|
51
|
+
"@nmtjs/gateway": "0.15.2",
|
|
52
|
+
"@nmtjs/http-transport": "0.15.2",
|
|
53
|
+
"@nmtjs/common": "0.15.2",
|
|
54
|
+
"@nmtjs/json-format": "0.15.2",
|
|
55
|
+
"@nmtjs/msgpack-format": "0.15.2",
|
|
56
|
+
"@nmtjs/protocol": "0.15.2",
|
|
57
|
+
"@nmtjs/type": "0.15.2",
|
|
58
|
+
"@nmtjs/core": "0.15.2",
|
|
59
|
+
"@nmtjs/ws-transport": "0.15.2"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@nmtjs/proxy": "1.0.0-beta.4",
|
|
63
63
|
"pino": "10.3.0",
|
|
64
|
-
"zod": "^4.
|
|
64
|
+
"zod": "^4.0.0"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
67
|
"@nmtjs/proxy": "1.0.0-beta.4",
|
|
68
|
-
"zod": "^4.
|
|
68
|
+
"zod": "^4.0.0"
|
|
69
69
|
},
|
|
70
70
|
"peerDependenciesMeta": {
|
|
71
71
|
"@nmtjs/proxy": {
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"LICENSE.md",
|
|
80
80
|
"README.md"
|
|
81
81
|
],
|
|
82
|
-
"version": "0.15.
|
|
82
|
+
"version": "0.15.2",
|
|
83
83
|
"scripts": {
|
|
84
84
|
"clean-build": "rm -rf ./dist"
|
|
85
85
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import assert from 'node:assert'
|
|
2
|
-
import {
|
|
2
|
+
import { randomUUID } from 'node:crypto'
|
|
3
3
|
import { inspect } from 'node:util'
|
|
4
4
|
|
|
5
5
|
import type { Container, Logger } from '@nmtjs/core'
|
|
@@ -30,6 +30,7 @@ import { kDefaultProcedure } from './constants.ts'
|
|
|
30
30
|
registerDefaultLocale()
|
|
31
31
|
|
|
32
32
|
export type ApiCallOptions<T extends AnyProcedure = AnyProcedure> = Readonly<{
|
|
33
|
+
callId: string
|
|
33
34
|
connection: GatewayConnection
|
|
34
35
|
path: AnyRouter[]
|
|
35
36
|
procedure: T
|
|
@@ -73,13 +74,16 @@ export class ApplicationApi implements GatewayApi {
|
|
|
73
74
|
}
|
|
74
75
|
|
|
75
76
|
async call(options: GatewayApiCallOptions): Promise<GatewayApiCallResult> {
|
|
77
|
+
const callId = randomUUID()
|
|
78
|
+
|
|
76
79
|
const { payload, container, signal, connection } = options
|
|
77
80
|
|
|
78
81
|
const { procedure, path } = this.find(options.procedure)
|
|
79
82
|
|
|
80
83
|
options.metadata?.(procedure.metadata)
|
|
81
84
|
|
|
82
|
-
const callOptions = Object.freeze({
|
|
85
|
+
const callOptions: ApiCallOptions = Object.freeze({
|
|
86
|
+
callId,
|
|
83
87
|
payload,
|
|
84
88
|
container,
|
|
85
89
|
signal,
|
|
@@ -94,7 +98,6 @@ export class ApplicationApi implements GatewayApi {
|
|
|
94
98
|
)
|
|
95
99
|
|
|
96
100
|
const timeout = procedure.contract.timeout ?? this.options.timeout
|
|
97
|
-
const isIterableProcedure = IsStreamProcedureContract(procedure.contract)
|
|
98
101
|
const streamTimeoutSignal = procedure.streamTimeout
|
|
99
102
|
? AbortSignal.timeout(procedure.streamTimeout)
|
|
100
103
|
: undefined
|
|
@@ -105,14 +108,9 @@ export class ApplicationApi implements GatewayApi {
|
|
|
105
108
|
|
|
106
109
|
try {
|
|
107
110
|
const handle = await this.createProcedureHandler(callOptions)
|
|
108
|
-
|
|
111
|
+
return timeout
|
|
109
112
|
? await this.withTimeout(handle(payload), timeout)
|
|
110
113
|
: await handle(payload)
|
|
111
|
-
if (isIterableProcedure) {
|
|
112
|
-
return this.handleIterableOutput(procedure, result)
|
|
113
|
-
} else {
|
|
114
|
-
return this.handleOutput(procedure, result)
|
|
115
|
-
}
|
|
116
114
|
} catch (error) {
|
|
117
115
|
const handled = await this.handleFilters(callOptions, error)
|
|
118
116
|
if (handled === error && error instanceof ProtocolError === false) {
|
|
@@ -128,19 +126,21 @@ export class ApplicationApi implements GatewayApi {
|
|
|
128
126
|
}
|
|
129
127
|
|
|
130
128
|
private async createProcedureHandler(callOptions: ApiCallOptions) {
|
|
131
|
-
const { connection, procedure, container, path } = callOptions
|
|
129
|
+
const { callId, connection, procedure, container, path } = callOptions
|
|
132
130
|
|
|
133
131
|
const callCtx: ApiCallContext = Object.freeze({
|
|
132
|
+
callId,
|
|
134
133
|
connection,
|
|
135
134
|
container,
|
|
136
135
|
path,
|
|
137
136
|
procedure,
|
|
138
137
|
})
|
|
139
138
|
|
|
140
|
-
const
|
|
139
|
+
const isIterableProcedure = IsStreamProcedureContract(procedure.contract)
|
|
140
|
+
const middlewares = this.resolveMiddlewares(callOptions)
|
|
141
141
|
|
|
142
142
|
const handleProcedure = async (payload: any) => {
|
|
143
|
-
const middleware = middlewares.next().value
|
|
143
|
+
const middleware = (await middlewares).next().value
|
|
144
144
|
if (middleware) {
|
|
145
145
|
const next = (...args: any[]) =>
|
|
146
146
|
handleProcedure(args.length === 0 ? payload : args[0])
|
|
@@ -151,7 +151,11 @@ export class ApplicationApi implements GatewayApi {
|
|
|
151
151
|
const { dependencies, handler } = procedure
|
|
152
152
|
const context = await container.createContext(dependencies)
|
|
153
153
|
const result = await handler(context, input)
|
|
154
|
-
|
|
154
|
+
if (isIterableProcedure) {
|
|
155
|
+
return this.handleIterableOutput(procedure, result)
|
|
156
|
+
} else {
|
|
157
|
+
return this.handleOutput(procedure, result)
|
|
158
|
+
}
|
|
155
159
|
}
|
|
156
160
|
}
|
|
157
161
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { MaybePromise } from '@nmtjs/common'
|
|
2
|
+
import { IsStreamProcedureContract } from '@nmtjs/contract'
|
|
2
3
|
import { CoreInjectables, loggerLocalStorage } from '@nmtjs/core'
|
|
3
4
|
|
|
4
5
|
import type { ApiCallContext } from './types.ts'
|
|
@@ -6,7 +7,8 @@ import { createMiddleware } from './middlewares.ts'
|
|
|
6
7
|
|
|
7
8
|
const defaultContext = (options: ApiCallContext, payload: unknown) => {
|
|
8
9
|
return {
|
|
9
|
-
|
|
10
|
+
callId: options.callId,
|
|
11
|
+
connection: {
|
|
10
12
|
id: options.connection.id,
|
|
11
13
|
type: options.connection.type,
|
|
12
14
|
transport: options.connection.transport,
|
|
@@ -32,40 +34,50 @@ export const LoggingCallContextMiddleware = (
|
|
|
32
34
|
})
|
|
33
35
|
|
|
34
36
|
export const LoggingCallMiddleware = (
|
|
35
|
-
options: {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
options: {
|
|
38
|
+
level?: 'info' | 'debug' | 'trace'
|
|
39
|
+
errorLevel?: 'warn' | 'error' | 'fatal'
|
|
40
|
+
includePayload?: boolean
|
|
41
|
+
includeResponse?: boolean
|
|
42
|
+
} = { level: 'info', includePayload: true, includeResponse: true },
|
|
39
43
|
) =>
|
|
40
44
|
createMiddleware({
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
)
|
|
45
|
-
|
|
45
|
+
dependencies: { logger: CoreInjectables.logger('RPC') },
|
|
46
|
+
handle: async ({ logger }, call, next, payload) => {
|
|
47
|
+
const logFn = logger[options.level || 'info'].bind(logger)
|
|
48
|
+
const errorLogFn = logger[options.errorLevel || 'error'].bind(logger)
|
|
49
|
+
|
|
50
|
+
logFn(
|
|
46
51
|
options.includePayload
|
|
47
|
-
? {
|
|
48
|
-
|
|
49
|
-
procedure: call.procedure.contract.name,
|
|
50
|
-
payload: payload,
|
|
51
|
-
},
|
|
52
|
-
}
|
|
53
|
-
: { $rpc: { procedure: call.procedure.contract.name } },
|
|
52
|
+
? { procedure: call.procedure.contract.name, payload: payload }
|
|
53
|
+
: { procedure: call.procedure.contract.name },
|
|
54
54
|
'RPC call',
|
|
55
55
|
)
|
|
56
|
+
|
|
57
|
+
const isIterableProcedure = IsStreamProcedureContract(
|
|
58
|
+
call.procedure.contract,
|
|
59
|
+
)
|
|
60
|
+
|
|
56
61
|
try {
|
|
57
|
-
const
|
|
58
|
-
if (options.
|
|
59
|
-
|
|
60
|
-
{
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
const response = await next()
|
|
63
|
+
if (options.includeResponse) {
|
|
64
|
+
if (isIterableProcedure) {
|
|
65
|
+
logFn({ result: 'success', response: 'Stream' }, 'RPC response')
|
|
66
|
+
return async function* (...args: any[]) {
|
|
67
|
+
for await (const chunk of response(...args)) {
|
|
68
|
+
logFn({ callId: call.callId, chunk }, 'RPC stream chunk')
|
|
69
|
+
yield chunk
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
} else {
|
|
73
|
+
logFn({ result: 'success', response }, 'RPC response')
|
|
74
|
+
}
|
|
75
|
+
} else {
|
|
76
|
+
logFn({ result: 'success' }, 'RPC response')
|
|
77
|
+
}
|
|
78
|
+
return response
|
|
64
79
|
} catch (error) {
|
|
65
|
-
|
|
66
|
-
{ $rpc: { procedure: call.procedure.contract.name, error } },
|
|
67
|
-
'RPC call error',
|
|
68
|
-
)
|
|
80
|
+
errorLogFn({ error }, 'RPC error')
|
|
69
81
|
throw error
|
|
70
82
|
}
|
|
71
83
|
},
|
|
@@ -16,7 +16,6 @@ import {
|
|
|
16
16
|
} from 'bullmq'
|
|
17
17
|
|
|
18
18
|
import type { ServerStoreConfig } from '../server/config.ts'
|
|
19
|
-
import type { Store } from '../types.ts'
|
|
20
19
|
import type { AnyJob, JobBackoffOptions } from './job.ts'
|
|
21
20
|
import type { JobDefinitionInfo, JobProgressCheckpoint } from './types.ts'
|
|
22
21
|
import { createStoreClient } from '../store/index.ts'
|
|
@@ -138,7 +137,7 @@ type JobQueueEntry = {
|
|
|
138
137
|
* - Consider leader election for sync to reduce write contention
|
|
139
138
|
*/
|
|
140
139
|
export class JobManager {
|
|
141
|
-
protected store!:
|
|
140
|
+
protected store!: RedisClient
|
|
142
141
|
/**
|
|
143
142
|
* Per-job dedicated queues. Each job has its own queue for granular control.
|
|
144
143
|
*/
|
|
@@ -162,21 +161,22 @@ export class JobManager {
|
|
|
162
161
|
}
|
|
163
162
|
|
|
164
163
|
async initialize() {
|
|
165
|
-
this.store = await createStoreClient(
|
|
164
|
+
this.store = (await createStoreClient(
|
|
165
|
+
this.storeConfig,
|
|
166
|
+
)) as unknown as RedisClient
|
|
167
|
+
|
|
166
168
|
await this.store.connect()
|
|
167
169
|
|
|
168
170
|
// Create a dedicated queue for each job
|
|
169
171
|
for (const job of this.jobs) {
|
|
170
172
|
const queueName = getJobQueueName(job)
|
|
171
173
|
const entry: JobQueueEntry = {
|
|
172
|
-
queue: new Queue(queueName, { connection: this.store
|
|
174
|
+
queue: new Queue(queueName, { connection: this.store }),
|
|
173
175
|
events: new QueueEvents(queueName, {
|
|
174
|
-
connection: this.store
|
|
176
|
+
connection: this.store,
|
|
175
177
|
autorun: true,
|
|
176
178
|
}),
|
|
177
|
-
custom: new QueueEventsProducer(queueName, {
|
|
178
|
-
connection: this.store as RedisClient,
|
|
179
|
-
}),
|
|
179
|
+
custom: new QueueEventsProducer(queueName, { connection: this.store }),
|
|
180
180
|
}
|
|
181
181
|
this.jobQueues.set(job.options.name, entry)
|
|
182
182
|
}
|
package/src/runtime/plugin.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Provision } from '@nmtjs/core'
|
|
2
2
|
|
|
3
3
|
import type { LifecycleHooks } from './hooks.ts'
|
|
4
4
|
|
|
5
5
|
export interface RuntimePlugin {
|
|
6
6
|
name: string
|
|
7
7
|
hooks?: LifecycleHooks['_']['config']
|
|
8
|
-
injections?:
|
|
8
|
+
injections?: Provision[]
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export function createPlugin<T extends RuntimePlugin>(plugin: T): T {
|
|
@@ -41,25 +41,27 @@ export type PubSubSubscribe = <
|
|
|
41
41
|
events: Events,
|
|
42
42
|
options: Contract['options'],
|
|
43
43
|
signal?: AbortSignal,
|
|
44
|
-
) =>
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
44
|
+
) => Promise<
|
|
45
|
+
Omit<Readable, typeof Symbol.asyncIterator> & {
|
|
46
|
+
[Symbol.asyncIterator]: () => AsyncIterator<
|
|
47
|
+
{} extends Events
|
|
48
|
+
? {
|
|
49
|
+
[K in keyof Contract['events']]: {
|
|
50
|
+
event: K
|
|
51
|
+
data: t.infer.decode.output<Contract['events'][K]['payload']>
|
|
52
|
+
}
|
|
53
|
+
}[keyof Contract['events']]
|
|
54
|
+
: {
|
|
55
|
+
[K in keyof Events]: K extends keyof Contract['events']
|
|
56
|
+
? {
|
|
57
|
+
event: K
|
|
58
|
+
data: t.infer.decode.output<Contract['events'][K]['payload']>
|
|
59
|
+
}
|
|
60
|
+
: never
|
|
61
|
+
}[keyof Events]
|
|
62
|
+
>
|
|
63
|
+
}
|
|
64
|
+
>
|
|
63
65
|
|
|
64
66
|
export type PubSubPublish = <
|
|
65
67
|
S extends TAnySubscriptionContract,
|
|
@@ -78,11 +80,16 @@ export class PubSubManager {
|
|
|
78
80
|
constructor(protected readonly options: PubSubManagerOptions) {}
|
|
79
81
|
|
|
80
82
|
protected get adapter() {
|
|
81
|
-
return this.options.container.
|
|
83
|
+
return this.options.container.resolve(pubSubAdapter)
|
|
82
84
|
}
|
|
83
85
|
|
|
84
|
-
subscribe: PubSubSubscribe = (
|
|
85
|
-
|
|
86
|
+
subscribe: PubSubSubscribe = async (
|
|
87
|
+
subscription,
|
|
88
|
+
events,
|
|
89
|
+
options,
|
|
90
|
+
signal,
|
|
91
|
+
) => {
|
|
92
|
+
const adapter = await this.adapter
|
|
86
93
|
|
|
87
94
|
const eventKeys =
|
|
88
95
|
Object.keys(events).length === 0
|
|
@@ -97,7 +104,7 @@ export class PubSubManager {
|
|
|
97
104
|
if (this.subscriptions.has(channel)) {
|
|
98
105
|
streams[index] = this.subscriptions.get(channel)!.stream
|
|
99
106
|
} else {
|
|
100
|
-
const iterable =
|
|
107
|
+
const iterable = adapter.subscribe(channel, signal)
|
|
101
108
|
const stream = this.createEventStream(iterable)
|
|
102
109
|
stream.on('close', () => this.subscriptions.delete(channel))
|
|
103
110
|
streams[index] = stream
|
|
@@ -109,13 +116,13 @@ export class PubSubManager {
|
|
|
109
116
|
}
|
|
110
117
|
|
|
111
118
|
publish: PubSubPublish = async (event, options, data) => {
|
|
112
|
-
|
|
119
|
+
const adapter = await this.adapter
|
|
113
120
|
|
|
114
121
|
const channel = getChannelName(event, options)
|
|
115
122
|
|
|
116
123
|
try {
|
|
117
124
|
const payload = event.payload.encode(data)
|
|
118
|
-
return await
|
|
125
|
+
return await adapter.publish(channel, payload)
|
|
119
126
|
} catch (error: any) {
|
|
120
127
|
this.options.logger.error(
|
|
121
128
|
`Failed to publish event "${event.name}" on channel "${channel}": ${error.message}`,
|
|
@@ -85,23 +85,21 @@ export const RedisPubSubAdapterPlugin = (): RuntimePlugin => {
|
|
|
85
85
|
return {
|
|
86
86
|
name: 'pubsub-redis-adapter',
|
|
87
87
|
hooks: {
|
|
88
|
-
'lifecycle:
|
|
89
|
-
ctx.container.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
),
|
|
104
|
-
])
|
|
88
|
+
'lifecycle:beforeInitialize': async (ctx) => {
|
|
89
|
+
const adapter = await ctx.container.resolve(
|
|
90
|
+
createFactoryInjectable({
|
|
91
|
+
dependencies: { config: storeConfig },
|
|
92
|
+
factory: async ({ config }) => {
|
|
93
|
+
const connection = await createStoreClient(config)
|
|
94
|
+
const adapter = new RedisPubSubAdapter(connection)
|
|
95
|
+
await adapter.initialize()
|
|
96
|
+
return { adapter, connection }
|
|
97
|
+
},
|
|
98
|
+
pick: ({ adapter }) => adapter,
|
|
99
|
+
dispose: ({ connection }) => connection.quit(),
|
|
100
|
+
}),
|
|
101
|
+
)
|
|
102
|
+
ctx.container.provide(pubSubAdapter, adapter)
|
|
105
103
|
},
|
|
106
104
|
},
|
|
107
105
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Provision } from '@nmtjs/core'
|
|
2
2
|
import { CoreInjectables, provision } from '@nmtjs/core'
|
|
3
3
|
|
|
4
4
|
import type { WorkerType } from '../enums.ts'
|
|
@@ -34,7 +34,7 @@ export abstract class BaseWorkerRuntime extends BaseRuntime {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
async initialize(): Promise<void> {
|
|
37
|
-
const injections:
|
|
37
|
+
const injections: Provision[] = [
|
|
38
38
|
provision(CoreInjectables.logger, this.logger),
|
|
39
39
|
provision(injectables.workerType, this.workerType),
|
|
40
40
|
provision(
|