nmtjs 0.16.0-beta.9 → 0.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/entrypoints/worker.js +9 -9
- package/dist/entrypoints/worker.js.map +1 -1
- package/dist/index.d.ts +58 -15
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/runtime/application/index.d.ts +1 -5
- package/dist/runtime/application/index.js +1 -5
- package/dist/runtime/application/index.js.map +1 -1
- package/dist/runtime/enums.d.ts +1 -12
- package/dist/runtime/enums.js +1 -14
- package/dist/runtime/enums.js.map +1 -1
- package/dist/runtime/hooks.d.ts +1 -4
- package/dist/runtime/hooks.js +1 -3
- package/dist/runtime/hooks.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -3
- package/dist/runtime/index.js +1 -3
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/injectables.d.ts +48 -7
- package/dist/runtime/injectables.js +19 -3
- package/dist/runtime/injectables.js.map +1 -1
- package/dist/runtime/jobs/job.d.ts +1 -2
- package/dist/runtime/jobs/job.js.map +1 -1
- package/dist/runtime/jobs/router.d.ts +2 -5
- package/dist/runtime/jobs/router.js +2 -3
- package/dist/runtime/jobs/router.js.map +1 -1
- package/dist/runtime/jobs/runner.d.ts +1 -1
- package/dist/runtime/jobs/runner.js +1 -1
- package/dist/runtime/jobs/runner.js.map +1 -1
- package/dist/runtime/jobs/types.d.ts +1 -1
- package/dist/runtime/metrics/metric.d.ts +2 -2
- package/dist/runtime/metrics/metric.js +1 -1
- package/dist/runtime/metrics/metric.js.map +1 -1
- package/dist/runtime/metrics/registry.d.ts +3 -3
- package/dist/runtime/metrics/registry.js +1 -1
- package/dist/runtime/metrics/registry.js.map +1 -1
- package/dist/runtime/metrics/server.js +1 -1
- package/dist/runtime/metrics/server.js.map +1 -1
- package/dist/runtime/plugin.d.ts +2 -8
- package/dist/runtime/plugin.js +1 -3
- package/dist/runtime/plugin.js.map +1 -1
- package/dist/runtime/runtime.d.ts +2 -2
- package/dist/runtime/runtime.js +1 -2
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/server/applications.js +3 -0
- package/dist/runtime/server/applications.js.map +1 -1
- package/dist/runtime/server/config.d.ts +15 -12
- package/dist/runtime/server/config.js.map +1 -1
- package/dist/runtime/server/jobs.d.ts +6 -7
- package/dist/runtime/server/jobs.js +44 -30
- package/dist/runtime/server/jobs.js.map +1 -1
- package/dist/runtime/subscription/manager.d.ts +3 -3
- package/dist/runtime/subscription/manager.js +8 -8
- package/dist/runtime/subscription/manager.js.map +1 -1
- package/dist/runtime/subscription/redis.d.ts +1 -1
- package/dist/runtime/subscription/redis.js +16 -17
- package/dist/runtime/subscription/redis.js.map +1 -1
- package/dist/runtime/types.d.ts +3 -11
- package/dist/runtime/workers/application.d.ts +15 -33
- package/dist/runtime/workers/application.js +46 -139
- package/dist/runtime/workers/application.js.map +1 -1
- package/dist/runtime/workers/base.d.ts +0 -2
- package/dist/runtime/workers/base.js +3 -8
- package/dist/runtime/workers/base.js.map +1 -1
- package/dist/runtime/workers/job.js +2 -1
- package/dist/runtime/workers/job.js.map +1 -1
- package/dist/vite/server.js +1 -1
- package/dist/vite/server.js.map +1 -1
- package/package.json +19 -14
- package/src/cli.ts +2 -3
- package/src/entrypoints/worker.ts +11 -9
- package/src/index.ts +12 -5
- package/src/runtime/application/index.ts +1 -5
- package/src/runtime/enums.ts +2 -14
- package/src/runtime/hooks.ts +1 -5
- package/src/runtime/index.ts +2 -3
- package/src/runtime/injectables.ts +35 -6
- package/src/runtime/jobs/job.ts +1 -2
- package/src/runtime/jobs/router.ts +12 -15
- package/src/runtime/jobs/runner.ts +2 -2
- package/src/runtime/jobs/types.ts +1 -1
- package/src/runtime/metrics/metric.ts +2 -2
- package/src/runtime/metrics/registry.ts +5 -1
- package/src/runtime/metrics/server.ts +1 -1
- package/src/runtime/plugin.ts +2 -13
- package/src/runtime/runtime.ts +2 -4
- package/src/runtime/server/applications.ts +6 -0
- package/src/runtime/server/config.ts +27 -21
- package/src/runtime/server/jobs.ts +58 -34
- package/src/runtime/subscription/manager.ts +11 -14
- package/src/runtime/subscription/redis.ts +25 -23
- package/src/runtime/types.ts +3 -12
- package/src/runtime/workers/application.ts +76 -160
- package/src/runtime/workers/base.ts +9 -15
- package/src/runtime/workers/job.ts +3 -6
- package/src/vite/server.ts +1 -1
- package/dist/runtime/application/api/api.d.ts +0 -55
- package/dist/runtime/application/api/api.js +0 -252
- package/dist/runtime/application/api/api.js.map +0 -1
- package/dist/runtime/application/api/config.d.ts +0 -14
- package/dist/runtime/application/api/config.js +0 -6
- package/dist/runtime/application/api/config.js.map +0 -1
- package/dist/runtime/application/api/constants.d.ts +0 -14
- package/dist/runtime/application/api/constants.js +0 -8
- package/dist/runtime/application/api/constants.js.map +0 -1
- package/dist/runtime/application/api/filters.d.ts +0 -14
- package/dist/runtime/application/api/filters.js +0 -11
- package/dist/runtime/application/api/filters.js.map +0 -1
- package/dist/runtime/application/api/guards.d.ts +0 -15
- package/dist/runtime/application/api/guards.js +0 -8
- package/dist/runtime/application/api/guards.js.map +0 -1
- package/dist/runtime/application/api/index.d.ts +0 -23
- package/dist/runtime/application/api/index.js +0 -17
- package/dist/runtime/application/api/index.js.map +0 -1
- package/dist/runtime/application/api/logging.d.ts +0 -14
- package/dist/runtime/application/api/logging.js +0 -77
- package/dist/runtime/application/api/logging.js.map +0 -1
- package/dist/runtime/application/api/meta.d.ts +0 -21
- package/dist/runtime/application/api/meta.js +0 -2
- package/dist/runtime/application/api/meta.js.map +0 -1
- package/dist/runtime/application/api/middlewares.d.ts +0 -14
- package/dist/runtime/application/api/middlewares.js +0 -12
- package/dist/runtime/application/api/middlewares.js.map +0 -1
- package/dist/runtime/application/api/procedure.d.ts +0 -71
- package/dist/runtime/application/api/procedure.js +0 -41
- package/dist/runtime/application/api/procedure.js.map +0 -1
- package/dist/runtime/application/api/router.d.ts +0 -93
- package/dist/runtime/application/api/router.js +0 -55
- package/dist/runtime/application/api/router.js.map +0 -1
- package/dist/runtime/application/api/types.d.ts +0 -38
- package/dist/runtime/application/api/types.js +0 -2
- package/dist/runtime/application/api/types.js.map +0 -1
- package/dist/runtime/application/config.d.ts +0 -28
- package/dist/runtime/application/config.js +0 -25
- package/dist/runtime/application/config.js.map +0 -1
- package/dist/runtime/application/constants.d.ts +0 -2
- package/dist/runtime/application/constants.js +0 -2
- package/dist/runtime/application/constants.js.map +0 -1
- package/dist/runtime/application/hook.d.ts +0 -19
- package/dist/runtime/application/hook.js +0 -11
- package/dist/runtime/application/hook.js.map +0 -1
- package/dist/runtime/application/hooks.d.ts +0 -3
- package/dist/runtime/application/hooks.js +0 -4
- package/dist/runtime/application/hooks.js.map +0 -1
- package/src/runtime/application/api/api.ts +0 -406
- package/src/runtime/application/api/config.ts +0 -18
- package/src/runtime/application/api/constants.ts +0 -22
- package/src/runtime/application/api/filters.ts +0 -39
- package/src/runtime/application/api/guards.ts +0 -33
- package/src/runtime/application/api/index.ts +0 -69
- package/src/runtime/application/api/logging.ts +0 -110
- package/src/runtime/application/api/meta.ts +0 -37
- package/src/runtime/application/api/middlewares.ts +0 -37
- package/src/runtime/application/api/procedure.ts +0 -224
- package/src/runtime/application/api/router.ts +0 -247
- package/src/runtime/application/api/types.ts +0 -138
- package/src/runtime/application/config.ts +0 -82
- package/src/runtime/application/constants.ts +0 -4
- package/src/runtime/application/hook.ts +0 -51
- package/src/runtime/application/hooks.ts +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/runtime/server/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAYnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/runtime/server/jobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Readable } from 'node:stream';
|
|
2
2
|
import type { TAnyEventContract, TAnySubscriptionContract } from '@nmtjs/contract';
|
|
3
|
-
import type {
|
|
3
|
+
import type { Logger } from '@nmtjs/core';
|
|
4
4
|
import type { t } from '@nmtjs/type';
|
|
5
5
|
export type SubscriptionAdapterEvent = {
|
|
6
6
|
channel: string;
|
|
@@ -35,15 +35,15 @@ export type SubscribeFn = <Contract extends TAnySubscriptionContract, Events ext
|
|
|
35
35
|
export type PublishFn = <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 SubscriptionManagerOptions = {
|
|
37
37
|
logger: Logger;
|
|
38
|
-
|
|
38
|
+
adapter: SubscriptionAdapterType;
|
|
39
39
|
};
|
|
40
40
|
export declare class SubscriptionManager {
|
|
41
41
|
protected readonly options: SubscriptionManagerOptions;
|
|
42
42
|
readonly subscriptions: Map<string, SubscriptionChannel>;
|
|
43
43
|
protected readonly logger: Logger;
|
|
44
44
|
constructor(options: SubscriptionManagerOptions);
|
|
45
|
-
protected get adapter(): Promise<SubscriptionAdapterType>;
|
|
46
45
|
subscribe: SubscribeFn;
|
|
47
46
|
publish: PublishFn;
|
|
47
|
+
dispose(): Promise<void>;
|
|
48
48
|
private createEventStream;
|
|
49
49
|
}
|
|
@@ -2,7 +2,6 @@ import assert from 'node:assert';
|
|
|
2
2
|
import { createHash } from 'node:crypto';
|
|
3
3
|
import { PassThrough, Readable } from 'node:stream';
|
|
4
4
|
import { isAbortError } from '@nmtjs/common';
|
|
5
|
-
import { subscriptionAdapter } from '../injectables.js';
|
|
6
5
|
export class SubscriptionManager {
|
|
7
6
|
options;
|
|
8
7
|
subscriptions = new Map();
|
|
@@ -11,11 +10,7 @@ export class SubscriptionManager {
|
|
|
11
10
|
this.options = options;
|
|
12
11
|
this.logger = options.logger.child({ component: SubscriptionManager.name });
|
|
13
12
|
}
|
|
14
|
-
get adapter() {
|
|
15
|
-
return this.options.container.resolve(subscriptionAdapter);
|
|
16
|
-
}
|
|
17
13
|
subscribe = async (subscription, events, options, signal) => {
|
|
18
|
-
const adapter = await this.adapter;
|
|
19
14
|
const eventKeys = Object.keys(events).length === 0
|
|
20
15
|
? Object.keys(subscription.events)
|
|
21
16
|
: Object.keys(events);
|
|
@@ -33,7 +28,7 @@ export class SubscriptionManager {
|
|
|
33
28
|
}, 'Reusing pubsub channel stream');
|
|
34
29
|
}
|
|
35
30
|
else {
|
|
36
|
-
const iterable = adapter.subscribe(channel, signal);
|
|
31
|
+
const iterable = this.options.adapter.subscribe(channel, signal);
|
|
37
32
|
const stream = this.createEventStream(iterable);
|
|
38
33
|
stream.on('close', () => {
|
|
39
34
|
this.subscriptions.delete(channel);
|
|
@@ -69,12 +64,11 @@ export class SubscriptionManager {
|
|
|
69
64
|
return mergedStream;
|
|
70
65
|
};
|
|
71
66
|
publish = async (event, options, data) => {
|
|
72
|
-
const adapter = await this.adapter;
|
|
73
67
|
const channel = getChannelName(event, options);
|
|
74
68
|
this.logger.trace({ channel, event: event.name }, 'Publishing pubsub event');
|
|
75
69
|
try {
|
|
76
70
|
const payload = event.payload.encode(data);
|
|
77
|
-
const published = await adapter.publish(channel, payload);
|
|
71
|
+
const published = await this.options.adapter.publish(channel, payload);
|
|
78
72
|
if (published) {
|
|
79
73
|
this.logger.trace({ channel, event: event.name }, 'Published pubsub event');
|
|
80
74
|
}
|
|
@@ -88,6 +82,12 @@ export class SubscriptionManager {
|
|
|
88
82
|
throw error;
|
|
89
83
|
}
|
|
90
84
|
};
|
|
85
|
+
async dispose() {
|
|
86
|
+
for (const { stream } of this.subscriptions.values()) {
|
|
87
|
+
stream.destroy();
|
|
88
|
+
}
|
|
89
|
+
this.subscriptions.clear();
|
|
90
|
+
}
|
|
91
91
|
createEventStream(iterable) {
|
|
92
92
|
const { subscriptions } = this;
|
|
93
93
|
const logger = this.logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/runtime/subscription/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;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/runtime/subscription/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import EventEmitter from 'node:events';
|
|
2
|
+
import type { RuntimePlugin } from '@nmtjs/application';
|
|
2
3
|
import type { Logger } from '@nmtjs/core';
|
|
3
|
-
import type { RuntimePlugin } from '../plugin.ts';
|
|
4
4
|
import type { Store } from '../types.ts';
|
|
5
5
|
import type { SubscriptionAdapterEvent, SubscriptionAdapterType } from './manager.ts';
|
|
6
6
|
export declare class RedisSubscriptionAdapter implements SubscriptionAdapterType {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import EventEmitter, { on } from 'node:events';
|
|
2
2
|
import { isAbortError } from '@nmtjs/common';
|
|
3
|
-
import { createFactoryInjectable } from '@nmtjs/core';
|
|
3
|
+
import { CoreInjectables, createFactoryInjectable, provision, } from '@nmtjs/core';
|
|
4
4
|
import { storeConfig, subscriptionAdapter } from '../injectables.js';
|
|
5
5
|
import { createStoreClient } from '../store/index.js';
|
|
6
6
|
export class RedisSubscriptionAdapter {
|
|
@@ -97,24 +97,23 @@ export class RedisSubscriptionAdapter {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
export const RedisSubscriptionAdapterPlugin = () => {
|
|
100
|
+
const adapterFactory = createFactoryInjectable({
|
|
101
|
+
dependencies: { config: storeConfig, logger: CoreInjectables.logger },
|
|
102
|
+
factory: async ({ config, logger }) => {
|
|
103
|
+
const connection = await createStoreClient(config);
|
|
104
|
+
const adapter = new RedisSubscriptionAdapter(connection, logger);
|
|
105
|
+
await adapter.initialize();
|
|
106
|
+
return { adapter, connection };
|
|
107
|
+
},
|
|
108
|
+
pick: ({ adapter }) => adapter,
|
|
109
|
+
dispose: async ({ adapter, connection }) => {
|
|
110
|
+
await adapter.dispose();
|
|
111
|
+
await connection.quit();
|
|
112
|
+
},
|
|
113
|
+
}, 'RedisSubscriptionAdapter');
|
|
100
114
|
return {
|
|
101
115
|
name: 'redis-subscription-adapter',
|
|
102
|
-
|
|
103
|
-
'lifecycle:beforeInitialize': async (ctx) => {
|
|
104
|
-
const adapter = await ctx.container.resolve(createFactoryInjectable({
|
|
105
|
-
dependencies: { config: storeConfig },
|
|
106
|
-
factory: async ({ config }) => {
|
|
107
|
-
const connection = await createStoreClient(config);
|
|
108
|
-
const adapter = new RedisSubscriptionAdapter(connection, ctx.logger);
|
|
109
|
-
await adapter.initialize();
|
|
110
|
-
return { adapter, connection };
|
|
111
|
-
},
|
|
112
|
-
pick: ({ adapter }) => adapter,
|
|
113
|
-
dispose: ({ connection }) => connection.quit(),
|
|
114
|
-
}));
|
|
115
|
-
ctx.container.provide(subscriptionAdapter, adapter);
|
|
116
|
-
},
|
|
117
|
-
},
|
|
116
|
+
injections: [provision(subscriptionAdapter, adapterFactory)],
|
|
118
117
|
};
|
|
119
118
|
};
|
|
120
119
|
//# sourceMappingURL=redis.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/runtime/subscription/redis.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,EAAE,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/runtime/subscription/redis.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/types.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ApplicationHostDefinition } from '@nmtjs/application';
|
|
2
2
|
import type { ProxyableTransportType } from '@nmtjs/gateway';
|
|
3
3
|
import type { Redis, RedisOptions } from 'ioredis';
|
|
4
4
|
import type { Redis as Valkey, RedisOptions as ValkeyOptions } from 'iovalkey';
|
|
5
|
-
import type {
|
|
6
|
-
import type { LifecycleHook, StoreType } from './enums.ts';
|
|
7
|
-
import type { BaseRuntime } from './runtime.ts';
|
|
5
|
+
import type { StoreType } from './enums.ts';
|
|
8
6
|
export type WorkerThreadErrorOrigin = 'bootstrap' | 'start' | 'runtime';
|
|
9
7
|
export type ThreadErrorMessage = {
|
|
10
8
|
message: string;
|
|
@@ -76,15 +74,9 @@ export type JobTaskResultTypes = {
|
|
|
76
74
|
job_not_found: {};
|
|
77
75
|
queue_job_not_found: {};
|
|
78
76
|
};
|
|
79
|
-
export interface LifecycleHookTypes extends HookTypes {
|
|
80
|
-
[LifecycleHook.BeforeInitialize]: (runtime: BaseRuntime) => any;
|
|
81
|
-
[LifecycleHook.AfterInitialize]: (runtime: BaseRuntime) => any;
|
|
82
|
-
[LifecycleHook.BeforeDispose]: (runtime: BaseRuntime) => any;
|
|
83
|
-
[LifecycleHook.AfterDispose]: (runtime: BaseRuntime) => any;
|
|
84
|
-
}
|
|
85
77
|
export type ApplicationDefinitionType = {
|
|
86
78
|
type: 'neemata';
|
|
87
|
-
definition:
|
|
79
|
+
definition: ApplicationHostDefinition;
|
|
88
80
|
} | {
|
|
89
81
|
type: 'custom';
|
|
90
82
|
definition: any;
|
|
@@ -1,47 +1,29 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { GatewayOptions } from '@nmtjs/gateway';
|
|
3
|
-
import {
|
|
4
|
-
import type { ApplicationConfig } from '../application/config.ts';
|
|
5
|
-
import type { AnyFilter, AnyGuard, AnyMiddleware, AnyProcedure, AnyRouter, kDefaultProcedure as kDefaultProcedureKey } from '../application/index.ts';
|
|
6
|
-
import type { ServerConfig } from '../server/config.ts';
|
|
7
|
-
import { ApplicationApi } from '../application/api/api.ts';
|
|
8
|
-
import { ApplicationHooks } from '../application/hooks.ts';
|
|
9
|
-
import { kRootRouter } from '../application/index.ts';
|
|
1
|
+
import type { ApplicationHost, ApplicationHostDefinition, ApplicationHostOptions, ApplicationResolvedProcedure, NeemataApplication } from '@nmtjs/application';
|
|
2
|
+
import type { Gateway, GatewayOptions } from '@nmtjs/gateway';
|
|
3
|
+
import type { ServerApplicationConfig, ServerConfig } from '../server/config.ts';
|
|
10
4
|
import { BaseWorkerRuntime } from './base.ts';
|
|
11
5
|
export interface ApplicationWorkerRuntimeOptions {
|
|
12
6
|
name: string;
|
|
13
7
|
path: string;
|
|
14
|
-
transports:
|
|
15
|
-
[key: string]: any;
|
|
16
|
-
};
|
|
8
|
+
transports: ServerApplicationConfig['threads'][number];
|
|
17
9
|
}
|
|
18
10
|
export declare class ApplicationWorkerRuntime extends BaseWorkerRuntime {
|
|
19
11
|
readonly config: ServerConfig;
|
|
20
12
|
readonly runtimeOptions: ApplicationWorkerRuntimeOptions;
|
|
21
|
-
protected
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
path: AnyRouter[];
|
|
30
|
-
}>;
|
|
31
|
-
filters: Set<AnyFilter>;
|
|
32
|
-
middlewares: Set<AnyMiddleware>;
|
|
33
|
-
guards: Set<AnyGuard>;
|
|
34
|
-
constructor(config: ServerConfig, runtimeOptions: ApplicationWorkerRuntimeOptions, appConfig: ApplicationConfig);
|
|
13
|
+
protected hostDefinition: ApplicationHostDefinition;
|
|
14
|
+
host: ApplicationHost;
|
|
15
|
+
constructor(config: ServerConfig, runtimeOptions: ApplicationWorkerRuntimeOptions, hostDefinition: ApplicationHostDefinition);
|
|
16
|
+
get application(): NeemataApplication;
|
|
17
|
+
get api(): import("@nmtjs/gateway").GatewayApi<ApplicationResolvedProcedure>;
|
|
18
|
+
get applicationHooks(): import("@nmtjs/application").ApplicationHooks;
|
|
19
|
+
get gateway(): Gateway<ApplicationResolvedProcedure>;
|
|
20
|
+
get transports(): GatewayOptions<ApplicationResolvedProcedure>['transports'];
|
|
35
21
|
start(): Promise<{
|
|
36
22
|
url: string;
|
|
37
23
|
type: import("@nmtjs/gateway").ProxyableTransportType;
|
|
38
24
|
}[]>;
|
|
39
25
|
stop(): Promise<void>;
|
|
40
|
-
reload(
|
|
41
|
-
|
|
42
|
-
protected
|
|
43
|
-
protected _dispose(): Promise<void>;
|
|
44
|
-
protected _dependents(): Generator<Dependant>;
|
|
45
|
-
protected registerApi(): void;
|
|
46
|
-
protected registerRouter(router: AnyRouter, path?: AnyRouter[]): void;
|
|
26
|
+
reload(hostDefinition: ApplicationHostDefinition): Promise<void>;
|
|
27
|
+
protected _dependents(): Generator<never, void, unknown>;
|
|
28
|
+
protected resolveHostOptions(): Pick<ApplicationHostOptions, 'transports' | 'gateway' | 'identity'>;
|
|
47
29
|
}
|
|
@@ -1,170 +1,77 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createApplicationHost, LifecycleHook } from '@nmtjs/application';
|
|
2
2
|
import { JsonFormat } from '@nmtjs/json-format/server';
|
|
3
3
|
import { MsgpackFormat } from '@nmtjs/msgpack-format/server';
|
|
4
4
|
import { ProtocolFormats } from '@nmtjs/protocol/server';
|
|
5
|
-
import {
|
|
6
|
-
import { ApplicationHooks } from '../application/hooks.js';
|
|
7
|
-
import { isProcedure, isRootRouter, isRouter, kDefaultProcedure, kRootRouter, } from '../application/index.js';
|
|
8
|
-
import { LifecycleHook, WorkerType } from '../enums.js';
|
|
5
|
+
import { WorkerType } from '../enums.js';
|
|
9
6
|
import { BaseWorkerRuntime } from './base.js';
|
|
10
7
|
export class ApplicationWorkerRuntime extends BaseWorkerRuntime {
|
|
11
8
|
config;
|
|
12
9
|
runtimeOptions;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
gateway;
|
|
17
|
-
transports;
|
|
18
|
-
routers = new Map();
|
|
19
|
-
procedures = new Map();
|
|
20
|
-
filters = new Set();
|
|
21
|
-
middlewares = new Set();
|
|
22
|
-
guards = new Set();
|
|
23
|
-
constructor(config, runtimeOptions, appConfig) {
|
|
10
|
+
hostDefinition;
|
|
11
|
+
host;
|
|
12
|
+
constructor(config, runtimeOptions, hostDefinition) {
|
|
24
13
|
super(config, {
|
|
25
14
|
logger: config.logger,
|
|
26
15
|
name: `Worker ${runtimeOptions.name}`,
|
|
27
|
-
plugins:
|
|
16
|
+
plugins: [],
|
|
28
17
|
}, WorkerType.Application);
|
|
29
18
|
this.config = config;
|
|
30
19
|
this.runtimeOptions = runtimeOptions;
|
|
31
|
-
this.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
20
|
+
this.hostDefinition = hostDefinition;
|
|
21
|
+
}
|
|
22
|
+
get application() {
|
|
23
|
+
return this.host.application;
|
|
24
|
+
}
|
|
25
|
+
get api() {
|
|
26
|
+
return this.application.api;
|
|
27
|
+
}
|
|
28
|
+
get applicationHooks() {
|
|
29
|
+
return this.application.applicationHooks;
|
|
30
|
+
}
|
|
31
|
+
get gateway() {
|
|
32
|
+
return this.host.gateway;
|
|
33
|
+
}
|
|
34
|
+
get transports() {
|
|
35
|
+
return this.host.transports;
|
|
43
36
|
}
|
|
44
37
|
async start() {
|
|
45
38
|
await this.initialize();
|
|
46
|
-
this.
|
|
47
|
-
|
|
48
|
-
const options = this.runtimeOptions.transports[key];
|
|
49
|
-
const { factory, proxyable } = this.appConfig.transports[key];
|
|
50
|
-
this.transports[key] = { transport: await factory(options), proxyable };
|
|
51
|
-
}
|
|
52
|
-
this.gateway = new Gateway({
|
|
53
|
-
...this.appConfig.gateway,
|
|
39
|
+
this.host = createApplicationHost(this.hostDefinition.application, {
|
|
40
|
+
name: this.runtimeOptions.name,
|
|
54
41
|
logger: this.logger,
|
|
55
42
|
container: this.container,
|
|
56
|
-
hooks: this.lifecycleHooks,
|
|
57
43
|
formats: new ProtocolFormats([new JsonFormat(), new MsgpackFormat()]),
|
|
58
|
-
|
|
59
|
-
api: this.api,
|
|
60
|
-
identity: this.appConfig.identity,
|
|
61
|
-
});
|
|
62
|
-
return await this.gateway.start().finally(async () => {
|
|
63
|
-
await this.lifecycleHooks.callHook(LifecycleHook.Start);
|
|
44
|
+
...this.resolveHostOptions(),
|
|
64
45
|
});
|
|
46
|
+
return this.host.start();
|
|
65
47
|
}
|
|
66
48
|
async stop() {
|
|
67
|
-
await this.
|
|
49
|
+
await this.host.stop();
|
|
68
50
|
await this.dispose();
|
|
69
51
|
await this.lifecycleHooks.callHook(LifecycleHook.Stop);
|
|
70
52
|
}
|
|
71
|
-
async reload(
|
|
72
|
-
|
|
73
|
-
this.
|
|
74
|
-
this.plugins = appConfig.plugins;
|
|
75
|
-
await this.initialize();
|
|
76
|
-
this.gateway.options.identity =
|
|
77
|
-
this.appConfig.identity ?? this.gateway.options.identity;
|
|
78
|
-
await this.gateway.reload();
|
|
53
|
+
async reload(hostDefinition) {
|
|
54
|
+
this.hostDefinition = hostDefinition;
|
|
55
|
+
await this.host.reloadApplication(hostDefinition.application);
|
|
79
56
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
this.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
async _initialize() {
|
|
86
|
-
await super._initialize();
|
|
87
|
-
for (const hook of this.appConfig.hooks) {
|
|
88
|
-
this.applicationHooks.hook(hook.name, async (...args) => {
|
|
89
|
-
const ctx = await this.container.createContext(hook.dependencies);
|
|
90
|
-
await hook.handler(ctx, ...args);
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
async _dispose() {
|
|
95
|
-
this.applicationHooks.removeAllHooks();
|
|
96
|
-
await super._dispose();
|
|
97
|
-
this.lifecycleHooks.removeHooks(this.appConfig.lifecycleHooks);
|
|
98
|
-
this.filters.clear();
|
|
99
|
-
this.middlewares.clear();
|
|
100
|
-
this.guards.clear();
|
|
101
|
-
this.routers.clear();
|
|
102
|
-
this.procedures.clear();
|
|
103
|
-
}
|
|
104
|
-
*_dependents() {
|
|
105
|
-
yield* this.appConfig.filters;
|
|
106
|
-
yield* this.appConfig.guards;
|
|
107
|
-
yield* this.appConfig.middlewares;
|
|
108
|
-
yield* this.appConfig.meta;
|
|
109
|
-
yield* this.appConfig.hooks;
|
|
110
|
-
for (const router of this.routers.values()) {
|
|
111
|
-
yield* router.meta;
|
|
112
|
-
}
|
|
113
|
-
for (const { procedure } of this.procedures.values()) {
|
|
114
|
-
yield procedure;
|
|
115
|
-
yield* procedure.meta;
|
|
116
|
-
yield* procedure.guards;
|
|
117
|
-
yield* procedure.middlewares;
|
|
57
|
+
*_dependents() { }
|
|
58
|
+
resolveHostOptions() {
|
|
59
|
+
const config = this.config.applications[this.runtimeOptions.name];
|
|
60
|
+
if (!config) {
|
|
61
|
+
throw new Error(`Missing server application config: ${this.runtimeOptions.name}`);
|
|
118
62
|
}
|
|
63
|
+
return {
|
|
64
|
+
transports: createHostTransportConfig(this.hostDefinition.transports, this.runtimeOptions.transports),
|
|
65
|
+
gateway: this.hostDefinition.gateway,
|
|
66
|
+
identity: this.hostDefinition.identity,
|
|
67
|
+
};
|
|
119
68
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
if (!isRootRouter(router)) {
|
|
126
|
-
throw new Error('Root router must be a root router');
|
|
127
|
-
}
|
|
128
|
-
this.routers.set(kRootRouter, router);
|
|
129
|
-
this.registerRouter(router, []);
|
|
130
|
-
if (router.default) {
|
|
131
|
-
if (!isProcedure(router.default)) {
|
|
132
|
-
throw new Error('Root router default must be a procedure');
|
|
133
|
-
}
|
|
134
|
-
this.procedures.set(kDefaultProcedure, {
|
|
135
|
-
procedure: router.default,
|
|
136
|
-
path: [router],
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
for (const filter of filters)
|
|
140
|
-
this.filters.add(filter);
|
|
141
|
-
for (const middleware of middlewares)
|
|
142
|
-
this.middlewares.add(middleware);
|
|
143
|
-
for (const guard of guards)
|
|
144
|
-
this.guards.add(guard);
|
|
145
|
-
}
|
|
146
|
-
registerRouter(router, path = []) {
|
|
147
|
-
for (const route of Object.values(router.routes)) {
|
|
148
|
-
if (isRouter(route)) {
|
|
149
|
-
const name = route.contract.name;
|
|
150
|
-
if (!name)
|
|
151
|
-
throw new Error('Nested routers must have a name');
|
|
152
|
-
if (this.routers.has(name)) {
|
|
153
|
-
throw new Error(`Router ${String(name)} already registered`);
|
|
154
|
-
}
|
|
155
|
-
this.routers.set(name, route);
|
|
156
|
-
this.registerRouter(route, [...path, router]);
|
|
157
|
-
}
|
|
158
|
-
else if (isProcedure(route)) {
|
|
159
|
-
const name = route.contract.name;
|
|
160
|
-
if (!name)
|
|
161
|
-
throw new Error('Procedures must have a name');
|
|
162
|
-
if (this.procedures.has(name)) {
|
|
163
|
-
throw new Error(`Procedure ${name} already registered`);
|
|
164
|
-
}
|
|
165
|
-
this.procedures.set(name, { procedure: route, path: [...path, router] });
|
|
166
|
-
}
|
|
167
|
-
}
|
|
69
|
+
}
|
|
70
|
+
function createHostTransportConfig(transports, options) {
|
|
71
|
+
const config = {};
|
|
72
|
+
for (const key in transports) {
|
|
73
|
+
config[key] = { transport: transports[key], options: options[key] };
|
|
168
74
|
}
|
|
75
|
+
return config;
|
|
169
76
|
}
|
|
170
77
|
//# sourceMappingURL=application.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../src/runtime/workers/application.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../src/runtime/workers/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,9 @@ import type { BaseRuntimeOptions } from '../runtime.ts';
|
|
|
3
3
|
import type { ServerConfig } from '../server/config.ts';
|
|
4
4
|
import { JobManager } from '../jobs/manager.ts';
|
|
5
5
|
import { BaseRuntime } from '../runtime.ts';
|
|
6
|
-
import { SubscriptionManager } from '../subscription/manager.ts';
|
|
7
6
|
export declare abstract class BaseWorkerRuntime extends BaseRuntime {
|
|
8
7
|
readonly config: ServerConfig;
|
|
9
8
|
readonly workerType: WorkerType;
|
|
10
|
-
subscriptionManager: SubscriptionManager;
|
|
11
9
|
jobManager?: JobManager;
|
|
12
10
|
constructor(config: ServerConfig, options: BaseRuntimeOptions, workerType: WorkerType);
|
|
13
11
|
initialize(): Promise<void>;
|
|
@@ -2,20 +2,14 @@ import { CoreInjectables, provision } from '@nmtjs/core';
|
|
|
2
2
|
import * as injectables from '../injectables.js';
|
|
3
3
|
import { JobManager } from '../jobs/manager.js';
|
|
4
4
|
import { BaseRuntime } from '../runtime.js';
|
|
5
|
-
import { SubscriptionManager } from '../subscription/manager.js';
|
|
6
5
|
export class BaseWorkerRuntime extends BaseRuntime {
|
|
7
6
|
config;
|
|
8
7
|
workerType;
|
|
9
|
-
subscriptionManager;
|
|
10
8
|
jobManager;
|
|
11
9
|
constructor(config, options, workerType) {
|
|
12
10
|
super(options);
|
|
13
11
|
this.config = config;
|
|
14
12
|
this.workerType = workerType;
|
|
15
|
-
this.subscriptionManager = new SubscriptionManager({
|
|
16
|
-
logger: this.logger,
|
|
17
|
-
container: this.container,
|
|
18
|
-
});
|
|
19
13
|
if (this.config.store) {
|
|
20
14
|
this.jobManager = new JobManager(this.config.store, this.config.jobs ? Array.from(this.config.jobs.jobs.values()) : []);
|
|
21
15
|
}
|
|
@@ -24,12 +18,13 @@ export class BaseWorkerRuntime extends BaseRuntime {
|
|
|
24
18
|
const injections = [
|
|
25
19
|
provision(CoreInjectables.logger, this.logger),
|
|
26
20
|
provision(injectables.workerType, this.workerType),
|
|
27
|
-
provision(injectables.publish, this.subscriptionManager.publish.bind(this.subscriptionManager)),
|
|
28
|
-
provision(injectables.subscribe, this.subscriptionManager.subscribe.bind(this.subscriptionManager)),
|
|
29
21
|
];
|
|
30
22
|
if (this.config.store) {
|
|
31
23
|
injections.push(provision(injectables.storeConfig, this.config.store));
|
|
32
24
|
}
|
|
25
|
+
if (this.config.subscription) {
|
|
26
|
+
injections.push(provision(injectables.subscriptionAdapter, this.config.subscription.adapter));
|
|
27
|
+
}
|
|
33
28
|
if (this.jobManager) {
|
|
34
29
|
injections.push(provision(injectables.jobManager, this.jobManager.publicInstance));
|
|
35
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/runtime/workers/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAKxD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/runtime/workers/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAKxD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,OAAgB,iBAAkB,SAAQ,WAAW;IAI9C,MAAM;IAEN,UAAU;IALrB,UAAU,CAAa;IAEvB,YACW,MAAoB,EAC7B,OAA2B,EAClB,UAAsB;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAA;sBAJL,MAAM;0BAEN,UAAU;QAInB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CACnE,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,UAAU,GAAgB;YAC9B,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAC9C,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;SACnD,CAAA;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACxE,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,UAAU,CAAC,IAAI,CACb,SAAS,CACP,WAAW,CAAC,mBAAmB,EAC/B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CACjC,CACF,CAAA;QACH,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CACb,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAClE,CAAA;QACH,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAClC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;IAC1B,CAAC;IAES,KAAK,CAAC,WAAW;QACzB,MAAM,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,CAAA;IACrC,CAAC;IAES,KAAK,CAAC,QAAQ;QACtB,MAAM,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,CAAA;IACpC,CAAC;CACF"}
|