@workglow/util 0.2.16 → 0.2.18
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/browser.js +54 -23
- package/dist/browser.js.map +7 -6
- package/dist/bun.js +54 -23
- package/dist/bun.js.map +7 -6
- package/dist/di/Container.d.ts +0 -3
- package/dist/di/Container.d.ts.map +1 -1
- package/dist/di/PortCodecRegistry.d.ts +14 -0
- package/dist/di/PortCodecRegistry.d.ts.map +1 -0
- package/dist/di/index.d.ts +1 -0
- package/dist/di/index.d.ts.map +1 -1
- package/dist/media/color.d.ts +3 -3
- package/dist/media/color.d.ts.map +1 -1
- package/dist/media/cpuImage.d.ts +29 -0
- package/dist/media/cpuImage.d.ts.map +1 -0
- package/dist/media/encode.d.ts +11 -0
- package/dist/media/encode.d.ts.map +1 -0
- package/dist/media/filterRegistry.d.ts +13 -0
- package/dist/media/filterRegistry.d.ts.map +1 -0
- package/dist/media/gpuDevice.browser.d.ts +8 -0
- package/dist/media/gpuDevice.browser.d.ts.map +1 -0
- package/dist/media/gpuImage.d.ts +50 -0
- package/dist/media/gpuImage.d.ts.map +1 -0
- package/dist/media/gpuImageSchema.d.ts +8 -0
- package/dist/media/gpuImageSchema.d.ts.map +1 -0
- package/dist/media/imageCacheCodec.d.ts +9 -0
- package/dist/media/imageCacheCodec.d.ts.map +1 -0
- package/dist/media/imageHydrationResolver.d.ts +2 -0
- package/dist/media/imageHydrationResolver.d.ts.map +1 -0
- package/dist/media/imageRasterCodecRegistry.d.ts.map +1 -1
- package/dist/media/previewBudget.d.ts +23 -0
- package/dist/media/previewBudget.d.ts.map +1 -0
- package/dist/media/shaderRegistry.browser.d.ts +13 -0
- package/dist/media/shaderRegistry.browser.d.ts.map +1 -0
- package/dist/media/sharpImage.bun.d.ts +7 -0
- package/dist/media/sharpImage.bun.d.ts.map +1 -0
- package/dist/media/sharpImage.node.d.ts +93 -0
- package/dist/media/sharpImage.node.d.ts.map +1 -0
- package/dist/media/texturePool.browser.d.ts +17 -0
- package/dist/media/texturePool.browser.d.ts.map +1 -0
- package/dist/media/webGpuImage.browser.d.ts +40 -0
- package/dist/media/webGpuImage.browser.d.ts.map +1 -0
- package/dist/media-browser.d.ts +18 -3
- package/dist/media-browser.d.ts.map +1 -1
- package/dist/media-browser.js +850 -404
- package/dist/media-browser.js.map +21 -7
- package/dist/media-node.d.ts +21 -2
- package/dist/media-node.d.ts.map +1 -1
- package/dist/media-node.js +695 -312
- package/dist/media-node.js.map +20 -6
- package/dist/node.js +54 -23
- package/dist/node.js.map +7 -6
- package/dist/worker/WorkerManager.d.ts +6 -6
- package/dist/worker/WorkerManager.d.ts.map +1 -1
- package/dist/worker/WorkerServerBase.d.ts +8 -8
- package/dist/worker/WorkerServerBase.d.ts.map +1 -1
- package/dist/worker-browser.js +54 -23
- package/dist/worker-browser.js.map +7 -6
- package/dist/worker-bun.js +54 -23
- package/dist/worker-bun.js.map +7 -6
- package/dist/worker-node.js +54 -23
- package/dist/worker-node.js.map +7 -6
- package/package.json +4 -1
- package/dist/media/Image.browser.d.ts +0 -24
- package/dist/media/Image.browser.d.ts.map +0 -1
- package/dist/media/Image.d.ts +0 -100
- package/dist/media/Image.d.ts.map +0 -1
|
@@ -9,7 +9,7 @@ export declare class WorkerManager {
|
|
|
9
9
|
/** Function names registered on each worker, populated from the ready message. */
|
|
10
10
|
private workerFunctions;
|
|
11
11
|
private workerStreamFunctions;
|
|
12
|
-
private
|
|
12
|
+
private workerPreviewFunctions;
|
|
13
13
|
/** Persistent factories for workers that can be recreated after termination. */
|
|
14
14
|
private workerFactories;
|
|
15
15
|
/** Idle timeout configuration per registered worker. */
|
|
@@ -39,16 +39,16 @@ export declare class WorkerManager {
|
|
|
39
39
|
onProgress?: (progress: number, message?: string, details?: any) => void;
|
|
40
40
|
}): Promise<T>;
|
|
41
41
|
/**
|
|
42
|
-
* Call a
|
|
43
|
-
* if the worker has no
|
|
42
|
+
* Call a preview function on a worker. Returns undefined (rather than throwing)
|
|
43
|
+
* if the worker has no preview function registered for the given name, so callers
|
|
44
44
|
* can treat the result as an optional preview.
|
|
45
45
|
*
|
|
46
46
|
* @param workerName - Registered worker name
|
|
47
|
-
* @param functionName - Name of the
|
|
47
|
+
* @param functionName - Name of the preview function registered on the worker
|
|
48
48
|
* @param args - Arguments to pass: [input, output, model]
|
|
49
|
-
* @returns The
|
|
49
|
+
* @returns The preview result, or undefined if not registered / on error
|
|
50
50
|
*/
|
|
51
|
-
|
|
51
|
+
callWorkerPreviewFunction<T>(workerName: string, functionName: string, args: any[]): Promise<T | undefined>;
|
|
52
52
|
/**
|
|
53
53
|
* Terminate a single worker and clean up all associated state.
|
|
54
54
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerManager.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,YAAY,CAAyC;IAC7D,kFAAkF;IAClF,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"WorkerManager.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,YAAY,CAAyC;IAC7D,kFAAkF;IAClF,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,sBAAsB,CAAuC;IACrE,gFAAgF;IAChF,OAAO,CAAC,eAAe,CAAwC;IAC/D,wDAAwD;IACxD,OAAO,CAAC,YAAY,CAAkC;IACtD,uDAAuD;IACvD,OAAO,CAAC,gBAAgB,CAAyC;IACjE,4CAA4C;IAC5C,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,wDAAwD;IACxD,OAAO,CAAC,UAAU,CAAyD;IAC3E,qDAAqD;IACrD,OAAO,CAAC,mBAAmB,CAAyC;IAEpE,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EACxC,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GACnC,IAAI,CAaN;IAED,OAAO,CAAC,oBAAoB;YAiDd,iBAAiB;IAgC/B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI9B;IAED,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,uBAAuB;YAqBjB,2BAA2B;YAsB3B,uBAAuB;IAiC/B,kBAAkB,CAAC,CAAC,EACxB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;KAC1E,GACA,OAAO,CAAC,CAAC,CAAC,CAqEZ;IAED;;;;;;;;;OASG;IACG,yBAAyB,CAAC,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE,GACV,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CA2CxB;IAED;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKjD;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAK7B;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C;IAED;;;;;;;;;;;OAWG;IACI,wBAAwB,CAAC,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,cAAc,CAAC,CAAC,CAAC,CAiHnB;CACF;AAED,eAAO,MAAM,cAAc,6CAAsD,CAAC"}
|
|
@@ -14,7 +14,7 @@ export declare class WorkerServerBase {
|
|
|
14
14
|
constructor();
|
|
15
15
|
private functions;
|
|
16
16
|
private streamFunctions;
|
|
17
|
-
private
|
|
17
|
+
private previewFunctions;
|
|
18
18
|
private requestControllers;
|
|
19
19
|
private completedRequests;
|
|
20
20
|
private postResult;
|
|
@@ -28,14 +28,14 @@ export declare class WorkerServerBase {
|
|
|
28
28
|
sendReady(): void;
|
|
29
29
|
registerFunction(name: string, fn: (...args: any[]) => Promise<any>): void;
|
|
30
30
|
/**
|
|
31
|
-
* Register a
|
|
32
|
-
*
|
|
31
|
+
* Register a preview function for lightweight preview execution.
|
|
32
|
+
* Preview functions receive (input, model) and return a fast preview
|
|
33
33
|
* without progress tracking or abort signals.
|
|
34
34
|
*
|
|
35
35
|
* @param name - The function name (e.g., task type identifier)
|
|
36
|
-
* @param fn - Async function: (input,
|
|
36
|
+
* @param fn - Async function: (input, model) => Promise<output | undefined>
|
|
37
37
|
*/
|
|
38
|
-
|
|
38
|
+
registerPreviewFunction(name: string, fn: (input: any, model: any) => Promise<any>): void;
|
|
39
39
|
/**
|
|
40
40
|
* Register an async generator function for streaming execution.
|
|
41
41
|
* When called via the worker protocol with `stream: true`, the server
|
|
@@ -52,10 +52,10 @@ export declare class WorkerServerBase {
|
|
|
52
52
|
}): Promise<void>;
|
|
53
53
|
handleAbort(id: string): Promise<void>;
|
|
54
54
|
/**
|
|
55
|
-
* Handle a
|
|
56
|
-
* function is not registered, since not all task types expose a
|
|
55
|
+
* Handle a preview call. Returns undefined (non-error) if the preview
|
|
56
|
+
* function is not registered, since not all task types expose a preview fn.
|
|
57
57
|
*/
|
|
58
|
-
|
|
58
|
+
handlePreviewCall(id: string, functionName: string, [input, model]: [any, any]): Promise<void>;
|
|
59
59
|
handleCall(id: string, functionName: string, [input, model]: [any, any]): Promise<void>;
|
|
60
60
|
/**
|
|
61
61
|
* Handle a streaming call. If a stream function is registered for the given name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerServerBase.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerServerBase.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,qEAAqE;AACrE,eAAO,MAAM,aAAa,gDAAwD,CAAC;AAsEnF;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,cAAgB;IAEhB,OAAO,CAAC,SAAS,CAAwD;IACzE,OAAO,CAAC,eAAe,CAA8D;IACrF,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"WorkerServerBase.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerServerBase.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,qEAAqE;AACrE,eAAO,MAAM,aAAa,gDAAwD,CAAC;AAsEnF;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,cAAgB;IAEhB,OAAO,CAAC,SAAS,CAAwD;IACzE,OAAO,CAAC,eAAe,CAA8D;IACrF,OAAO,CAAC,gBAAgB,CAAgE;IAGxF,OAAO,CAAC,kBAAkB,CAAsC;IAEhE,OAAO,CAAC,iBAAiB,CAAqB;IAE9C,OAAO,CAAC,UAAU,CAShB;IAEF,OAAO,CAAC,SAAS,CAcf;IAEF,OAAO,CAAC,eAAe,CAKrB;IAEF;;;;OAIG;IACH,SAAS,SAQR;IAED,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,QAElE;IAED;;;;;;;OAOG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,QAEjF;IAED;;;;;;;;OAQG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,aAAa,CAAC,GAAG,CAAC,QAE9E;IAGK,aAAa,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,iBAcrD;IAEK,WAAW,CAAC,EAAE,EAAE,MAAM,iBAS3B;IAED;;;OAGG;IACG,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,iBAYnF;IAEK,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,iBAyB5E;IAED;;;;;OAKG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,iBA0ClF;IAED;;;;OAIG;IACH,OAAO,CAAC,+BAA+B;CAexC"}
|
package/dist/worker-browser.js
CHANGED
|
@@ -98,7 +98,12 @@ class Container {
|
|
|
98
98
|
return child;
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
-
var
|
|
101
|
+
var GLOBAL_CONTAINER_KEY = Symbol.for("@workglow/util/di/globalContainer");
|
|
102
|
+
var _g = globalThis;
|
|
103
|
+
if (!_g[GLOBAL_CONTAINER_KEY]) {
|
|
104
|
+
_g[GLOBAL_CONTAINER_KEY] = new Container;
|
|
105
|
+
}
|
|
106
|
+
var globalContainer = _g[GLOBAL_CONTAINER_KEY];
|
|
102
107
|
// src/di/ServiceRegistry.ts
|
|
103
108
|
function createServiceToken(id) {
|
|
104
109
|
return { id, _type: null };
|
|
@@ -150,6 +155,29 @@ function registerInputResolver(formatPrefix, resolver) {
|
|
|
150
155
|
const resolvers = getInputResolvers();
|
|
151
156
|
resolvers.set(formatPrefix, resolver);
|
|
152
157
|
}
|
|
158
|
+
// src/di/PortCodecRegistry.ts
|
|
159
|
+
var GLOBAL_CODECS_KEY = Symbol.for("@workglow/util/di/portCodecs");
|
|
160
|
+
var _g2 = globalThis;
|
|
161
|
+
if (!_g2[GLOBAL_CODECS_KEY]) {
|
|
162
|
+
_g2[GLOBAL_CODECS_KEY] = new Map;
|
|
163
|
+
}
|
|
164
|
+
var codecs = _g2[GLOBAL_CODECS_KEY];
|
|
165
|
+
function registerPortCodec(formatPrefix, codec) {
|
|
166
|
+
codecs.set(formatPrefix, codec);
|
|
167
|
+
}
|
|
168
|
+
function getPortCodec(format) {
|
|
169
|
+
if (codecs.has(format))
|
|
170
|
+
return codecs.get(format);
|
|
171
|
+
const colon = format.indexOf(":");
|
|
172
|
+
if (colon > 0) {
|
|
173
|
+
const prefix = format.slice(0, colon);
|
|
174
|
+
return codecs.get(prefix);
|
|
175
|
+
}
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
function _resetPortCodecsForTests() {
|
|
179
|
+
codecs.clear();
|
|
180
|
+
}
|
|
153
181
|
// src/logging/ConsoleLogger.ts
|
|
154
182
|
var LOG_LEVEL_ORDER = {
|
|
155
183
|
debug: 0,
|
|
@@ -380,7 +408,7 @@ class WorkerServerBase {
|
|
|
380
408
|
constructor() {}
|
|
381
409
|
functions = {};
|
|
382
410
|
streamFunctions = {};
|
|
383
|
-
|
|
411
|
+
previewFunctions = {};
|
|
384
412
|
requestControllers = new Map;
|
|
385
413
|
completedRequests = new Set;
|
|
386
414
|
postResult = (id, result) => {
|
|
@@ -418,20 +446,20 @@ class WorkerServerBase {
|
|
|
418
446
|
type: "ready",
|
|
419
447
|
functions: Object.keys(this.functions),
|
|
420
448
|
streamFunctions: Object.keys(this.streamFunctions),
|
|
421
|
-
|
|
449
|
+
previewFunctions: Object.keys(this.previewFunctions)
|
|
422
450
|
});
|
|
423
451
|
}
|
|
424
452
|
registerFunction(name, fn) {
|
|
425
453
|
this.functions[name] = fn;
|
|
426
454
|
}
|
|
427
|
-
|
|
428
|
-
this.
|
|
455
|
+
registerPreviewFunction(name, fn) {
|
|
456
|
+
this.previewFunctions[name] = fn;
|
|
429
457
|
}
|
|
430
458
|
registerStreamFunction(name, fn) {
|
|
431
459
|
this.streamFunctions[name] = fn;
|
|
432
460
|
}
|
|
433
461
|
async handleMessage(event) {
|
|
434
|
-
const { id, type, functionName, args, stream,
|
|
462
|
+
const { id, type, functionName, args, stream, preview } = event.data;
|
|
435
463
|
if (type === "abort") {
|
|
436
464
|
return await this.handleAbort(id);
|
|
437
465
|
}
|
|
@@ -439,8 +467,8 @@ class WorkerServerBase {
|
|
|
439
467
|
if (stream) {
|
|
440
468
|
return await this.handleStreamCall(id, functionName, args);
|
|
441
469
|
}
|
|
442
|
-
if (
|
|
443
|
-
return await this.
|
|
470
|
+
if (preview) {
|
|
471
|
+
return await this.handlePreviewCall(id, functionName, args);
|
|
444
472
|
}
|
|
445
473
|
return await this.handleCall(id, functionName, args);
|
|
446
474
|
}
|
|
@@ -454,14 +482,14 @@ class WorkerServerBase {
|
|
|
454
482
|
this.scheduleCompletedRequestCleanup(id);
|
|
455
483
|
}
|
|
456
484
|
}
|
|
457
|
-
async
|
|
458
|
-
if (!(functionName in this.
|
|
485
|
+
async handlePreviewCall(id, functionName, [input, model]) {
|
|
486
|
+
if (!(functionName in this.previewFunctions)) {
|
|
459
487
|
this.postResult(id, undefined);
|
|
460
488
|
return;
|
|
461
489
|
}
|
|
462
490
|
try {
|
|
463
|
-
const fn = this.
|
|
464
|
-
const result = await fn(input,
|
|
491
|
+
const fn = this.previewFunctions[functionName];
|
|
492
|
+
const result = await fn(input, model);
|
|
465
493
|
this.postResult(id, result);
|
|
466
494
|
} catch (error) {
|
|
467
495
|
this.postError(id, error);
|
|
@@ -549,7 +577,7 @@ class WorkerManager {
|
|
|
549
577
|
readyWorkers = new Map;
|
|
550
578
|
workerFunctions = new Map;
|
|
551
579
|
workerStreamFunctions = new Map;
|
|
552
|
-
|
|
580
|
+
workerPreviewFunctions = new Map;
|
|
553
581
|
workerFactories = new Map;
|
|
554
582
|
idleTimeouts = new Map;
|
|
555
583
|
lazyInitPromises = new Map;
|
|
@@ -598,7 +626,7 @@ class WorkerManager {
|
|
|
598
626
|
worker.removeEventListener("error", handleError);
|
|
599
627
|
this.workerFunctions.set(name, new Set(event.data.functions ?? []));
|
|
600
628
|
this.workerStreamFunctions.set(name, new Set(event.data.streamFunctions ?? []));
|
|
601
|
-
this.
|
|
629
|
+
this.workerPreviewFunctions.set(name, new Set(event.data.previewFunctions ?? []));
|
|
602
630
|
resolve();
|
|
603
631
|
}
|
|
604
632
|
};
|
|
@@ -688,7 +716,7 @@ class WorkerManager {
|
|
|
688
716
|
this.readyWorkers.delete(name);
|
|
689
717
|
this.workerFunctions.delete(name);
|
|
690
718
|
this.workerStreamFunctions.delete(name);
|
|
691
|
-
this.
|
|
719
|
+
this.workerPreviewFunctions.delete(name);
|
|
692
720
|
this.activeCallCounts.delete(name);
|
|
693
721
|
if (worker && "terminate" in worker && typeof worker.terminate === "function") {
|
|
694
722
|
try {
|
|
@@ -709,7 +737,7 @@ class WorkerManager {
|
|
|
709
737
|
this.readyWorkers.delete(name);
|
|
710
738
|
this.workerFunctions.delete(name);
|
|
711
739
|
this.workerStreamFunctions.delete(name);
|
|
712
|
-
this.
|
|
740
|
+
this.workerPreviewFunctions.delete(name);
|
|
713
741
|
this.activeCallCounts.delete(name);
|
|
714
742
|
try {
|
|
715
743
|
if (worker && "terminate" in worker && typeof worker.terminate === "function") {
|
|
@@ -777,15 +805,15 @@ class WorkerManager {
|
|
|
777
805
|
this.endWorkerActivity(workerName);
|
|
778
806
|
}
|
|
779
807
|
}
|
|
780
|
-
async
|
|
808
|
+
async callWorkerPreviewFunction(workerName, functionName, args) {
|
|
781
809
|
await this.ensureWorkerReady(workerName);
|
|
782
810
|
const worker = this.workers.get(workerName);
|
|
783
811
|
if (!worker)
|
|
784
812
|
return;
|
|
785
813
|
this.beginWorkerActivity(workerName);
|
|
786
814
|
try {
|
|
787
|
-
const
|
|
788
|
-
if (
|
|
815
|
+
const knownPreview = this.workerPreviewFunctions.get(workerName);
|
|
816
|
+
if (knownPreview && !knownPreview.has(functionName))
|
|
789
817
|
return;
|
|
790
818
|
return await new Promise((resolve) => {
|
|
791
819
|
const requestId = crypto.randomUUID();
|
|
@@ -798,7 +826,7 @@ class WorkerManager {
|
|
|
798
826
|
resolve(data);
|
|
799
827
|
} else if (type === "error") {
|
|
800
828
|
cleanup();
|
|
801
|
-
getLogger().warn(`Worker ${workerName}
|
|
829
|
+
getLogger().warn(`Worker ${workerName} preview function ${functionName} error:`, {
|
|
802
830
|
error: data
|
|
803
831
|
});
|
|
804
832
|
resolve(undefined);
|
|
@@ -808,9 +836,9 @@ class WorkerManager {
|
|
|
808
836
|
worker.removeEventListener("message", handleMessage);
|
|
809
837
|
};
|
|
810
838
|
worker.addEventListener("message", handleMessage);
|
|
811
|
-
const message = { id: requestId, type: "call", functionName, args,
|
|
839
|
+
const message = { id: requestId, type: "call", functionName, args, preview: true };
|
|
812
840
|
worker.postMessage(message);
|
|
813
|
-
getLogger().info(`Worker ${workerName}
|
|
841
|
+
getLogger().info(`Worker ${workerName} preview function ${functionName} called.`);
|
|
814
842
|
});
|
|
815
843
|
} finally {
|
|
816
844
|
this.endWorkerActivity(workerName);
|
|
@@ -1093,16 +1121,19 @@ class WorkerServer extends WorkerServerBase {
|
|
|
1093
1121
|
globalServiceRegistry.register(WORKER_SERVER, () => new WorkerServer, true);
|
|
1094
1122
|
export {
|
|
1095
1123
|
setLogger,
|
|
1124
|
+
registerPortCodec,
|
|
1096
1125
|
registerInputResolver,
|
|
1097
1126
|
registerInputCompactor,
|
|
1098
1127
|
parsePartialJson,
|
|
1099
1128
|
parentPort,
|
|
1100
1129
|
globalServiceRegistry,
|
|
1101
1130
|
globalContainer,
|
|
1131
|
+
getPortCodec,
|
|
1102
1132
|
getLogger,
|
|
1103
1133
|
getInputResolvers,
|
|
1104
1134
|
getInputCompactors,
|
|
1105
1135
|
createServiceToken,
|
|
1136
|
+
_resetPortCodecsForTests,
|
|
1106
1137
|
WorkerServerBase,
|
|
1107
1138
|
WorkerServer,
|
|
1108
1139
|
WorkerManager,
|
|
@@ -1118,4 +1149,4 @@ export {
|
|
|
1118
1149
|
ConsoleLogger
|
|
1119
1150
|
};
|
|
1120
1151
|
|
|
1121
|
-
//# debugId=
|
|
1152
|
+
//# debugId=351DE461359AE77964756E2164756E21
|