@loaders.gl/core 5.0.0-alpha.13 → 5.0.0-alpha.14
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/dist.dev.js +190 -63
- package/dist/dist.min.js +3 -3
- package/dist/index.cjs +205 -72
- package/dist/index.cjs.map +2 -2
- package/dist/lib/api/parse-file.js +2 -0
- package/dist/lib/api/parse-file.js.map +1 -1
- package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
- package/dist/lib/api/parse-in-batches.js +5 -4
- package/dist/lib/api/parse-in-batches.js.map +1 -1
- package/dist/lib/api/parse.js +4 -2
- package/dist/lib/api/parse.js.map +1 -1
- package/dist/lib/init.js +1 -1
- package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -1
- package/dist/lib/loader-utils/get-fetch-function.js +3 -1
- package/dist/lib/loader-utils/get-fetch-function.js.map +1 -1
- package/dist/lib/loader-utils/loader-context.d.ts.map +1 -1
- package/dist/lib/loader-utils/loader-context.js +4 -0
- package/dist/lib/loader-utils/loader-context.js.map +1 -1
- package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
- package/dist/lib/loader-utils/option-defaults.js +1 -0
- package/dist/lib/loader-utils/option-defaults.js.map +1 -1
- package/dist/lib/loader-utils/option-utils.js +1 -1
- package/dist/lib/loader-utils/option-utils.js.map +1 -1
- package/dist/loader-utils/index.cjs +231 -92
- package/dist/loader-utils/index.cjs.map +2 -2
- package/dist/loader-utils/index.d.ts +1 -1
- package/dist/loader-utils/index.d.ts.map +1 -1
- package/dist/loader-utils/index.js +1 -1
- package/dist/loader-utils/index.js.map +1 -1
- package/dist/loader-utils/json-loader.d.ts +1 -1
- package/dist/loader-utils/json-loader.js +2 -2
- package/dist/loader-utils/lib/log-utils/log.js +1 -1
- package/dist/loader-utils/lib/request-utils/request-credentials.d.ts +3 -1
- package/dist/loader-utils/lib/request-utils/request-credentials.d.ts.map +1 -1
- package/dist/loader-utils/lib/request-utils/request-credentials.js +10 -16
- package/dist/loader-utils/lib/request-utils/request-credentials.js.map +1 -1
- package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.d.ts +3 -0
- package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.d.ts.map +1 -1
- package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.js +13 -12
- package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.js.map +1 -1
- package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.d.ts +6 -0
- package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.d.ts.map +1 -1
- package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.js +38 -7
- package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.js.map +1 -1
- package/dist/loader-utils/loader-types.d.ts +12 -4
- package/dist/loader-utils/loader-types.d.ts.map +1 -1
- package/dist/loader-utils/loader-types.js.map +1 -1
- package/dist/null-loader.js +1 -1
- package/dist/null-worker-node.js +60 -15
- package/dist/null-worker.js +59 -15
- package/dist/schema-utils/lib/table/tables/convert-table.d.ts +1 -1
- package/dist/schema-utils/lib/table/tables/convert-table.js +1 -1
- package/dist/worker-utils/index.cjs +170 -49
- package/dist/worker-utils/index.cjs.map +2 -2
- package/dist/worker-utils/index.d.ts +2 -2
- package/dist/worker-utils/index.d.ts.map +1 -1
- package/dist/worker-utils/index.js +1 -1
- package/dist/worker-utils/index.js.map +1 -1
- package/dist/worker-utils/lib/env-utils/version.js +2 -2
- package/dist/worker-utils/lib/worker-api/create-worker.d.ts.map +1 -1
- package/dist/worker-utils/lib/worker-api/create-worker.js +40 -2
- package/dist/worker-utils/lib/worker-api/create-worker.js.map +1 -1
- package/dist/worker-utils/lib/worker-api/get-worker-url.d.ts +2 -0
- package/dist/worker-utils/lib/worker-api/get-worker-url.d.ts.map +1 -1
- package/dist/worker-utils/lib/worker-api/get-worker-url.js +7 -11
- package/dist/worker-utils/lib/worker-api/get-worker-url.js.map +1 -1
- package/dist/worker-utils/lib/worker-api/process-on-worker.d.ts +6 -0
- package/dist/worker-utils/lib/worker-api/process-on-worker.d.ts.map +1 -1
- package/dist/worker-utils/lib/worker-api/process-on-worker.js +64 -27
- package/dist/worker-utils/lib/worker-api/process-on-worker.js.map +1 -1
- package/dist/worker-utils/lib/worker-farm/worker-job.d.ts.map +1 -1
- package/dist/worker-utils/lib/worker-farm/worker-job.js +3 -2
- package/dist/worker-utils/lib/worker-farm/worker-job.js.map +1 -1
- package/dist/worker-utils/lib/worker-farm/worker-pool.d.ts +1 -1
- package/dist/worker-utils/lib/worker-farm/worker-pool.d.ts.map +1 -1
- package/dist/worker-utils/lib/worker-farm/worker-pool.js +65 -12
- package/dist/worker-utils/lib/worker-farm/worker-pool.js.map +1 -1
- package/dist/worker-utils/null-worker-node.js +36 -2
- package/dist/worker-utils/null-worker-node.js.map +2 -2
- package/dist/worker-utils/null-worker.js +36 -2
- package/dist/worker-utils/null-worker.js.map +2 -2
- package/dist/worker-utils/types.d.ts +25 -4
- package/dist/worker-utils/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/lib/api/parse-file.ts +2 -0
- package/src/lib/api/parse-in-batches.ts +5 -5
- package/src/lib/api/parse.ts +4 -2
- package/src/lib/loader-utils/get-fetch-function.ts +4 -2
- package/src/lib/loader-utils/loader-context.ts +4 -0
- package/src/lib/loader-utils/option-defaults.ts +1 -0
- package/src/lib/loader-utils/option-utils.ts +1 -1
- package/src/loader-utils/index.ts +1 -0
- package/src/loader-utils/json-loader.ts +1 -1
- package/src/loader-utils/lib/request-utils/request-credentials.ts +10 -12
- package/src/loader-utils/lib/worker-loader-utils/create-loader-worker.ts +38 -15
- package/src/loader-utils/lib/worker-loader-utils/parse-with-worker.ts +52 -7
- package/src/loader-utils/loader-types.ts +16 -4
- package/src/schema-utils/lib/table/tables/convert-table.ts +1 -1
- package/src/worker-utils/index.ts +3 -1
- package/src/worker-utils/lib/worker-api/create-worker.ts +41 -2
- package/src/worker-utils/lib/worker-api/get-worker-url.ts +13 -14
- package/src/worker-utils/lib/worker-api/process-on-worker.ts +128 -73
- package/src/worker-utils/lib/worker-farm/worker-job.ts +4 -2
- package/src/worker-utils/lib/worker-farm/worker-pool.ts +65 -12
- package/src/worker-utils/types.ts +26 -3
|
@@ -20,6 +20,8 @@ export async function createWorker(process, processInBatches) {
|
|
|
20
20
|
};
|
|
21
21
|
// eslint-disable-next-line complexity
|
|
22
22
|
WorkerBody.onmessage = async (type, payload) => {
|
|
23
|
+
const reporter = type === 'process' || type === 'process-in-batches' ? createProgressReporter() : undefined;
|
|
24
|
+
const jobContext = { ...context, reportProgress: reporter?.report };
|
|
23
25
|
try {
|
|
24
26
|
switch (type) {
|
|
25
27
|
case 'preload':
|
|
@@ -29,7 +31,8 @@ export async function createWorker(process, processInBatches) {
|
|
|
29
31
|
if (!process) {
|
|
30
32
|
throw new Error('Worker does not support atomic processing');
|
|
31
33
|
}
|
|
32
|
-
const result = await process(payload.input, payload.options || {},
|
|
34
|
+
const result = await process(payload.input, payload.options || {}, jobContext, payload.context || {});
|
|
35
|
+
reporter?.finish();
|
|
33
36
|
WorkerBody.postMessage('done', { result });
|
|
34
37
|
break;
|
|
35
38
|
case 'process-in-batches':
|
|
@@ -41,11 +44,12 @@ export async function createWorker(process, processInBatches) {
|
|
|
41
44
|
activeInputBatches = inputBatches;
|
|
42
45
|
activeOutputAcknowledgements = outputAcknowledgements;
|
|
43
46
|
try {
|
|
44
|
-
const resultIterator = processInBatches(createDemandDrivenIterator(inputBatches), payload.options || {},
|
|
47
|
+
const resultIterator = processInBatches(createDemandDrivenIterator(inputBatches), payload.options || {}, jobContext, payload.context || {});
|
|
45
48
|
for await (const batch of resultIterator) {
|
|
46
49
|
await WorkerBody.postMessage('output-batch', { result: batch });
|
|
47
50
|
await outputAcknowledgements.next();
|
|
48
51
|
}
|
|
52
|
+
reporter?.finish();
|
|
49
53
|
await WorkerBody.postMessage('done', {});
|
|
50
54
|
}
|
|
51
55
|
finally {
|
|
@@ -75,6 +79,7 @@ export async function createWorker(process, processInBatches) {
|
|
|
75
79
|
}
|
|
76
80
|
}
|
|
77
81
|
catch (error) {
|
|
82
|
+
reporter?.finish();
|
|
78
83
|
const message = error instanceof Error ? error.message : '';
|
|
79
84
|
WorkerBody.postMessage('error', { error: message });
|
|
80
85
|
}
|
|
@@ -120,4 +125,37 @@ function processOnMainThread(arrayBuffer, options = {}, jobContext = {}) {
|
|
|
120
125
|
WorkerBody.postMessage('process', payload);
|
|
121
126
|
});
|
|
122
127
|
}
|
|
128
|
+
/** Coalesces same-phase reports per event-loop turn and flushes before settlement. */
|
|
129
|
+
function createProgressReporter() {
|
|
130
|
+
let pending;
|
|
131
|
+
let finished = false;
|
|
132
|
+
let scheduled = false;
|
|
133
|
+
/** Posts the latest pending measurement. */
|
|
134
|
+
const flush = () => {
|
|
135
|
+
scheduled = false;
|
|
136
|
+
if (pending) {
|
|
137
|
+
WorkerBody.postMessage('progress', { progress: pending });
|
|
138
|
+
pending = undefined;
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
return {
|
|
142
|
+
/** Records progress while retaining phase transitions. */
|
|
143
|
+
report(progress) {
|
|
144
|
+
if (finished)
|
|
145
|
+
return;
|
|
146
|
+
if (pending && pending.phase !== progress.phase)
|
|
147
|
+
flush();
|
|
148
|
+
pending = { ...progress };
|
|
149
|
+
if (!scheduled) {
|
|
150
|
+
scheduled = true;
|
|
151
|
+
setTimeout(flush, 0);
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
/** Flushes final progress and suppresses reports from stale callbacks. */
|
|
155
|
+
finish() {
|
|
156
|
+
flush();
|
|
157
|
+
finished = true;
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
}
|
|
123
161
|
//# sourceMappingURL=create-worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-worker.js","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-api/create-worker.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"create-worker.js","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-api/create-worker.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAWpC,OAAO,UAAU,sCAAmC;AACpD,OAAO,UAAU,sCAAmC;AACpD,mEAAmE;AAEnE,uBAAuB;AACvB,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,IAAI,kBAAkB,GAA2B,IAAI,CAAC;AACtD,IAAI,4BAA4B,GAA4B,IAAI,CAAC;AAQjE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAgB,EAChB,gBAAmC;IAEnC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAkB;QAC7B,OAAO,EAAE,mBAAmB;KAC7B,CAAC;IAEF,sCAAsC;IACtC,UAAU,CAAC,SAAS,GAAG,KAAK,EAAE,IAAuB,EAAE,OAA6B,EAAE,EAAE;QACtF,MAAM,QAAQ,GACZ,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7F,MAAM,UAAU,GAAG,EAAC,GAAG,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC;QAClE,IAAI,CAAC;YACH,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,SAAS;oBACZ,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACnC,MAAM;gBAER,KAAK,SAAS;oBACZ,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;oBAC/D,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,OAAO,IAAI,EAAE,EACrB,UAAU,EACV,OAAO,CAAC,OAAO,IAAI,EAAE,CACtB,CAAC;oBACF,QAAQ,EAAE,MAAM,EAAE,CAAC;oBACnB,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;oBACzC,MAAM;gBAER,KAAK,oBAAoB;oBACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACtB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;oBAChE,CAAC;oBACD,MAAM,YAAY,GAAG,IAAI,UAAU,EAAO,CAAC;oBAC3C,MAAM,sBAAsB,GAAG,IAAI,UAAU,EAAQ,CAAC;oBACtD,kBAAkB,GAAG,YAAY,CAAC;oBAClC,4BAA4B,GAAG,sBAAsB,CAAC;oBACtD,IAAI,CAAC;wBACH,MAAM,cAAc,GAAG,gBAAgB,CACrC,0BAA0B,CAAC,YAAY,CAAC,EACxC,OAAO,CAAC,OAAO,IAAI,EAAE,EACrB,UAAU,EACV,OAAO,CAAC,OAAO,IAAI,EAAE,CACtB,CAAC;wBACF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;4BACzC,MAAM,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC;4BAC9D,MAAM,sBAAsB,CAAC,IAAI,EAAE,CAAC;wBACtC,CAAC;wBACD,QAAQ,EAAE,MAAM,EAAE,CAAC;wBACnB,MAAM,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC3C,CAAC;4BAAS,CAAC;wBACT,kBAAkB,GAAG,IAAI,CAAC;wBAC1B,4BAA4B,GAAG,IAAI,CAAC;oBACtC,CAAC;oBACD,MAAM;gBAER,KAAK,aAAa;oBAChB,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACxB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;oBACrE,CAAC;oBACD,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACvC,MAAM;gBAER,KAAK,YAAY;oBACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACxB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;oBACrE,CAAC;oBACD,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBAC3B,MAAM;gBAER,KAAK,YAAY;oBACf,IAAI,CAAC,4BAA4B,EAAE,CAAC;wBAClC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;oBACrE,CAAC;oBACD,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM;gBAER,QAAQ;YACV,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,KAAK,SAAS,CAAC,CAAC,0BAA0B,CAAC,YAA6B;IACtE,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,UAAU,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,MAAM,SAAS,CAAC,KAAK,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAwB,EAAE,OAAO,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE;IAClF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;QAEvB;WACG;QACH,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,OAA6B,EAAE,EAAE;YAChE,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBACtB,WAAW;gBACX,OAAO;YACT,CAAC;YAED,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,MAAM;oBACT,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;oBAC1C,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACxB,MAAM;gBAER,KAAK,OAAO;oBACV,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;oBAC1C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACtB,MAAM;gBAER,QAAQ;gBACR,SAAS;YACX,CAAC;QACH,CAAC,CAAC;QAEF,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEvC,qCAAqC;QACrC,MAAM,OAAO,GAAG,EAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC;QACvE,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sFAAsF;AACtF,SAAS,sBAAsB;IAC7B,IAAI,OAAmC,CAAC;IACxC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,4CAA4C;IAC5C,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,SAAS,GAAG,KAAK,CAAC;QAClB,IAAI,OAAO,EAAE,CAAC;YACZ,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC;YACxD,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IACF,OAAO;QACL,0DAA0D;QAC1D,MAAM,CAAC,QAAwB;YAC7B,IAAI,QAAQ;gBAAE,OAAO;YACrB,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;gBAAE,KAAK,EAAE,CAAC;YACzD,OAAO,GAAG,EAAC,GAAG,QAAQ,EAAC,CAAC;YACxB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;gBACjB,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,0EAA0E;QAC1E,MAAM;YACJ,KAAK,EAAE,CAAC;YACR,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -10,6 +10,8 @@ export declare function getWorkerName(worker: WorkerObject): string;
|
|
|
10
10
|
* @returns A worker URL, or `null` when URL-based fallback resolution is still required.
|
|
11
11
|
*/
|
|
12
12
|
export declare function getCustomWorkerURL(worker: WorkerObject, options?: WorkerOptions): string | null;
|
|
13
|
+
/** Returns an explicit worker URL override, excluding generated local test URLs. */
|
|
14
|
+
export declare function getConfiguredWorkerURL(worker: WorkerObject, options?: WorkerOptions): string | null;
|
|
13
15
|
/**
|
|
14
16
|
* Generates a worker URL using overrides first and the published CDN artifact as a fallback.
|
|
15
17
|
* @param worker Worker descriptor to resolve.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-worker-url.d.ts","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-api/get-worker-url.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,YAAY,EAAE,aAAa,EAAC,uBAAoB;AAQ7D;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAG1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,aAAkB,GAC1B,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"get-worker-url.d.ts","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-api/get-worker-url.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,YAAY,EAAE,aAAa,EAAC,uBAAoB;AAQ7D;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAG1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,aAAkB,GAC1B,MAAM,GAAG,IAAI,CAyBf;AAED,oFAAoF;AACpF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,aAAkB,GAC1B,MAAM,GAAG,IAAI,CAMf;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAStF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,OAAe,GAAG,MAAM,CAcvF"}
|
|
@@ -20,20 +20,10 @@ export function getWorkerName(worker) {
|
|
|
20
20
|
* @returns A worker URL, or `null` when URL-based fallback resolution is still required.
|
|
21
21
|
*/
|
|
22
22
|
export function getCustomWorkerURL(worker, options = {}) {
|
|
23
|
-
const workerOptions = options[worker.id] || {};
|
|
24
23
|
const workerFile = isBrowser
|
|
25
24
|
? worker.workerFile || `${worker.id}-worker.js`
|
|
26
25
|
: worker.workerNode || `${worker.id}-worker-node.js`;
|
|
27
|
-
let url =
|
|
28
|
-
// HACK: Allow for non-nested workerUrl for the CompressionWorker.
|
|
29
|
-
// For the compression worker, workerOptions is currently not nested correctly. For most loaders,
|
|
30
|
-
// you'd have options within an object, i.e. `{mvt: {coordinates: ...}}` but the CompressionWorker
|
|
31
|
-
// puts options at the top level, not within a `compression` key (its `id`). For this reason, the
|
|
32
|
-
// above `workerOptions` will always be a string (i.e. `'gzip'`) for the CompressionWorker. To not
|
|
33
|
-
// break backwards compatibility, we allow the CompressionWorker to have options at the top level.
|
|
34
|
-
if (!url && worker.id === 'compression') {
|
|
35
|
-
url = options.workerUrl;
|
|
36
|
-
}
|
|
26
|
+
let url = getConfiguredWorkerURL(worker, options);
|
|
37
27
|
// If URL is test, generate local loaders.gl url
|
|
38
28
|
// @ts-ignore _workerType
|
|
39
29
|
const workerType = options._workerType || options?.core?._workerType;
|
|
@@ -52,6 +42,12 @@ export function getCustomWorkerURL(worker, options = {}) {
|
|
|
52
42
|
}
|
|
53
43
|
return url || null;
|
|
54
44
|
}
|
|
45
|
+
/** Returns an explicit worker URL override, excluding generated local test URLs. */
|
|
46
|
+
export function getConfiguredWorkerURL(worker, options = {}) {
|
|
47
|
+
const workerOptions = options[worker.id] || {};
|
|
48
|
+
// Compression also supports the historical non-nested URL override.
|
|
49
|
+
return (workerOptions.workerUrl || (worker.id === 'compression' ? options.workerUrl : null) || null);
|
|
50
|
+
}
|
|
55
51
|
/**
|
|
56
52
|
* Generates a worker URL using overrides first and the published CDN artifact as a fallback.
|
|
57
53
|
* @param worker Worker descriptor to resolve.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-worker-url.js","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-api/get-worker-url.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAOpC,OAAO,EAAC,MAAM,EAAC,+BAA4B;AAC3C,OAAO,EAAC,SAAS,EAAC,gCAA6B;AAC/C,OAAO,EAAC,OAAO,EAAC,gCAA6B;AAC7C,OAAO,EAAC,OAAO,EAAC,sBAAmB;AAEnC,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAAU,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAkB,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAoB,EACpB,UAAyB,EAAE;IAE3B,MAAM,
|
|
1
|
+
{"version":3,"file":"get-worker-url.js","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-api/get-worker-url.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,12 @@ export type PreloadWorkerOptions = {
|
|
|
19
19
|
* @param options
|
|
20
20
|
*/
|
|
21
21
|
export declare function canProcessOnWorker(worker: WorkerObject, options?: WorkerOptions): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Checks whether a worker supports stateful batch processing.
|
|
24
|
+
* @param worker Worker descriptor declaring built-in batch support.
|
|
25
|
+
* @param options Worker options, including an explicit capability for custom URLs or source.
|
|
26
|
+
*/
|
|
27
|
+
export declare function canProcessOnWorkerInBatches(worker: WorkerObject, options?: WorkerOptions): boolean;
|
|
22
28
|
/**
|
|
23
29
|
* This function expects that the worker thread sends certain messages,
|
|
24
30
|
* Creating such a worker can be automated if the worker is wrapper by a call to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-on-worker.d.ts","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-api/process-on-worker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAGjB,uBAAoB;
|
|
1
|
+
{"version":3,"file":"process-on-worker.d.ts","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-api/process-on-worker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAGjB,uBAAoB;AAerB,oCAAoC;AACpC,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG;IACnD,iDAAiD;IACjD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,sCAAsC;AACtC,MAAM,MAAM,oBAAoB,GAAG;IACjC,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,aAAa,WAS/E;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAMT;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,GAAG,EACT,OAAO,GAAE,sBAA2B,EACpC,OAAO,GAAE,aAAkB,EAC3B,UAAU,GAAE,gBAAqB,GAChC,OAAO,CAAC,GAAG,CAAC,CAoCd;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,GAAG,GAAG,EAAE,WAAW,GAAG,GAAG,EAC1E,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,EACvD,OAAO,GAAE,sBAA2B,EACpC,OAAO,GAAE,aAAkB,EAC3B,UAAU,GAAE,gBAAqB,GAChC,aAAa,CAAC,WAAW,CAAC,CAE5B;AAsLD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,sBAA2B,EACpC,cAAc,GAAE,oBAAyB,GACxC,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import AsyncQueue from "../async-queue/async-queue.js";
|
|
5
5
|
import WorkerFarm from "../worker-farm/worker-farm.js";
|
|
6
|
-
import { getCustomWorkerURL, getDefaultWorkerURL, getWorkerURL, getWorkerName } from "./get-worker-url.js";
|
|
6
|
+
import { getCustomWorkerURL, getConfiguredWorkerURL, getDefaultWorkerURL, getWorkerURL, getWorkerName } from "./get-worker-url.js";
|
|
7
7
|
import { getTransferListForWriter } from "../worker-utils/get-transfer-list.js";
|
|
8
8
|
import { isBrowser } from "../env-utils/globals.js";
|
|
9
9
|
/**
|
|
@@ -19,6 +19,18 @@ export function canProcessOnWorker(worker, options) {
|
|
|
19
19
|
const workerOptions = options?.[worker.id];
|
|
20
20
|
return Boolean((worker.worker || worker.loadWorker || workerOptions?.workerUrl) && options?.worker);
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Checks whether a worker supports stateful batch processing.
|
|
24
|
+
* @param worker Worker descriptor declaring built-in batch support.
|
|
25
|
+
* @param options Worker options, including an explicit capability for custom URLs or source.
|
|
26
|
+
*/
|
|
27
|
+
export function canProcessOnWorkerInBatches(worker, options = {}) {
|
|
28
|
+
if (!canProcessOnWorker(worker, options))
|
|
29
|
+
return false;
|
|
30
|
+
if (options.workerInBatches !== undefined)
|
|
31
|
+
return options.workerInBatches;
|
|
32
|
+
return Boolean(worker.workerInBatches && !options.source && !getConfiguredWorkerURL(worker, options));
|
|
33
|
+
}
|
|
22
34
|
/**
|
|
23
35
|
* This function expects that the worker thread sends certain messages,
|
|
24
36
|
* Creating such a worker can be automated if the worker is wrapper by a call to
|
|
@@ -32,15 +44,12 @@ export async function processOnWorker(worker, data, options = {}, context = {},
|
|
|
32
44
|
const jobName = options.jobName || worker.name;
|
|
33
45
|
const job = await workerPool.startJob(jobName,
|
|
34
46
|
// eslint-disable-next-line
|
|
35
|
-
onMessage.bind(null, context));
|
|
36
|
-
const abortJob = () => job.abort(getAbortReason(options.signal));
|
|
37
|
-
options.signal?.addEventListener('abort', abortJob, { once: true });
|
|
38
|
-
if (options.signal?.aborted) {
|
|
39
|
-
abortJob();
|
|
40
|
-
}
|
|
47
|
+
onMessage.bind(null, context, options), undefined, options.signal);
|
|
41
48
|
try {
|
|
49
|
+
if (options.signal?.aborted)
|
|
50
|
+
job.abort(getAbortReason(options.signal));
|
|
42
51
|
// AbortSignal cannot be structured-cloned. It controls the job on this thread only.
|
|
43
|
-
const { signal: _signal, ...workerOptions } = options;
|
|
52
|
+
const { signal: _signal, onProgress: _onProgress, ...workerOptions } = options;
|
|
44
53
|
const transferableOptions = getTransferListForWriter(workerOptions);
|
|
45
54
|
const transferableContext = getTransferListForWriter(jobContext);
|
|
46
55
|
if (job.isRunning) {
|
|
@@ -53,8 +62,9 @@ export async function processOnWorker(worker, data, options = {}, context = {},
|
|
|
53
62
|
const result = await job.result;
|
|
54
63
|
return result.result;
|
|
55
64
|
}
|
|
56
|
-
|
|
57
|
-
|
|
65
|
+
catch (error) {
|
|
66
|
+
job.abort(error);
|
|
67
|
+
throw error;
|
|
58
68
|
}
|
|
59
69
|
}
|
|
60
70
|
/**
|
|
@@ -78,8 +88,16 @@ async function* processOnWorkerInBatchesIterator(worker, input, options, context
|
|
|
78
88
|
const inputIterator = getAsyncIterator(input);
|
|
79
89
|
let outputFinished = false;
|
|
80
90
|
let inputFinished = false;
|
|
91
|
+
let inputCleanupRequested = false;
|
|
81
92
|
let inputRequest = Promise.resolve();
|
|
82
93
|
const batchJobFailed = new Error('Worker batch job failed');
|
|
94
|
+
/** Requests cleanup even when the output consumer is paused after yielding a batch. */
|
|
95
|
+
const closeJobInput = () => {
|
|
96
|
+
if (!inputFinished && !inputCleanupRequested) {
|
|
97
|
+
inputCleanupRequested = true;
|
|
98
|
+
closeInputIterator(inputIterator);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
83
101
|
const finishOutput = () => {
|
|
84
102
|
if (!outputFinished) {
|
|
85
103
|
outputFinished = true;
|
|
@@ -93,11 +111,17 @@ async function* processOnWorkerInBatchesIterator(worker, input, options, context
|
|
|
93
111
|
outputBatches.close();
|
|
94
112
|
}
|
|
95
113
|
};
|
|
96
|
-
const job = await workerPool
|
|
114
|
+
const job = await workerPool
|
|
115
|
+
.startJob(options.jobName || worker.name, (activeJob, type, payload) => {
|
|
97
116
|
switch (type) {
|
|
117
|
+
case 'progress':
|
|
118
|
+
reportProgress(activeJob, options, payload);
|
|
119
|
+
break;
|
|
98
120
|
case 'input-request':
|
|
99
121
|
inputRequest = inputRequest
|
|
100
122
|
.then(async () => {
|
|
123
|
+
if (!activeJob.isRunning)
|
|
124
|
+
return;
|
|
101
125
|
const nextBatch = await inputIterator.next();
|
|
102
126
|
if (!activeJob.isRunning) {
|
|
103
127
|
return;
|
|
@@ -126,7 +150,7 @@ async function* processOnWorkerInBatchesIterator(worker, input, options, context
|
|
|
126
150
|
break;
|
|
127
151
|
}
|
|
128
152
|
case 'process':
|
|
129
|
-
void onMessage(context, activeJob, type, payload);
|
|
153
|
+
void onMessage(context, options, activeJob, type, payload);
|
|
130
154
|
break;
|
|
131
155
|
default: {
|
|
132
156
|
const error = new Error(`Unexpected worker batch message: ${type}`);
|
|
@@ -135,15 +159,17 @@ async function* processOnWorkerInBatchesIterator(worker, input, options, context
|
|
|
135
159
|
break;
|
|
136
160
|
}
|
|
137
161
|
}
|
|
162
|
+
}, undefined, options.signal)
|
|
163
|
+
.catch(error => {
|
|
164
|
+
closeJobInput();
|
|
165
|
+
throw error;
|
|
166
|
+
});
|
|
167
|
+
void job.result.catch(error => {
|
|
168
|
+
failOutput(error);
|
|
169
|
+
closeJobInput();
|
|
138
170
|
});
|
|
139
|
-
const abortJob = () => job.abort(getAbortReason(options.signal));
|
|
140
|
-
options.signal?.addEventListener('abort', abortJob, { once: true });
|
|
141
|
-
if (options.signal?.aborted) {
|
|
142
|
-
abortJob();
|
|
143
|
-
}
|
|
144
|
-
void job.result.catch(failOutput);
|
|
145
171
|
try {
|
|
146
|
-
const { signal: _signal, ...workerOptions } = options;
|
|
172
|
+
const { signal: _signal, onProgress: _onProgress, ...workerOptions } = options;
|
|
147
173
|
if (job.isRunning) {
|
|
148
174
|
job.postMessage('process-in-batches', {
|
|
149
175
|
options: getTransferListForWriter(workerOptions),
|
|
@@ -167,13 +193,10 @@ async function* processOnWorkerInBatchesIterator(worker, input, options, context
|
|
|
167
193
|
await job.result;
|
|
168
194
|
}
|
|
169
195
|
finally {
|
|
170
|
-
options.signal?.removeEventListener('abort', abortJob);
|
|
171
196
|
if (job.isRunning) {
|
|
172
197
|
job.abort(createAbortError('Worker batch iterator was closed'));
|
|
173
198
|
}
|
|
174
|
-
|
|
175
|
-
closeInputIterator(inputIterator);
|
|
176
|
-
}
|
|
199
|
+
closeJobInput();
|
|
177
200
|
}
|
|
178
201
|
}
|
|
179
202
|
/** Throws a cross-runtime abort error when a signal is already aborted. */
|
|
@@ -185,7 +208,7 @@ function throwIfAborted(signal) {
|
|
|
185
208
|
}
|
|
186
209
|
/** Returns a caller-provided abort reason or a cross-runtime `AbortError`. */
|
|
187
210
|
function getAbortReason(signal) {
|
|
188
|
-
return signal
|
|
211
|
+
return signal ? signal.reason : createAbortError('Worker job was aborted');
|
|
189
212
|
}
|
|
190
213
|
/** Creates an abort error without requiring the DOMException global. */
|
|
191
214
|
function createAbortError(message) {
|
|
@@ -259,8 +282,11 @@ function getWorkerPoolTarget(worker, options, name) {
|
|
|
259
282
|
* @param job
|
|
260
283
|
* @param message
|
|
261
284
|
*/
|
|
262
|
-
async function onMessage(context, job, type, payload) {
|
|
285
|
+
async function onMessage(context, options, job, type, payload) {
|
|
263
286
|
switch (type) {
|
|
287
|
+
case 'progress':
|
|
288
|
+
reportProgress(job, options, payload);
|
|
289
|
+
break;
|
|
264
290
|
case 'done':
|
|
265
291
|
// Worker is done
|
|
266
292
|
job.done(payload);
|
|
@@ -271,13 +297,13 @@ async function onMessage(context, job, type, payload) {
|
|
|
271
297
|
break;
|
|
272
298
|
case 'process':
|
|
273
299
|
// Worker is asking for us (main thread) to process something
|
|
274
|
-
const { id, input, options } = payload;
|
|
300
|
+
const { id, input, options: processOptions } = payload;
|
|
275
301
|
try {
|
|
276
302
|
if (!context.process) {
|
|
277
303
|
job.postMessage('error', { id, error: 'Worker not set up to process on main thread' });
|
|
278
304
|
return;
|
|
279
305
|
}
|
|
280
|
-
const result = await context.process(input, options, undefined, payload.context || {});
|
|
306
|
+
const result = await context.process(input, { ...processOptions, signal: options.signal, onProgress: options.onProgress }, undefined, payload.context || {});
|
|
281
307
|
job.postMessage('done', { id, result });
|
|
282
308
|
}
|
|
283
309
|
catch (error) {
|
|
@@ -309,4 +335,15 @@ function onPreloadMessage(job, type, payload) {
|
|
|
309
335
|
console.warn(`process-on-worker: unknown preload message ${type}`);
|
|
310
336
|
}
|
|
311
337
|
}
|
|
338
|
+
/** Delivers progress; callback failures terminate the job and settle its caller. */
|
|
339
|
+
function reportProgress(job, options, payload) {
|
|
340
|
+
if (!job.isRunning || !payload.progress)
|
|
341
|
+
return;
|
|
342
|
+
try {
|
|
343
|
+
options.onProgress?.(payload.progress);
|
|
344
|
+
}
|
|
345
|
+
catch (error) {
|
|
346
|
+
job.abort(error);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
312
349
|
//# sourceMappingURL=process-on-worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-on-worker.js","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-api/process-on-worker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"process-on-worker.js","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-api/process-on-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-job.d.ts","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-farm/worker-job.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,uBAAoB;AACzE,OAAO,YAAY,2BAAwB;AAE3C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,SAAS,EAAE,OAAO,CAAQ;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,OAAO,CAAoC;gBAEvC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;IASvD;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"worker-job.d.ts","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-farm/worker-job.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,uBAAoB;AACzE,OAAO,YAAY,2BAAwB;AAE3C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,SAAS,EAAE,OAAO,CAAQ;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,OAAO,CAAoC;gBAEvC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;IASvD;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI;IASzE;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAQtB;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAQ3B;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;CAS9B"}
|
|
@@ -25,6 +25,8 @@ export default class WorkerJob {
|
|
|
25
25
|
* @param data any data structure, ideally consisting mostly of transferrable objects
|
|
26
26
|
*/
|
|
27
27
|
postMessage(type, payload) {
|
|
28
|
+
if (!this.isRunning)
|
|
29
|
+
return;
|
|
28
30
|
this.workerThread.postMessage({
|
|
29
31
|
source: 'loaders.gl', // Lets worker ignore unrelated messages
|
|
30
32
|
type,
|
|
@@ -59,9 +61,8 @@ export default class WorkerJob {
|
|
|
59
61
|
if (!this.isRunning) {
|
|
60
62
|
return;
|
|
61
63
|
}
|
|
62
|
-
const error = reason ?? createAbortError(`Worker job "${this.name}" was aborted`);
|
|
63
64
|
this.workerThread.destroy();
|
|
64
|
-
this.error(
|
|
65
|
+
this.error(arguments.length ? reason : createAbortError(`Worker job "${this.name}" was aborted`));
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
/** Creates an abort error without requiring the DOMException global. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-job.js","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-farm/worker-job.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IACnB,IAAI,CAAS;IACb,YAAY,CAAe;IACpC,SAAS,GAAY,IAAI,CAAC;IAC1B,6CAA6C;IACpC,MAAM,CAAe;IAEtB,QAAQ,GAAyB,GAAG,EAAE,GAAE,CAAC,CAAC;IAC1C,OAAO,GAA2B,GAAG,EAAE,GAAE,CAAC,CAAC;IAEnD,YAAY,OAAe,EAAE,YAA0B;QACrD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,IAAuB,EAAE,OAA6B;QAChE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;YAC5B,MAAM,EAAE,YAAY,EAAE,wCAAwC;YAC9D,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,KAAU;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAc;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,
|
|
1
|
+
{"version":3,"file":"worker-job.js","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-farm/worker-job.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IACnB,IAAI,CAAS;IACb,YAAY,CAAe;IACpC,SAAS,GAAY,IAAI,CAAC;IAC1B,6CAA6C;IACpC,MAAM,CAAe;IAEtB,QAAQ,GAAyB,GAAG,EAAE,GAAE,CAAC,CAAC;IAC1C,OAAO,GAA2B,GAAG,EAAE,GAAE,CAAC,CAAC;IAEnD,YAAY,OAAe,EAAE,YAA0B;QACrD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,IAAuB,EAAE,OAA6B;QAChE,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;YAC5B,MAAM,EAAE,YAAY,EAAE,wCAAwC;YAC9D,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,KAAU;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAc;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CACR,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,eAAe,IAAI,CAAC,IAAI,eAAe,CAAC,CACtF,CAAC;IACJ,CAAC;CACF;AAED,wEAAwE;AACxE,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;IAC1B,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -69,7 +69,7 @@ export default class WorkerPool {
|
|
|
69
69
|
*/
|
|
70
70
|
destroy(reason?: unknown): void;
|
|
71
71
|
setProps(props: WorkerPoolProps): void;
|
|
72
|
-
startJob(name: string, onMessage?: OnMessage, onError?: OnError): Promise<WorkerJob>;
|
|
72
|
+
startJob(name: string, onMessage?: OnMessage, onError?: OnError, signal?: AbortSignal): Promise<WorkerJob>;
|
|
73
73
|
/**
|
|
74
74
|
* Starts first queued job if worker is available or can be created
|
|
75
75
|
* Called when job is started and whenever a worker returns to the idleQueue
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pool.d.ts","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-farm/worker-pool.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAC,uBAAoB;AAErF,OAAO,YAAY,2BAAwB;AAC3C,OAAO,SAAS,wBAAqB;AAErC,6CAA6C;AAC7C,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,4BAA4B;AAC5B,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB,yCAAyC;IACzC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,GAAG,CAAC;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,2BAA2B;AAC3B,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAClG,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-pool.d.ts","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-farm/worker-pool.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAC,uBAAoB;AAErF,OAAO,YAAY,2BAAwB;AAC3C,OAAO,SAAS,wBAAqB;AAErC,6CAA6C;AAC7C,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,4BAA4B;AAC5B,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB,yCAAyC;IACzC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,GAAG,CAAC;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,2BAA2B;AAC3B,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAClG,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AActD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,IAAI,EAAE,MAAM,CAAa;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB,yCAAyC;IACzC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,EAAE,MAAM,CAAK;IAC3B,oBAAoB,EAAE,MAAM,CAAK;IACjC,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,GAAG,CAAY;IACxD,YAAY,EAAE,OAAO,CAAQ;IAE7B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,WAAW,CAAS;IAE5B,uDAAuD;IACvD,MAAM,CAAC,WAAW,IAAI,OAAO;IAI7B;;;OAGG;gBACS,KAAK,EAAE,eAAe;IAQlC;;;;OAIG;IACH,OAAO,CAAC,MAAM,GAAE,OAAgD,GAAG,IAAI;IAavE,QAAQ,CAAC,KAAK,EAAE,eAAe;IAoBzB,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,SAA+C,EAC1D,OAAO,GAAE,OAA0C,EACnD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC;IAqCrB;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAiEtC;;;;;;;OAOG;IACH,mBAAmB,CAAC,MAAM,EAAE,YAAY;IA0BxC;;OAEG;IACH,mBAAmB,IAAI,YAAY,GAAG,IAAI;IA4B1C,kBAAkB;CAGnB"}
|
|
@@ -47,9 +47,13 @@ export default class WorkerPool {
|
|
|
47
47
|
*/
|
|
48
48
|
destroy(reason = new Error('Worker pool was destroyed')) {
|
|
49
49
|
// Abort active jobs so callers receive an error when a development worker is invalidated.
|
|
50
|
+
this.isDestroyed = true;
|
|
50
51
|
this.activeJobs.forEach(job => job.abort(reason));
|
|
51
52
|
const queuedJobs = this.jobQueue.splice(0);
|
|
52
|
-
queuedJobs.forEach(queuedJob =>
|
|
53
|
+
queuedJobs.forEach(queuedJob => {
|
|
54
|
+
queuedJob.removeAbortListener();
|
|
55
|
+
queuedJob.onReject(reason);
|
|
56
|
+
});
|
|
53
57
|
this.idleQueue.forEach(worker => worker.destroy());
|
|
54
58
|
this.isDestroyed = true;
|
|
55
59
|
}
|
|
@@ -71,14 +75,35 @@ export default class WorkerPool {
|
|
|
71
75
|
this.onDebug = props.onDebug;
|
|
72
76
|
}
|
|
73
77
|
}
|
|
74
|
-
async startJob(name, onMessage = (job, type, data) => job.done(data), onError = (job, error) => job.error(error)) {
|
|
78
|
+
async startJob(name, onMessage = (job, type, data) => job.done(data), onError = (job, error) => job.error(error), signal) {
|
|
79
|
+
if (signal?.aborted) {
|
|
80
|
+
throw signal.reason;
|
|
81
|
+
}
|
|
75
82
|
if (this.isDestroyed) {
|
|
76
83
|
return Promise.reject(new Error('Worker pool was destroyed'));
|
|
77
84
|
}
|
|
78
85
|
// Promise resolves when thread starts working on this job
|
|
79
86
|
const startPromise = new Promise((onStart, onReject) => {
|
|
80
87
|
// Promise resolves when thread completes or fails working on this job
|
|
81
|
-
|
|
88
|
+
const abortQueuedJob = () => {
|
|
89
|
+
const index = this.jobQueue.indexOf(queuedJob);
|
|
90
|
+
if (index >= 0) {
|
|
91
|
+
this.jobQueue.splice(index, 1);
|
|
92
|
+
queuedJob.removeAbortListener();
|
|
93
|
+
onReject(signal?.reason);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
const queuedJob = {
|
|
97
|
+
name,
|
|
98
|
+
onMessage,
|
|
99
|
+
onError,
|
|
100
|
+
onStart,
|
|
101
|
+
onReject,
|
|
102
|
+
signal,
|
|
103
|
+
removeAbortListener: () => signal?.removeEventListener('abort', abortQueuedJob)
|
|
104
|
+
};
|
|
105
|
+
this.jobQueue.push(queuedJob);
|
|
106
|
+
signal?.addEventListener('abort', abortQueuedJob, { once: true });
|
|
82
107
|
return this;
|
|
83
108
|
});
|
|
84
109
|
this._startQueuedJob(); // eslint-disable-line @typescript-eslint/no-floating-promises
|
|
@@ -93,7 +118,17 @@ export default class WorkerPool {
|
|
|
93
118
|
if (!this.jobQueue.length) {
|
|
94
119
|
return;
|
|
95
120
|
}
|
|
96
|
-
|
|
121
|
+
let workerThread;
|
|
122
|
+
try {
|
|
123
|
+
workerThread = this._getAvailableWorker();
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
const queuedJob = this.jobQueue.shift();
|
|
127
|
+
queuedJob?.removeAbortListener();
|
|
128
|
+
queuedJob?.onReject(error);
|
|
129
|
+
void this._startQueuedJob();
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
97
132
|
if (!workerThread) {
|
|
98
133
|
return;
|
|
99
134
|
}
|
|
@@ -110,10 +145,18 @@ export default class WorkerPool {
|
|
|
110
145
|
});
|
|
111
146
|
// Create a worker job to let the app access thread and manage job completion
|
|
112
147
|
const job = new WorkerJob(queuedJob.name, workerThread);
|
|
148
|
+
queuedJob.removeAbortListener();
|
|
149
|
+
const abortJob = () => job.abort(queuedJob.signal?.reason);
|
|
150
|
+
queuedJob.signal?.addEventListener('abort', abortJob, { once: true });
|
|
151
|
+
if (queuedJob.signal?.aborted)
|
|
152
|
+
abortJob();
|
|
113
153
|
this.activeJobs.add(job);
|
|
114
154
|
workerThread.ref();
|
|
115
155
|
// Set the worker thread's message handlers
|
|
116
|
-
workerThread.onMessage = data =>
|
|
156
|
+
workerThread.onMessage = data => {
|
|
157
|
+
if (job.isRunning)
|
|
158
|
+
queuedJob.onMessage(job, data.type, data.payload);
|
|
159
|
+
};
|
|
117
160
|
workerThread.onError = error => queuedJob.onError(job, error);
|
|
118
161
|
// Resolve the start promise so that the app can start sending messages to worker
|
|
119
162
|
queuedJob.onStart(job);
|
|
@@ -126,10 +169,14 @@ export default class WorkerPool {
|
|
|
126
169
|
// handled rejections here.
|
|
127
170
|
}
|
|
128
171
|
finally {
|
|
172
|
+
queuedJob.signal?.removeEventListener('abort', abortJob);
|
|
129
173
|
this.activeJobs.delete(job);
|
|
130
174
|
this.returnWorkerToQueue(workerThread);
|
|
131
175
|
}
|
|
132
176
|
}
|
|
177
|
+
else {
|
|
178
|
+
this.returnWorkerToQueue(workerThread);
|
|
179
|
+
}
|
|
133
180
|
}
|
|
134
181
|
/**
|
|
135
182
|
* Returns a worker to the idle queue
|
|
@@ -175,13 +222,19 @@ export default class WorkerPool {
|
|
|
175
222
|
if (this.count < this._getMaxConcurrency()) {
|
|
176
223
|
this.count++;
|
|
177
224
|
const name = `${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
225
|
+
try {
|
|
226
|
+
return new WorkerThread({
|
|
227
|
+
name,
|
|
228
|
+
source: this.source,
|
|
229
|
+
url: this.url,
|
|
230
|
+
getUrl: this.getUrl,
|
|
231
|
+
loadWorker: this.loadWorker
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
this.count--;
|
|
236
|
+
throw error;
|
|
237
|
+
}
|
|
185
238
|
}
|
|
186
239
|
// No worker available, have to wait
|
|
187
240
|
return null;
|