nmtjs 0.15.0-beta.21 → 0.15.0-beta.23
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/entrypoints/main.js +180 -102
- package/dist/entrypoints/main.js.map +1 -1
- package/dist/entrypoints/worker.d.ts +6 -0
- package/dist/entrypoints/worker.js +121 -20
- package/dist/entrypoints/worker.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/runtime/index.d.ts +9 -0
- package/dist/runtime/index.js +9 -0
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/injectables.d.ts +5 -0
- package/dist/runtime/injectables.js +4 -0
- package/dist/runtime/injectables.js.map +1 -1
- package/dist/runtime/jobs/manager.d.ts +20 -27
- package/dist/runtime/jobs/manager.js +65 -20
- package/dist/runtime/jobs/manager.js.map +1 -1
- package/dist/runtime/jobs/router.d.ts +21 -10
- package/dist/runtime/jobs/router.js +29 -12
- package/dist/runtime/jobs/router.js.map +1 -1
- package/dist/runtime/jobs/runner.d.ts +27 -4
- package/dist/runtime/jobs/runner.js +74 -11
- package/dist/runtime/jobs/runner.js.map +1 -1
- package/dist/runtime/jobs/types.d.ts +80 -0
- package/dist/runtime/jobs/types.js +5 -0
- package/dist/runtime/jobs/types.js.map +1 -0
- package/dist/runtime/server/applications.d.ts +48 -9
- package/dist/runtime/server/applications.js +85 -50
- package/dist/runtime/server/applications.js.map +1 -1
- package/dist/runtime/server/environment.d.ts +43 -0
- package/dist/runtime/server/environment.js +33 -0
- package/dist/runtime/server/environment.js.map +1 -0
- package/dist/runtime/server/error-policy.d.ts +62 -0
- package/dist/runtime/server/error-policy.js +73 -0
- package/dist/runtime/server/error-policy.js.map +1 -0
- package/dist/runtime/server/hmr-coordinator.d.ts +43 -0
- package/dist/runtime/server/hmr-coordinator.js +94 -0
- package/dist/runtime/server/hmr-coordinator.js.map +1 -0
- package/dist/runtime/server/jobs.d.ts +24 -7
- package/dist/runtime/server/jobs.js +48 -37
- package/dist/runtime/server/jobs.js.map +1 -1
- package/dist/runtime/server/lifecycle.d.ts +88 -0
- package/dist/runtime/server/lifecycle.js +173 -0
- package/dist/runtime/server/lifecycle.js.map +1 -0
- package/dist/runtime/server/managed-worker.d.ts +147 -0
- package/dist/runtime/server/managed-worker.js +373 -0
- package/dist/runtime/server/managed-worker.js.map +1 -0
- package/dist/runtime/server/pool-manager.d.ts +85 -0
- package/dist/runtime/server/pool-manager.js +129 -0
- package/dist/runtime/server/pool-manager.js.map +1 -0
- package/dist/runtime/server/server.d.ts +35 -29
- package/dist/runtime/server/server.js +45 -2
- package/dist/runtime/server/server.js.map +1 -1
- package/dist/runtime/server/types.d.ts +27 -0
- package/dist/runtime/server/types.js +2 -0
- package/dist/runtime/server/types.js.map +1 -0
- package/dist/runtime/server/worker-pool.d.ts +120 -0
- package/dist/runtime/server/worker-pool.js +171 -0
- package/dist/runtime/server/worker-pool.js.map +1 -0
- package/dist/runtime/workers/job.js.map +1 -1
- package/dist/vite/builder.js +3 -32
- package/dist/vite/builder.js.map +1 -1
- package/dist/vite/servers/worker.d.ts +5 -3
- package/dist/vite/servers/worker.js +15 -34
- package/dist/vite/servers/worker.js.map +1 -1
- package/package.json +12 -12
- package/src/entrypoints/main.ts +219 -125
- package/src/entrypoints/worker.ts +150 -25
- package/src/runtime/index.ts +9 -0
- package/src/runtime/injectables.ts +13 -0
- package/src/runtime/jobs/manager.ts +89 -45
- package/src/runtime/jobs/router.ts +59 -22
- package/src/runtime/jobs/runner.ts +120 -15
- package/src/runtime/jobs/types.ts +110 -0
- package/src/runtime/server/applications.ts +113 -65
- package/src/runtime/server/environment.ts +71 -0
- package/src/runtime/server/error-policy.ts +132 -0
- package/src/runtime/server/hmr-coordinator.ts +116 -0
- package/src/runtime/server/jobs.ts +81 -44
- package/src/runtime/server/lifecycle.ts +227 -0
- package/src/runtime/server/managed-worker.ts +491 -0
- package/src/runtime/server/pool-manager.ts +187 -0
- package/src/runtime/server/server.ts +72 -39
- package/src/runtime/server/types.ts +27 -0
- package/src/runtime/server/worker-pool.ts +274 -0
- package/src/runtime/workers/job.ts +2 -7
- package/src/vite/builder.ts +3 -32
- package/src/vite/servers/worker.ts +19 -41
- package/dist/runtime/server/pool.d.ts +0 -54
- package/dist/runtime/server/pool.js +0 -194
- package/dist/runtime/server/pool.js.map +0 -1
- package/src/runtime/server/pool.ts +0 -260
package/dist/entrypoints/main.js
CHANGED
|
@@ -8,7 +8,12 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
8
8
|
};
|
|
9
9
|
import EventEmitter from 'node:events';
|
|
10
10
|
import { fileURLToPath } from 'node:url';
|
|
11
|
-
import {
|
|
11
|
+
import { createLogger } from '@nmtjs/core';
|
|
12
|
+
import { ApplicationServer, defaultPoolFactory, defaultWorkerFactory, isServerConfig, } from 'nmtjs/runtime';
|
|
13
|
+
import { createRuntimeEnvironment } from "../runtime/server/environment.js";
|
|
14
|
+
import { getErrorPolicy } from "../runtime/server/error-policy.js";
|
|
15
|
+
import { HMRCoordinator } from "../runtime/server/hmr-coordinator.js";
|
|
16
|
+
import { ServerLifecycle } from "../runtime/server/lifecycle.js";
|
|
12
17
|
class InvalidServerConfigError extends Error {
|
|
13
18
|
constructor() {
|
|
14
19
|
super(`Server config file does not have a default export, or it is not a valid server config. Please, make sure the server config is defined using defineServer().`);
|
|
@@ -18,30 +23,39 @@ class InvalidServerConfigError extends Error {
|
|
|
18
23
|
const _ext = new URL(import.meta.url).pathname.endsWith('.ts') ? '.ts' : '.js';
|
|
19
24
|
const _vite = __VITE_CONFIG__ ? JSON.parse(__VITE_CONFIG__) : undefined;
|
|
20
25
|
const applicationsConfig = __APPLICATIONS_CONFIG__ ? JSON.parse(__APPLICATIONS_CONFIG__) : {};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
_vite.options.configPath)).then((m) => m.default);
|
|
37
|
-
_viteServerEvents = new EventEmitter();
|
|
38
|
-
_viteServerEvents.on('worker-error', handleWorkerError);
|
|
39
|
-
_viteServerEvents.on('worker-ready', handleWorkerReady);
|
|
40
|
-
_viteWorkerServer = await createWorkerServer(_vite.options, _vite.mode, neemataConfig, _viteServerEvents);
|
|
26
|
+
// Runtime environment setup
|
|
27
|
+
const mode = _vite?.mode === 'development' ? 'development' : 'production';
|
|
28
|
+
const isDev = mode === 'development';
|
|
29
|
+
const errorPolicy = getErrorPolicy(mode);
|
|
30
|
+
// Logger for main process (created lazily with config-based level)
|
|
31
|
+
let logger;
|
|
32
|
+
function getLogger() {
|
|
33
|
+
if (!logger) {
|
|
34
|
+
// Use server config's logger options if available, otherwise default based on mode
|
|
35
|
+
const loggerOptions = currentServerConfig?.logger ?? {
|
|
36
|
+
pinoOptions: { level: isDev ? 'debug' : 'info' },
|
|
37
|
+
};
|
|
38
|
+
logger = createLogger(loggerOptions, 'Main');
|
|
39
|
+
}
|
|
40
|
+
return logger;
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
// Vite server and events (dev only)
|
|
43
|
+
let _viteServerEvents;
|
|
44
|
+
let _viteServer;
|
|
45
|
+
// Server lifecycle management
|
|
46
|
+
let lifecycle;
|
|
47
|
+
let hmrCoordinator;
|
|
48
|
+
// Current server config (updated on HMR)
|
|
49
|
+
let currentServerConfig;
|
|
50
|
+
// Track termination state
|
|
51
|
+
let isTerminating = false;
|
|
52
|
+
/**
|
|
53
|
+
* Create the ApplicationServer instance using currentServerConfig.
|
|
54
|
+
*/
|
|
55
|
+
function createServer() {
|
|
56
|
+
if (!currentServerConfig) {
|
|
57
|
+
throw new Error('Server config not initialized');
|
|
58
|
+
}
|
|
45
59
|
const workerConfig = {
|
|
46
60
|
path: fileURLToPath(import.meta.resolve(`./thread${_ext}`)),
|
|
47
61
|
workerData: { vite: _vite?.mode },
|
|
@@ -52,102 +66,166 @@ async function bootServer(configValue) {
|
|
|
52
66
|
: undefined,
|
|
53
67
|
events: _viteServerEvents,
|
|
54
68
|
};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
69
|
+
return new ApplicationServer(currentServerConfig, applicationsConfig, workerConfig, undefined, // runOptions
|
|
70
|
+
errorPolicy, defaultWorkerFactory, defaultPoolFactory);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Initialize Vite dev server (dev mode only).
|
|
74
|
+
*/
|
|
75
|
+
async function initializeVite() {
|
|
76
|
+
if (!_vite)
|
|
77
|
+
return;
|
|
78
|
+
const { createViteServer } = await import("../vite/servers/worker.js");
|
|
79
|
+
const neemataConfig = await import(__rewriteRelativeImportExtension(
|
|
80
|
+
/* @vite-ignore */
|
|
81
|
+
_vite.options.configPath)).then((m) => m.default);
|
|
82
|
+
_viteServerEvents = new EventEmitter();
|
|
83
|
+
_viteServerEvents.on('hmr-update', handleHMRUpdate);
|
|
84
|
+
_viteServer = await createViteServer(_vite.options, _vite.mode, neemataConfig, _viteServerEvents);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Initialize the server lifecycle (called once at startup).
|
|
88
|
+
*/
|
|
89
|
+
function initializeLifecycle(configValue) {
|
|
90
|
+
if (!isServerConfig(configValue))
|
|
91
|
+
throw new InvalidServerConfigError();
|
|
92
|
+
// Store initial config
|
|
93
|
+
currentServerConfig = configValue;
|
|
94
|
+
// Create runtime environment
|
|
95
|
+
const env = createRuntimeEnvironment(mode, {
|
|
96
|
+
vite: _viteServer ?? undefined,
|
|
97
|
+
hmr: undefined, // hmrCoordinator created after lifecycle
|
|
98
|
+
});
|
|
99
|
+
// Create lifecycle (singleton)
|
|
100
|
+
lifecycle = new ServerLifecycle(env, createServer, getLogger());
|
|
101
|
+
// Create HMR coordinator (dev only, singleton)
|
|
102
|
+
if (isDev) {
|
|
103
|
+
hmrCoordinator = new HMRCoordinator(lifecycle, getLogger());
|
|
64
104
|
}
|
|
105
|
+
// Listen for lifecycle errors (once)
|
|
106
|
+
lifecycle.on('error', (error, handled) => {
|
|
107
|
+
if (!handled) {
|
|
108
|
+
getLogger().error({ error }, 'Unhandled lifecycle error');
|
|
109
|
+
}
|
|
110
|
+
});
|
|
65
111
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
112
|
+
/**
|
|
113
|
+
* Set up HMR acceptance for server config changes.
|
|
114
|
+
*/
|
|
115
|
+
function setupHMR() {
|
|
116
|
+
if (!import.meta.env.DEV || !import.meta.hot)
|
|
117
|
+
return;
|
|
118
|
+
import.meta.hot.accept('#server', async (module) => {
|
|
119
|
+
if (!module)
|
|
120
|
+
return;
|
|
121
|
+
if (!isServerConfig(module.default))
|
|
122
|
+
throw new InvalidServerConfigError();
|
|
123
|
+
// Update the config (createServer will use this on next reload)
|
|
124
|
+
currentServerConfig = module.default;
|
|
125
|
+
// Use HMR coordinator to handle the reload
|
|
126
|
+
if (hmrCoordinator) {
|
|
127
|
+
try {
|
|
128
|
+
await hmrCoordinator.scheduleReload();
|
|
129
|
+
}
|
|
130
|
+
catch (cause) {
|
|
131
|
+
console.error(new Error('Error during HMR reload:', { cause }));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Handle HMR update event.
|
|
138
|
+
* When an application file is updated and there are failed workers, restart them.
|
|
139
|
+
*/
|
|
140
|
+
async function handleHMRUpdate(_event) {
|
|
141
|
+
// If server is in failed state, try to start it
|
|
142
|
+
if (lifecycle?.currentState === 'failed') {
|
|
143
|
+
try {
|
|
144
|
+
await lifecycle.start();
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
// Error will be handled by lifecycle
|
|
148
|
+
}
|
|
149
|
+
return;
|
|
69
150
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
151
|
+
// If server is running, restart any failed workers
|
|
152
|
+
const server = lifecycle?.getServer();
|
|
153
|
+
if (server) {
|
|
154
|
+
try {
|
|
155
|
+
const restarted = await server.restartFailedWorkers();
|
|
156
|
+
if (restarted > 0) {
|
|
157
|
+
getLogger().info({ count: restarted }, 'Restarted failed workers after HMR update');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
getLogger().error({ error }, 'Failed to restart workers after HMR update');
|
|
162
|
+
}
|
|
74
163
|
}
|
|
75
164
|
}
|
|
76
|
-
|
|
165
|
+
/**
|
|
166
|
+
* Handle startup error.
|
|
167
|
+
*/
|
|
168
|
+
function handleStartupError(error) {
|
|
169
|
+
const normalized = error instanceof Error ? error : new Error(String(error));
|
|
170
|
+
getLogger().error(new Error('Failed to start application server', { cause: normalized }));
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Handle process termination signals.
|
|
174
|
+
*/
|
|
77
175
|
async function handleTermination() {
|
|
78
176
|
if (isTerminating)
|
|
79
177
|
return;
|
|
80
178
|
isTerminating = true;
|
|
81
|
-
|
|
82
|
-
_viteWorkerServer?.close();
|
|
83
|
-
process.exit(0);
|
|
84
|
-
}
|
|
85
|
-
function handleUnexpectedError(error) {
|
|
86
|
-
console.error(new Error('Unexpected Error:', { cause: error }));
|
|
87
|
-
}
|
|
88
|
-
async function shutdownServer() {
|
|
89
|
-
if (!server)
|
|
90
|
-
return;
|
|
179
|
+
getLogger().info('Shutting down...');
|
|
91
180
|
try {
|
|
92
|
-
await
|
|
181
|
+
await lifecycle?.stop();
|
|
93
182
|
}
|
|
94
183
|
catch (error) {
|
|
95
|
-
|
|
184
|
+
getLogger().error(new Error('Failed to stop server', { cause: error }));
|
|
96
185
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
function handleWorkerError(event) {
|
|
102
|
-
hasActiveWorkerError = true;
|
|
103
|
-
console.error(new Error(`Worker ${event.application} thread ${event.threadId} error`, {
|
|
104
|
-
cause: event.error,
|
|
105
|
-
}));
|
|
186
|
+
_viteServer?.close();
|
|
187
|
+
process.exit(0);
|
|
106
188
|
}
|
|
107
|
-
|
|
108
|
-
|
|
189
|
+
/**
|
|
190
|
+
* Handle unexpected errors.
|
|
191
|
+
*/
|
|
192
|
+
function handleUnexpectedError(error) {
|
|
193
|
+
getLogger().error(new Error('Unexpected Error:', { cause: error }));
|
|
109
194
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
195
|
+
/**
|
|
196
|
+
* Main entry point.
|
|
197
|
+
*/
|
|
198
|
+
async function main() {
|
|
199
|
+
// Set up process handlers
|
|
200
|
+
process.once('SIGTERM', handleTermination);
|
|
201
|
+
process.once('SIGINT', handleTermination);
|
|
202
|
+
process.on('uncaughtException', handleUnexpectedError);
|
|
203
|
+
process.on('unhandledRejection', handleUnexpectedError);
|
|
204
|
+
// Initialize Vite (dev mode only)
|
|
205
|
+
await initializeVite();
|
|
206
|
+
// Load server config
|
|
207
|
+
const serverConfig = await import(
|
|
208
|
+
// @ts-expect-error
|
|
209
|
+
'#server').then((m) => m.default);
|
|
210
|
+
// Initialize lifecycle (sync, creates singletons)
|
|
211
|
+
initializeLifecycle(serverConfig);
|
|
212
|
+
// Set up HMR
|
|
213
|
+
setupHMR();
|
|
214
|
+
// Start the server
|
|
215
|
+
try {
|
|
216
|
+
await lifecycle.start();
|
|
118
217
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
218
|
+
catch (error) {
|
|
219
|
+
handleStartupError(error);
|
|
220
|
+
if (!isDev) {
|
|
221
|
+
process.exit(1);
|
|
222
|
+
}
|
|
122
223
|
}
|
|
123
224
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
hasActiveWorkerError = false;
|
|
128
|
-
}
|
|
129
|
-
process.once('SIGTERM', handleTermination);
|
|
130
|
-
process.once('SIGINT', handleTermination);
|
|
131
|
-
process.on('uncaughtException', handleUnexpectedError);
|
|
132
|
-
process.on('unhandledRejection', handleUnexpectedError);
|
|
133
|
-
await bootWithHandling(await import(
|
|
134
|
-
// @ts-expect-error
|
|
135
|
-
'#server').then((m) => m.default)).catch(() => {
|
|
136
|
-
if (!isDev)
|
|
225
|
+
main().catch((error) => {
|
|
226
|
+
getLogger().fatal({ error }, 'Fatal error during startup');
|
|
227
|
+
if (!isDev) {
|
|
137
228
|
process.exit(1);
|
|
229
|
+
}
|
|
138
230
|
});
|
|
139
|
-
const { format } = Intl.NumberFormat('en', {
|
|
140
|
-
notation: 'compact',
|
|
141
|
-
maximumFractionDigits: 2,
|
|
142
|
-
unit: 'byte',
|
|
143
|
-
});
|
|
144
|
-
const printMem = () => {
|
|
145
|
-
globalThis.gc?.();
|
|
146
|
-
// print memory usage every 10 seconds
|
|
147
|
-
const memoryUsage = process.memoryUsage();
|
|
148
|
-
console.log(`Memory Usage: RSS=${format(memoryUsage.rss)}, HeapTotal=${format(memoryUsage.heapTotal)}, HeapUsed=${format(memoryUsage.heapUsed)}, External=${format(memoryUsage.external)}, ArrayBuffers=${format(memoryUsage.arrayBuffers)}`);
|
|
149
|
-
};
|
|
150
|
-
void printMem;
|
|
151
|
-
// printMem()
|
|
152
|
-
// setInterval(printMem, 5000)
|
|
153
231
|
//# sourceMappingURL=main.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/entrypoints/main.ts"],"names":[],"mappings":";;;;;;;;AACA,OAAO,YAAY,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/entrypoints/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import { ApplicationWorkerRuntime, JobWorkerRuntime } from 'nmtjs/runtime';
|
|
2
2
|
import type { RunWorkerOptions } from './thread.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Worker entry point.
|
|
5
|
+
*
|
|
6
|
+
* Handles initialization of application or job worker runtimes.
|
|
7
|
+
* Includes HMR supersede logic for application workers.
|
|
8
|
+
*/
|
|
3
9
|
export declare function run(options: RunWorkerOptions['runtime']): Promise<ApplicationWorkerRuntime | JobWorkerRuntime>;
|
|
@@ -8,35 +8,136 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
8
8
|
};
|
|
9
9
|
import { workerData } from 'node:worker_threads';
|
|
10
10
|
import { ApplicationWorkerRuntime, isApplicationConfig, JobWorkerRuntime, } from 'nmtjs/runtime';
|
|
11
|
+
/**
|
|
12
|
+
* Worker entry point.
|
|
13
|
+
*
|
|
14
|
+
* Handles initialization of application or job worker runtimes.
|
|
15
|
+
* Includes HMR supersede logic for application workers.
|
|
16
|
+
*/
|
|
11
17
|
export async function run(options) {
|
|
12
18
|
const serverConfig = await import(
|
|
13
19
|
// @ts-expect-error
|
|
14
20
|
'#server').then((m) => m.default);
|
|
15
21
|
if (options.type === 'application') {
|
|
16
|
-
|
|
17
|
-
if (module) {
|
|
18
|
-
if (!isApplicationConfig(module.default))
|
|
19
|
-
throw new Error('Invalid application config');
|
|
20
|
-
runtime.reload(module.default);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
const { name, path, transportsData } = options;
|
|
24
|
-
const appConfig = await import(__rewriteRelativeImportExtension(
|
|
25
|
-
/* @vite-ignore */
|
|
26
|
-
path)).then((m) => m.default);
|
|
27
|
-
const runtime = new ApplicationWorkerRuntime(serverConfig, { name, path, transports: transportsData }, appConfig);
|
|
28
|
-
return runtime;
|
|
22
|
+
return initializeApplicationWorker(options, serverConfig);
|
|
29
23
|
}
|
|
30
24
|
else if (options.type === 'jobs') {
|
|
31
|
-
|
|
32
|
-
const runtime = new JobWorkerRuntime(serverConfig, {
|
|
33
|
-
poolName: jobWorkerPool,
|
|
34
|
-
port: workerData.port,
|
|
35
|
-
});
|
|
36
|
-
return runtime;
|
|
25
|
+
return initializeJobWorker(options, serverConfig);
|
|
37
26
|
}
|
|
38
27
|
else {
|
|
39
|
-
throw new Error(`Unknown runtime type: ${
|
|
28
|
+
throw new Error(`Unknown runtime type: ${options.type}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Initialize an application worker with HMR support.
|
|
33
|
+
*/
|
|
34
|
+
async function initializeApplicationWorker(options, serverConfig) {
|
|
35
|
+
const { name, path, transportsData } = options;
|
|
36
|
+
// Load initial application config
|
|
37
|
+
const appConfig = await import(__rewriteRelativeImportExtension(
|
|
38
|
+
/* @vite-ignore */
|
|
39
|
+
path)).then((m) => m.default);
|
|
40
|
+
if (!isApplicationConfig(appConfig)) {
|
|
41
|
+
throw new Error(`Invalid application config for application: ${name}`);
|
|
40
42
|
}
|
|
43
|
+
// Create runtime
|
|
44
|
+
const runtime = new ApplicationWorkerRuntime(serverConfig, { name, path, transports: transportsData }, appConfig);
|
|
45
|
+
// Set up HMR with supersede logic
|
|
46
|
+
setupApplicationHMR(runtime);
|
|
47
|
+
return runtime;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Set up HMR acceptance for application config changes with supersede logic.
|
|
51
|
+
*
|
|
52
|
+
* When a reload is in progress and another HMR event arrives, the pending
|
|
53
|
+
* reload is superseded - only the most recent config is applied.
|
|
54
|
+
*/
|
|
55
|
+
function setupApplicationHMR(runtime) {
|
|
56
|
+
const logger = runtime.logger.child({ component: 'HMR' });
|
|
57
|
+
// Track active reload
|
|
58
|
+
let activeReload = null;
|
|
59
|
+
// Track pending reload (supersedes previous pending)
|
|
60
|
+
let pendingConfig = null;
|
|
61
|
+
let pendingResolve = null;
|
|
62
|
+
let pendingReject = null;
|
|
63
|
+
/**
|
|
64
|
+
* Execute a reload with the given config.
|
|
65
|
+
*/
|
|
66
|
+
const executeReload = async (config) => {
|
|
67
|
+
activeReload = doReload(config);
|
|
68
|
+
try {
|
|
69
|
+
await activeReload;
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
activeReload = null;
|
|
73
|
+
// If there's a pending reload, execute it now
|
|
74
|
+
if (pendingConfig !== null) {
|
|
75
|
+
const config = pendingConfig;
|
|
76
|
+
const resolve = pendingResolve;
|
|
77
|
+
const reject = pendingReject;
|
|
78
|
+
pendingConfig = null;
|
|
79
|
+
pendingResolve = null;
|
|
80
|
+
pendingReject = null;
|
|
81
|
+
executeReload(config).then(resolve, reject);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Perform the actual reload.
|
|
87
|
+
*/
|
|
88
|
+
const doReload = async (config) => {
|
|
89
|
+
try {
|
|
90
|
+
logger.debug('Reloading application...');
|
|
91
|
+
await runtime.reload(config);
|
|
92
|
+
logger.info('Application reloaded successfully');
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
// Log error but keep worker alive for next HMR update
|
|
96
|
+
logger.error({ error }, 'Error during HMR reload');
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Schedule a reload. If reload is in progress, supersedes any pending.
|
|
101
|
+
*/
|
|
102
|
+
const scheduleReload = (config) => {
|
|
103
|
+
// If no active reload, execute immediately
|
|
104
|
+
if (!activeReload) {
|
|
105
|
+
return executeReload(config);
|
|
106
|
+
}
|
|
107
|
+
logger.debug('Reload in progress, queuing update...');
|
|
108
|
+
// Supersede any existing pending reload
|
|
109
|
+
if (pendingResolve) {
|
|
110
|
+
logger.debug('Superseding previous pending reload');
|
|
111
|
+
pendingResolve(); // Resolve old pending (it's superseded)
|
|
112
|
+
}
|
|
113
|
+
// Create new pending
|
|
114
|
+
return new Promise((resolve, reject) => {
|
|
115
|
+
pendingConfig = config;
|
|
116
|
+
pendingResolve = resolve;
|
|
117
|
+
pendingReject = reject;
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
// Register global hot accept handler
|
|
121
|
+
globalThis._hotAccept = async (module) => {
|
|
122
|
+
logger.debug('Received HMR update');
|
|
123
|
+
if (!module)
|
|
124
|
+
return;
|
|
125
|
+
if (!isApplicationConfig(module.default)) {
|
|
126
|
+
logger.error('Invalid application config during HMR reload');
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
await scheduleReload(module.default);
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Initialize a job worker.
|
|
134
|
+
*/
|
|
135
|
+
async function initializeJobWorker(options, serverConfig) {
|
|
136
|
+
const { jobWorkerPool } = options;
|
|
137
|
+
const runtime = new JobWorkerRuntime(serverConfig, {
|
|
138
|
+
poolName: jobWorkerPool,
|
|
139
|
+
port: workerData.port,
|
|
140
|
+
});
|
|
141
|
+
return runtime;
|
|
41
142
|
}
|
|
42
143
|
//# sourceMappingURL=worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/entrypoints/worker.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGhD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,eAAe,CAAA;AAItB,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAoC;IAC5D,MAAM,YAAY,GAAiB,MAAM,MAAM;IAC7C,mBAAmB;IACnB,SAAS,CACV,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/entrypoints/worker.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export declare const neemata: {
|
|
|
13
13
|
workerType: import("@nmtjs/core").LazyInjectable<import("./runtime/enums.ts").WorkerType, import("@nmtjs/core").Scope.Global>;
|
|
14
14
|
jobWorkerPool: import("@nmtjs/core").LazyInjectable<import("./runtime/enums.ts").JobWorkerPool, import("@nmtjs/core").Scope.Global>;
|
|
15
15
|
jobAbortSignal: import("@nmtjs/core").LazyInjectable<AbortSignal, import("@nmtjs/core").Scope.Global>;
|
|
16
|
+
saveJobProgress: import("@nmtjs/core").LazyInjectable<import("./runtime/index.ts").SaveJobProgress, import("@nmtjs/core").Scope.Global>;
|
|
17
|
+
currentJobInfo: import("@nmtjs/core").LazyInjectable<import("./runtime/index.ts").JobExecutionContext, import("@nmtjs/core").Scope.Global>;
|
|
16
18
|
connection: import("@nmtjs/core").LazyInjectable<import("@nmtjs/gateway").GatewayConnection, import("@nmtjs/core").Scope.Connection>;
|
|
17
19
|
connectionId: import("@nmtjs/core").LazyInjectable<string, import("@nmtjs/core").Scope.Connection>;
|
|
18
20
|
connectionData: import("@nmtjs/core").LazyInjectable<unknown, import("@nmtjs/core").Scope.Connection>;
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -9,11 +9,20 @@ export * from './jobs/job.ts';
|
|
|
9
9
|
export * from './jobs/manager.ts';
|
|
10
10
|
export * from './jobs/router.ts';
|
|
11
11
|
export * from './jobs/step.ts';
|
|
12
|
+
export * from './jobs/types.ts';
|
|
12
13
|
export * from './pubsub/manager.ts';
|
|
13
14
|
export * from './pubsub/redis.ts';
|
|
14
15
|
export * from './scheduler/index.ts';
|
|
15
16
|
export * from './server/config.ts';
|
|
17
|
+
export * from './server/environment.ts';
|
|
18
|
+
export * from './server/error-policy.ts';
|
|
19
|
+
export * from './server/hmr-coordinator.ts';
|
|
20
|
+
export * from './server/lifecycle.ts';
|
|
21
|
+
export * from './server/managed-worker.ts';
|
|
22
|
+
export * from './server/pool-manager.ts';
|
|
16
23
|
export * from './server/server.ts';
|
|
24
|
+
export * from './server/types.ts';
|
|
25
|
+
export * from './server/worker-pool.ts';
|
|
17
26
|
export * from './store/index.ts';
|
|
18
27
|
export * from './types.ts';
|
|
19
28
|
export * from './workers/application.ts';
|
package/dist/runtime/index.js
CHANGED
|
@@ -9,11 +9,20 @@ export * from "./jobs/job.js";
|
|
|
9
9
|
export * from "./jobs/manager.js";
|
|
10
10
|
export * from "./jobs/router.js";
|
|
11
11
|
export * from "./jobs/step.js";
|
|
12
|
+
export * from "./jobs/types.js";
|
|
12
13
|
export * from "./pubsub/manager.js";
|
|
13
14
|
export * from "./pubsub/redis.js";
|
|
14
15
|
export * from "./scheduler/index.js";
|
|
15
16
|
export * from "./server/config.js";
|
|
17
|
+
export * from "./server/environment.js";
|
|
18
|
+
export * from "./server/error-policy.js";
|
|
19
|
+
export * from "./server/hmr-coordinator.js";
|
|
20
|
+
export * from "./server/lifecycle.js";
|
|
21
|
+
export * from "./server/managed-worker.js";
|
|
22
|
+
export * from "./server/pool-manager.js";
|
|
16
23
|
export * from "./server/server.js";
|
|
24
|
+
export * from "./server/types.js";
|
|
25
|
+
export * from "./server/worker-pool.js";
|
|
17
26
|
export * from "./store/index.js";
|
|
18
27
|
export * from "./types.js";
|
|
19
28
|
export * from "./workers/application.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Scope } from '@nmtjs/core';
|
|
2
2
|
import type { JobWorkerPool, WorkerType } from './enums.ts';
|
|
3
3
|
import type { JobManagerInstance } from './jobs/manager.ts';
|
|
4
|
+
import type { JobExecutionContext, SaveJobProgress } from './jobs/types.ts';
|
|
4
5
|
import type { PubSubAdapterType, PubSubPublish, PubSubSubscribe } from './pubsub/manager.ts';
|
|
5
6
|
import type { ServerStoreConfig } from './server/config.ts';
|
|
6
7
|
export declare const pubSubAdapter: import("@nmtjs/core").LazyInjectable<PubSubAdapterType, Scope.Global>;
|
|
@@ -11,6 +12,8 @@ export declare const storeConfig: import("@nmtjs/core").LazyInjectable<ServerSto
|
|
|
11
12
|
export declare const workerType: import("@nmtjs/core").LazyInjectable<WorkerType, Scope.Global>;
|
|
12
13
|
export declare const jobWorkerPool: import("@nmtjs/core").LazyInjectable<JobWorkerPool, Scope.Global>;
|
|
13
14
|
export declare const jobAbortSignal: import("@nmtjs/core").LazyInjectable<AbortSignal, Scope.Global>;
|
|
15
|
+
export declare const saveJobProgress: import("@nmtjs/core").LazyInjectable<SaveJobProgress, Scope.Global>;
|
|
16
|
+
export declare const currentJobInfo: import("@nmtjs/core").LazyInjectable<JobExecutionContext, Scope.Global>;
|
|
14
17
|
export declare const RuntimeInjectables: {
|
|
15
18
|
pubSubAdapter: import("@nmtjs/core").LazyInjectable<PubSubAdapterType, Scope.Global>;
|
|
16
19
|
pubSubPublish: import("@nmtjs/core").LazyInjectable<PubSubPublish, Scope.Global>;
|
|
@@ -20,4 +23,6 @@ export declare const RuntimeInjectables: {
|
|
|
20
23
|
workerType: import("@nmtjs/core").LazyInjectable<WorkerType, Scope.Global>;
|
|
21
24
|
jobWorkerPool: import("@nmtjs/core").LazyInjectable<JobWorkerPool, Scope.Global>;
|
|
22
25
|
jobAbortSignal: import("@nmtjs/core").LazyInjectable<AbortSignal, Scope.Global>;
|
|
26
|
+
saveJobProgress: import("@nmtjs/core").LazyInjectable<SaveJobProgress, Scope.Global>;
|
|
27
|
+
currentJobInfo: import("@nmtjs/core").LazyInjectable<JobExecutionContext, Scope.Global>;
|
|
23
28
|
};
|
|
@@ -7,6 +7,8 @@ export const storeConfig = createLazyInjectable(Scope.Global, 'StoreConfig');
|
|
|
7
7
|
export const workerType = createLazyInjectable(Scope.Global, 'WorkerType');
|
|
8
8
|
export const jobWorkerPool = createLazyInjectable(Scope.Global, 'JobWorkerPool');
|
|
9
9
|
export const jobAbortSignal = createLazyInjectable(Scope.Global, 'JobAbortSignal');
|
|
10
|
+
export const saveJobProgress = createLazyInjectable(Scope.Global, 'SaveJobProgress');
|
|
11
|
+
export const currentJobInfo = createLazyInjectable(Scope.Global, 'CurrentJobInfo');
|
|
10
12
|
export const RuntimeInjectables = {
|
|
11
13
|
pubSubAdapter,
|
|
12
14
|
pubSubPublish,
|
|
@@ -16,5 +18,7 @@ export const RuntimeInjectables = {
|
|
|
16
18
|
workerType,
|
|
17
19
|
jobWorkerPool,
|
|
18
20
|
jobAbortSignal,
|
|
21
|
+
saveJobProgress,
|
|
22
|
+
currentJobInfo,
|
|
19
23
|
};
|
|
20
24
|
//# sourceMappingURL=injectables.js.map
|