@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.
Files changed (105) hide show
  1. package/dist/dist.dev.js +190 -63
  2. package/dist/dist.min.js +3 -3
  3. package/dist/index.cjs +205 -72
  4. package/dist/index.cjs.map +2 -2
  5. package/dist/lib/api/parse-file.js +2 -0
  6. package/dist/lib/api/parse-file.js.map +1 -1
  7. package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
  8. package/dist/lib/api/parse-in-batches.js +5 -4
  9. package/dist/lib/api/parse-in-batches.js.map +1 -1
  10. package/dist/lib/api/parse.js +4 -2
  11. package/dist/lib/api/parse.js.map +1 -1
  12. package/dist/lib/init.js +1 -1
  13. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -1
  14. package/dist/lib/loader-utils/get-fetch-function.js +3 -1
  15. package/dist/lib/loader-utils/get-fetch-function.js.map +1 -1
  16. package/dist/lib/loader-utils/loader-context.d.ts.map +1 -1
  17. package/dist/lib/loader-utils/loader-context.js +4 -0
  18. package/dist/lib/loader-utils/loader-context.js.map +1 -1
  19. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
  20. package/dist/lib/loader-utils/option-defaults.js +1 -0
  21. package/dist/lib/loader-utils/option-defaults.js.map +1 -1
  22. package/dist/lib/loader-utils/option-utils.js +1 -1
  23. package/dist/lib/loader-utils/option-utils.js.map +1 -1
  24. package/dist/loader-utils/index.cjs +231 -92
  25. package/dist/loader-utils/index.cjs.map +2 -2
  26. package/dist/loader-utils/index.d.ts +1 -1
  27. package/dist/loader-utils/index.d.ts.map +1 -1
  28. package/dist/loader-utils/index.js +1 -1
  29. package/dist/loader-utils/index.js.map +1 -1
  30. package/dist/loader-utils/json-loader.d.ts +1 -1
  31. package/dist/loader-utils/json-loader.js +2 -2
  32. package/dist/loader-utils/lib/log-utils/log.js +1 -1
  33. package/dist/loader-utils/lib/request-utils/request-credentials.d.ts +3 -1
  34. package/dist/loader-utils/lib/request-utils/request-credentials.d.ts.map +1 -1
  35. package/dist/loader-utils/lib/request-utils/request-credentials.js +10 -16
  36. package/dist/loader-utils/lib/request-utils/request-credentials.js.map +1 -1
  37. package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.d.ts +3 -0
  38. package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.d.ts.map +1 -1
  39. package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.js +13 -12
  40. package/dist/loader-utils/lib/worker-loader-utils/create-loader-worker.js.map +1 -1
  41. package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.d.ts +6 -0
  42. package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.d.ts.map +1 -1
  43. package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.js +38 -7
  44. package/dist/loader-utils/lib/worker-loader-utils/parse-with-worker.js.map +1 -1
  45. package/dist/loader-utils/loader-types.d.ts +12 -4
  46. package/dist/loader-utils/loader-types.d.ts.map +1 -1
  47. package/dist/loader-utils/loader-types.js.map +1 -1
  48. package/dist/null-loader.js +1 -1
  49. package/dist/null-worker-node.js +60 -15
  50. package/dist/null-worker.js +59 -15
  51. package/dist/schema-utils/lib/table/tables/convert-table.d.ts +1 -1
  52. package/dist/schema-utils/lib/table/tables/convert-table.js +1 -1
  53. package/dist/worker-utils/index.cjs +170 -49
  54. package/dist/worker-utils/index.cjs.map +2 -2
  55. package/dist/worker-utils/index.d.ts +2 -2
  56. package/dist/worker-utils/index.d.ts.map +1 -1
  57. package/dist/worker-utils/index.js +1 -1
  58. package/dist/worker-utils/index.js.map +1 -1
  59. package/dist/worker-utils/lib/env-utils/version.js +2 -2
  60. package/dist/worker-utils/lib/worker-api/create-worker.d.ts.map +1 -1
  61. package/dist/worker-utils/lib/worker-api/create-worker.js +40 -2
  62. package/dist/worker-utils/lib/worker-api/create-worker.js.map +1 -1
  63. package/dist/worker-utils/lib/worker-api/get-worker-url.d.ts +2 -0
  64. package/dist/worker-utils/lib/worker-api/get-worker-url.d.ts.map +1 -1
  65. package/dist/worker-utils/lib/worker-api/get-worker-url.js +7 -11
  66. package/dist/worker-utils/lib/worker-api/get-worker-url.js.map +1 -1
  67. package/dist/worker-utils/lib/worker-api/process-on-worker.d.ts +6 -0
  68. package/dist/worker-utils/lib/worker-api/process-on-worker.d.ts.map +1 -1
  69. package/dist/worker-utils/lib/worker-api/process-on-worker.js +64 -27
  70. package/dist/worker-utils/lib/worker-api/process-on-worker.js.map +1 -1
  71. package/dist/worker-utils/lib/worker-farm/worker-job.d.ts.map +1 -1
  72. package/dist/worker-utils/lib/worker-farm/worker-job.js +3 -2
  73. package/dist/worker-utils/lib/worker-farm/worker-job.js.map +1 -1
  74. package/dist/worker-utils/lib/worker-farm/worker-pool.d.ts +1 -1
  75. package/dist/worker-utils/lib/worker-farm/worker-pool.d.ts.map +1 -1
  76. package/dist/worker-utils/lib/worker-farm/worker-pool.js +65 -12
  77. package/dist/worker-utils/lib/worker-farm/worker-pool.js.map +1 -1
  78. package/dist/worker-utils/null-worker-node.js +36 -2
  79. package/dist/worker-utils/null-worker-node.js.map +2 -2
  80. package/dist/worker-utils/null-worker.js +36 -2
  81. package/dist/worker-utils/null-worker.js.map +2 -2
  82. package/dist/worker-utils/types.d.ts +25 -4
  83. package/dist/worker-utils/types.d.ts.map +1 -1
  84. package/package.json +4 -4
  85. package/src/lib/api/parse-file.ts +2 -0
  86. package/src/lib/api/parse-in-batches.ts +5 -5
  87. package/src/lib/api/parse.ts +4 -2
  88. package/src/lib/loader-utils/get-fetch-function.ts +4 -2
  89. package/src/lib/loader-utils/loader-context.ts +4 -0
  90. package/src/lib/loader-utils/option-defaults.ts +1 -0
  91. package/src/lib/loader-utils/option-utils.ts +1 -1
  92. package/src/loader-utils/index.ts +1 -0
  93. package/src/loader-utils/json-loader.ts +1 -1
  94. package/src/loader-utils/lib/request-utils/request-credentials.ts +10 -12
  95. package/src/loader-utils/lib/worker-loader-utils/create-loader-worker.ts +38 -15
  96. package/src/loader-utils/lib/worker-loader-utils/parse-with-worker.ts +52 -7
  97. package/src/loader-utils/loader-types.ts +16 -4
  98. package/src/schema-utils/lib/table/tables/convert-table.ts +1 -1
  99. package/src/worker-utils/index.ts +3 -1
  100. package/src/worker-utils/lib/worker-api/create-worker.ts +41 -2
  101. package/src/worker-utils/lib/worker-api/get-worker-url.ts +13 -14
  102. package/src/worker-utils/lib/worker-api/process-on-worker.ts +128 -73
  103. package/src/worker-utils/lib/worker-farm/worker-job.ts +4 -2
  104. package/src/worker-utils/lib/worker-farm/worker-pool.ts +65 -12
  105. 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 || {}, context, payload.context || {});
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 || {}, context, payload.context || {});
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":"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"}
1
+ {"version":3,"file":"create-worker.js","sourceRoot":"","sources":["../../../../src/worker-utils/lib/worker-api/create-worker.ts"],"names":[],"mappings":"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"}
@@ -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,CAsCf;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"}
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 = workerOptions.workerUrl;
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":"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"}
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;AAcrB,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,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,CAsCd;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;AAsKD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,sBAA2B,EACpC,cAAc,GAAE,oBAAyB,GACxC,OAAO,CAAC,IAAI,CAAC,CAaf"}
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
- finally {
57
- options.signal?.removeEventListener('abort', abortJob);
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.startJob(options.jobName || worker.name, (activeJob, type, payload) => {
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
- if (!inputFinished) {
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?.reason ?? createAbortError('Worker job was aborted');
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;IAQzE;;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;CAQ9B"}
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(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,MAAM,KAAK,GAAG,MAAM,IAAI,gBAAgB,CAAC,eAAe,IAAI,CAAC,IAAI,eAAe,CAAC,CAAC;QAClF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,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"}
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;AAUtD;;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;IASvE,QAAQ,CAAC,KAAK,EAAE,eAAe;IAoBzB,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,SAA+C,EAC1D,OAAO,GAAE,OAA0C,GAClD,OAAO,CAAC,SAAS,CAAC;IAgBrB;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA+CtC;;;;;;;OAOG;IACH,mBAAmB,CAAC,MAAM,EAAE,YAAY;IA0BxC;;OAEG;IACH,mBAAmB,IAAI,YAAY,GAAG,IAAI;IAuB1C,kBAAkB;CAGnB"}
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 => queuedJob.onReject(reason));
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
- this.jobQueue.push({ name, onMessage, onError, onStart, onReject });
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
- const workerThread = this._getAvailableWorker();
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 => queuedJob.onMessage(job, data.type, data.payload);
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
- return new WorkerThread({
179
- name,
180
- source: this.source,
181
- url: this.url,
182
- getUrl: this.getUrl,
183
- loadWorker: this.loadWorker
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;