@xylabs/threads 4.6.4 → 4.7.0

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 (227) hide show
  1. package/dist/browser/master/implementation.browser.mjs +89 -0
  2. package/dist/browser/master/implementation.browser.mjs.map +1 -0
  3. package/dist/browser/worker/worker.browser.mjs +291 -0
  4. package/dist/browser/worker/worker.browser.mjs.map +1 -0
  5. package/dist/neutral/index.mjs +1022 -0
  6. package/dist/neutral/index.mjs.map +1 -0
  7. package/dist/neutral/master/implementation.mjs +264 -0
  8. package/dist/neutral/master/implementation.mjs.map +1 -0
  9. package/dist/neutral/master/index.mjs +988 -0
  10. package/dist/neutral/master/index.mjs.map +1 -0
  11. package/dist/neutral/master/pool.mjs +579 -0
  12. package/dist/neutral/master/pool.mjs.map +1 -0
  13. package/dist/neutral/master/register.mjs +272 -0
  14. package/dist/neutral/master/register.mjs.map +1 -0
  15. package/dist/neutral/master/spawn.mjs +412 -0
  16. package/dist/neutral/master/spawn.mjs.map +1 -0
  17. package/dist/neutral/master/thread.mjs +29 -0
  18. package/dist/neutral/master/thread.mjs.map +1 -0
  19. package/dist/neutral/observable-promise.mjs +132 -0
  20. package/dist/neutral/observable-promise.mjs.map +1 -0
  21. package/dist/neutral/observable.mjs +31 -0
  22. package/dist/neutral/observable.mjs.map +1 -0
  23. package/dist/node/master/implementation.node.mjs +154 -0
  24. package/dist/node/master/implementation.node.mjs.map +1 -0
  25. package/dist/node/worker/worker.node.mjs +304 -0
  26. package/dist/node/worker/worker.node.mjs.map +1 -0
  27. package/dist/{common.d.ts → types/common.d.ts} +5 -1
  28. package/dist/types/common.d.ts.map +1 -0
  29. package/dist/types/index.d.ts +9 -0
  30. package/dist/types/index.d.ts.map +1 -0
  31. package/dist/{master → types/master}/get-bundle-url.browser.d.ts +1 -0
  32. package/dist/types/master/get-bundle-url.browser.d.ts.map +1 -0
  33. package/dist/{master → types/master}/implementation.browser.d.ts +2 -1
  34. package/dist/types/master/implementation.browser.d.ts.map +1 -0
  35. package/dist/{master → types/master}/implementation.d.ts +4 -1
  36. package/dist/types/master/implementation.d.ts.map +1 -0
  37. package/dist/{master → types/master}/implementation.node.d.ts +2 -1
  38. package/dist/types/master/implementation.node.d.ts.map +1 -0
  39. package/dist/types/master/index.d.ts +13 -0
  40. package/dist/types/master/index.d.ts.map +1 -0
  41. package/dist/{master → types/master}/invocation-proxy.d.ts +2 -1
  42. package/dist/types/master/invocation-proxy.d.ts.map +1 -0
  43. package/dist/{master → types/master}/pool-types.d.ts +16 -1
  44. package/dist/types/master/pool-types.d.ts.map +1 -0
  45. package/dist/types/master/pool.d.ts +93 -0
  46. package/dist/types/master/pool.d.ts.map +1 -0
  47. package/dist/types/master/register.d.ts +2 -0
  48. package/dist/types/master/register.d.ts.map +1 -0
  49. package/dist/{master → types/master}/spawn.d.ts +12 -2
  50. package/dist/types/master/spawn.d.ts.map +1 -0
  51. package/dist/types/master/thread.d.ts +13 -0
  52. package/dist/types/master/thread.d.ts.map +1 -0
  53. package/dist/{observable-promise.d.ts → types/observable-promise.d.ts} +14 -0
  54. package/dist/types/observable-promise.d.ts.map +1 -0
  55. package/dist/types/observable.d.ts +21 -0
  56. package/dist/types/observable.d.ts.map +1 -0
  57. package/dist/{ponyfills.d.ts → types/ponyfills.d.ts} +1 -0
  58. package/dist/types/ponyfills.d.ts.map +1 -0
  59. package/dist/types/promise.d.ts +6 -0
  60. package/dist/types/promise.d.ts.map +1 -0
  61. package/dist/{serializers.d.ts → types/serializers.d.ts} +1 -0
  62. package/dist/types/serializers.d.ts.map +1 -0
  63. package/dist/{symbols.d.ts → types/symbols.d.ts} +1 -0
  64. package/dist/types/symbols.d.ts.map +1 -0
  65. package/dist/types/transferable.d.ts +43 -0
  66. package/dist/types/transferable.d.ts.map +1 -0
  67. package/dist/types/{master.d.ts → types/master.d.ts} +17 -3
  68. package/dist/types/types/master.d.ts.map +1 -0
  69. package/dist/types/{messages.d.ts → types/messages.d.ts} +1 -0
  70. package/dist/types/types/messages.d.ts.map +1 -0
  71. package/dist/types/{worker.d.ts → types/worker.d.ts} +1 -0
  72. package/dist/types/types/worker.d.ts.map +1 -0
  73. package/dist/types/worker/WorkerGlobalScope.d.ts +6 -0
  74. package/dist/types/worker/WorkerGlobalScope.d.ts.map +1 -0
  75. package/dist/types/worker/expose.d.ts +4 -0
  76. package/dist/types/worker/expose.d.ts.map +1 -0
  77. package/dist/types/worker/worker.browser.d.ts +14 -0
  78. package/dist/types/worker/worker.browser.d.ts.map +1 -0
  79. package/dist/types/worker/worker.node.d.ts +25 -0
  80. package/dist/types/worker/worker.node.d.ts.map +1 -0
  81. package/package.json +66 -77
  82. package/src/common.ts +10 -6
  83. package/src/index.ts +10 -9
  84. package/src/master/get-bundle-url.browser.ts +2 -1
  85. package/src/master/implementation.browser.ts +2 -2
  86. package/src/master/implementation.node.ts +19 -96
  87. package/src/master/implementation.ts +2 -2
  88. package/src/master/index.ts +7 -7
  89. package/src/master/invocation-proxy.ts +6 -6
  90. package/src/master/pool-types.ts +1 -1
  91. package/src/master/pool.ts +14 -13
  92. package/src/master/register.ts +2 -1
  93. package/src/master/spawn.ts +8 -8
  94. package/src/master/thread.ts +2 -2
  95. package/src/observable-promise.ts +3 -2
  96. package/src/serializers.ts +1 -1
  97. package/src/transferable.ts +2 -1
  98. package/src/types/master.ts +3 -3
  99. package/src/worker/WorkerGlobalScope.ts +5 -0
  100. package/src/worker/expose.ts +234 -0
  101. package/src/worker/is-observable.d.ts +7 -0
  102. package/src/worker/{implementation.browser.ts → worker.browser.ts} +26 -10
  103. package/src/worker/{implementation.worker_threads.ts → worker.node.ts} +30 -12
  104. package/types/is-observable.d.ts +1 -1
  105. package/xy.config.ts +24 -0
  106. package/dist/common.js +0 -16
  107. package/dist/esm/common.js +0 -16
  108. package/dist/esm/index.js +0 -26
  109. package/dist/esm/master/get-bundle-url.browser.js +0 -25
  110. package/dist/esm/master/implementation.browser.js +0 -65
  111. package/dist/esm/master/implementation.js +0 -43
  112. package/dist/esm/master/implementation.node.js +0 -205
  113. package/dist/esm/master/index.js +0 -14
  114. package/dist/esm/master/invocation-proxy.js +0 -121
  115. package/dist/esm/master/pool-types.js +0 -14
  116. package/dist/esm/master/pool.js +0 -262
  117. package/dist/esm/master/register.js +0 -11
  118. package/dist/esm/master/spawn.js +0 -114
  119. package/dist/esm/master/thread.js +0 -18
  120. package/dist/esm/observable-promise.js +0 -132
  121. package/dist/esm/observable.js +0 -33
  122. package/dist/esm/ponyfills.js +0 -20
  123. package/dist/esm/promise.js +0 -23
  124. package/dist/esm/serializers.js +0 -41
  125. package/dist/esm/symbols.js +0 -8
  126. package/dist/esm/transferable.js +0 -25
  127. package/dist/esm/types/master.js +0 -9
  128. package/dist/esm/types/messages.js +0 -16
  129. package/dist/esm/types/worker.js +0 -2
  130. package/dist/esm/worker/bundle-entry.js +0 -26
  131. package/dist/esm/worker/implementation.browser.js +0 -24
  132. package/dist/esm/worker/implementation.js +0 -19
  133. package/dist/esm/worker/implementation.tiny-worker.js +0 -37
  134. package/dist/esm/worker/implementation.worker_threads.js +0 -41
  135. package/dist/esm/worker/index.js +0 -174
  136. package/dist/esm/worker_threads.js +0 -13
  137. package/dist/index.d.ts +0 -7
  138. package/dist/index.js +0 -26
  139. package/dist/master/get-bundle-url.browser.js +0 -25
  140. package/dist/master/implementation.browser.js +0 -65
  141. package/dist/master/implementation.js +0 -43
  142. package/dist/master/implementation.node.js +0 -205
  143. package/dist/master/index.d.ts +0 -10
  144. package/dist/master/index.js +0 -14
  145. package/dist/master/invocation-proxy.js +0 -121
  146. package/dist/master/pool-types.js +0 -14
  147. package/dist/master/pool.d.ts +0 -50
  148. package/dist/master/pool.js +0 -262
  149. package/dist/master/register.d.ts +0 -1
  150. package/dist/master/register.js +0 -11
  151. package/dist/master/spawn.js +0 -114
  152. package/dist/master/thread.d.ts +0 -8
  153. package/dist/master/thread.js +0 -18
  154. package/dist/observable-promise.js +0 -132
  155. package/dist/observable.d.ts +0 -11
  156. package/dist/observable.js +0 -33
  157. package/dist/ponyfills.js +0 -20
  158. package/dist/promise.d.ts +0 -1
  159. package/dist/promise.js +0 -23
  160. package/dist/serializers.js +0 -41
  161. package/dist/symbols.js +0 -8
  162. package/dist/transferable.d.ts +0 -9
  163. package/dist/transferable.js +0 -25
  164. package/dist/types/master.js +0 -9
  165. package/dist/types/messages.js +0 -16
  166. package/dist/types/worker.js +0 -2
  167. package/dist/worker/bundle-entry.d.ts +0 -1
  168. package/dist/worker/bundle-entry.js +0 -26
  169. package/dist/worker/implementation.browser.d.ts +0 -6
  170. package/dist/worker/implementation.browser.js +0 -24
  171. package/dist/worker/implementation.d.ts +0 -3
  172. package/dist/worker/implementation.js +0 -19
  173. package/dist/worker/implementation.tiny-worker.d.ts +0 -6
  174. package/dist/worker/implementation.tiny-worker.js +0 -37
  175. package/dist/worker/implementation.worker_threads.d.ts +0 -8
  176. package/dist/worker/implementation.worker_threads.js +0 -41
  177. package/dist/worker/index.d.ts +0 -5
  178. package/dist/worker/index.js +0 -174
  179. package/dist/worker_threads.d.ts +0 -8
  180. package/dist/worker_threads.js +0 -13
  181. package/observable.d.ts +0 -2
  182. package/observable.js +0 -2
  183. package/observable.mjs +0 -4
  184. package/register.d.ts +0 -2
  185. package/register.js +0 -2
  186. package/register.mjs +0 -1
  187. package/rollup.config.js +0 -16
  188. package/src/worker/bundle-entry.ts +0 -10
  189. package/src/worker/implementation.tiny-worker.ts +0 -55
  190. package/src/worker/implementation.ts +0 -23
  191. package/src/worker/index.ts +0 -230
  192. package/src/worker_threads.ts +0 -27
  193. package/test/lib/index.ts +0 -1
  194. package/test/lib/serialization.ts +0 -38
  195. package/test/observable-promise.test.ts +0 -205
  196. package/test/observable.test.ts +0 -87
  197. package/test/pool.test.ts +0 -183
  198. package/test/serialization.test.ts +0 -23
  199. package/test/spawn.chromium.mocha.ts +0 -53
  200. package/test/spawn.test.ts +0 -87
  201. package/test/streaming.test.ts +0 -29
  202. package/test/transferables.test.ts +0 -71
  203. package/test/workers/arraybuffer-xor.ts +0 -10
  204. package/test/workers/count-to-five.ts +0 -12
  205. package/test/workers/counter.ts +0 -19
  206. package/test/workers/faulty-function.ts +0 -5
  207. package/test/workers/hello-world.ts +0 -5
  208. package/test/workers/increment.ts +0 -8
  209. package/test/workers/minmax.ts +0 -25
  210. package/test/workers/serialization.ts +0 -13
  211. package/test/workers/top-level-throw.ts +0 -1
  212. package/test-tooling/rollup/app.js +0 -21
  213. package/test-tooling/rollup/rollup.config.ts +0 -14
  214. package/test-tooling/rollup/worker.js +0 -7
  215. package/test-tooling/tsconfig/minimal.ts +0 -12
  216. package/test-tooling/webpack/addition-worker.ts +0 -9
  217. package/test-tooling/webpack/app-with-inlined-worker.ts +0 -28
  218. package/test-tooling/webpack/app.ts +0 -61
  219. package/test-tooling/webpack/pool-worker.ts +0 -5
  220. package/test-tooling/webpack/raw-loader.d.ts +0 -4
  221. package/test-tooling/webpack/webpack.chromium.mocha.ts +0 -21
  222. package/test-tooling/webpack/webpack.node.config.js +0 -29
  223. package/test-tooling/webpack/webpack.web.config.js +0 -28
  224. package/types/webworker.d.ts +0 -9
  225. package/worker.d.ts +0 -2
  226. package/worker.js +0 -2
  227. package/worker.mjs +0 -6
@@ -1,4 +1,7 @@
1
- import * as BrowserImplementation from './implementation.browser';
1
+ import * as BrowserImplementation from './implementation.browser.ts';
2
+ /** Default size of pools. Depending on the platform the value might vary from device to device. */
2
3
  export declare const defaultPoolSize: number;
3
4
  export declare const getWorkerImplementation: typeof BrowserImplementation.getWorkerImplementation;
5
+ /** Returns `true` if this code is currently running in a worker. */
4
6
  export declare const isWorkerRuntime: typeof BrowserImplementation.isWorkerRuntime;
7
+ //# sourceMappingURL=implementation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementation.d.ts","sourceRoot":"","sources":["../../../src/master/implementation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,qBAAqB,MAAM,6BAA6B,CAAA;AAMpE,mGAAmG;AACnG,eAAO,MAAM,eAAe,QAAiC,CAAA;AAE7D,eAAO,MAAM,uBAAuB,sDAAyC,CAAA;AAE7E,oEAAoE;AACpE,eAAO,MAAM,eAAe,8CAAiC,CAAA"}
@@ -1,4 +1,5 @@
1
- import type { ImplementationExport } from '../types/master';
1
+ import type { ImplementationExport } from '../types/master.ts';
2
2
  export declare const defaultPoolSize: number;
3
3
  export declare function getWorkerImplementation(): ImplementationExport;
4
4
  export declare function isWorkerRuntime(): boolean;
5
+ //# sourceMappingURL=implementation.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementation.node.d.ts","sourceRoot":"","sources":["../../../src/master/implementation.node.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,oBAAoB,CAAA;AAM3B,eAAO,MAAM,eAAe,QAAgB,CAAA;AAuK5C,wBAAgB,uBAAuB,IAAI,oBAAoB,CAK9D;AAED,wBAAgB,eAAe,YAW9B"}
@@ -0,0 +1,13 @@
1
+ import type { BlobWorker as BlobWorkerClass, Worker as WorkerType } from '../types/master.ts';
2
+ export type { FunctionThread, ModuleThread } from '../types/master.ts';
3
+ export { Pool } from './pool.ts';
4
+ export { spawn } from './spawn.ts';
5
+ export { Thread } from './thread.ts';
6
+ export type BlobWorker = typeof BlobWorkerClass;
7
+ export type Worker = WorkerType;
8
+ /** Separate class to spawn workers from source code blobs or strings. */
9
+ export declare const BlobWorker: typeof BlobWorkerClass;
10
+ /** Worker implementation. Either web worker or a node.js Worker class. */
11
+ export declare const Worker: typeof import("../types/master.ts").WorkerImplementation;
12
+ export { isWorkerRuntime } from './implementation.ts';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/master/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAG7F,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,MAAM,UAAU,GAAG,OAAO,eAAe,CAAA;AAC/C,MAAM,MAAM,MAAM,GAAG,UAAU,CAAA;AAE/B,yEAAyE;AACzE,eAAO,MAAM,UAAU,wBAAiC,CAAA;AAExD,0EAA0E;AAC1E,eAAO,MAAM,MAAM,0DAAoC,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1,3 +1,4 @@
1
- import type { ModuleMethods, ModuleProxy, ProxyableFunction, Worker as WorkerType } from '../types/master';
1
+ import type { ModuleMethods, ModuleProxy, ProxyableFunction, Worker as WorkerType } from '../types/master.ts';
2
2
  export declare function createProxyFunction<Args extends any[], ReturnType>(worker: WorkerType, method?: string): ProxyableFunction<Args, ReturnType>;
3
3
  export declare function createProxyModule<Methods extends ModuleMethods>(worker: WorkerType, methodNames: string[]): ModuleProxy<Methods>;
4
+ //# sourceMappingURL=invocation-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invocation-proxy.d.ts","sourceRoot":"","sources":["../../../src/master/invocation-proxy.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,IAAI,UAAU,EACpE,MAAM,oBAAoB,CAAA;AAsG3B,wBAAgB,mBAAmB,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAoBxF,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CACjD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAQhI"}
@@ -1,4 +1,5 @@
1
- import type { Thread } from './thread';
1
+ import type { Thread } from './thread.ts';
2
+ /** Pool event type. Specifies the type of each `PoolEvent`. */
2
3
  export declare enum PoolEventType {
3
4
  initialized = "initialized",
4
5
  taskCanceled = "taskCanceled",
@@ -10,6 +11,7 @@ export declare enum PoolEventType {
10
11
  terminated = "terminated"
11
12
  }
12
13
  export type TaskRunFunction<ThreadType extends Thread, Return> = (worker: ThreadType) => Promise<Return>;
14
+ /** Pool event. Subscribe to those events using `pool.events()`. Useful for debugging. */
13
15
  export type PoolEvent<ThreadType extends Thread> = {
14
16
  type: PoolEventType.initialized;
15
17
  size: number;
@@ -43,9 +45,22 @@ export interface WorkerDescriptor<ThreadType extends Thread> {
43
45
  init: Promise<ThreadType>;
44
46
  runningTasks: Array<Promise<any>>;
45
47
  }
48
+ /**
49
+ * Task that has been `pool.queued()`-ed.
50
+ */
46
51
  export interface QueuedTask<ThreadType extends Thread, Return> {
52
+ /** @private */
47
53
  id: number;
54
+ /** @private */
48
55
  run: TaskRunFunction<ThreadType, Return>;
56
+ /**
57
+ * Queued tasks can be cancelled until the pool starts running them on a worker thread.
58
+ */
49
59
  cancel(): void;
60
+ /**
61
+ * `QueuedTask` is thenable, so you can `await` it.
62
+ * Resolves when the task has successfully been executed. Rejects if the task fails.
63
+ */
50
64
  then: Promise<Return>['then'];
51
65
  }
66
+ //# sourceMappingURL=pool-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool-types.d.ts","sourceRoot":"","sources":["../../../src/master/pool-types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,+DAA+D;AAC/D,oBAAY,aAAa;IACvB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,gBAAgB,qBAAqB;IACrC,SAAS,cAAc;IACvB,UAAU,eAAe;CAC1B;AAED,MAAM,MAAM,eAAe,CAAC,UAAU,SAAS,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAExG,yFAAyF;AACzF,MAAM,MAAM,SAAS,CAAC,UAAU,SAAS,MAAM,IAC3C;IACA,IAAI,EAAE,aAAa,CAAC,WAAW,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;CACb,GACC;IACA,IAAI,EAAE,aAAa,CAAC,UAAU,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;CACf,GACC;IACA,IAAI,EAAE,aAAa,CAAC,gBAAgB,CAAA;CACrC,GACC;IACA,IAAI,EAAE,aAAa,CAAC,SAAS,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,GACC;IACA,IAAI,EAAE,aAAa,CAAC,aAAa,CAAA;IACjC,WAAW,EAAE,GAAG,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,GACC;IACA,IAAI,EAAE,aAAa,CAAC,UAAU,CAAA;IAC9B,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,GACC;IACA,IAAI,EAAE,aAAa,CAAC,YAAY,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;CACf,GACC;IACA,IAAI,EAAE,aAAa,CAAC,UAAU,CAAA;IAC9B,cAAc,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;CACnD,CAAA;AAEH,MAAM,WAAW,gBAAgB,CAAC,UAAU,SAAS,MAAM;IACzD,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IACzB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,UAAU,SAAS,MAAM,EAAE,MAAM;IAC3D,eAAe;IACf,EAAE,EAAE,MAAM,CAAA;IAEV,eAAe;IACf,GAAG,EAAE,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAExC;;OAEG;IACH,MAAM,IAAI,IAAI,CAAA;IAEd;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;CAC9B"}
@@ -0,0 +1,93 @@
1
+ import { Observable } from 'observable-fns';
2
+ import type { PoolEvent, QueuedTask, TaskRunFunction } from './pool-types.ts';
3
+ import { PoolEventType } from './pool-types.ts';
4
+ import { Thread } from './thread.ts';
5
+ export declare namespace Pool {
6
+ type Event<ThreadType extends Thread = any> = PoolEvent<ThreadType>;
7
+ type EventType = PoolEventType;
8
+ }
9
+ /**
10
+ * Thread pool managing a set of worker threads.
11
+ * Use it to queue tasks that are run on those threads with limited
12
+ * concurrency.
13
+ */
14
+ export interface Pool<ThreadType extends Thread> {
15
+ /**
16
+ * Returns a promise that resolves once the task queue is emptied.
17
+ * Promise will be rejected if any task fails.
18
+ *
19
+ * @param allowResolvingImmediately Set to `true` to resolve immediately if task queue is currently empty.
20
+ */
21
+ completed(allowResolvingImmediately?: boolean): Promise<any>;
22
+ /**
23
+ * Returns a promise that resolves once the task queue is emptied.
24
+ * Failing tasks will not cause the promise to be rejected.
25
+ *
26
+ * @param allowResolvingImmediately Set to `true` to resolve immediately if task queue is currently empty.
27
+ */
28
+ settled(allowResolvingImmediately?: boolean): Promise<Error[]>;
29
+ /**
30
+ * Returns an observable that yields pool events.
31
+ */
32
+ events(): Observable<PoolEvent<ThreadType>>;
33
+ /**
34
+ * Queue a task and return a promise that resolves once the task has been dequeued,
35
+ * started and finished.
36
+ *
37
+ * @param task An async function that takes a thread instance and invokes it.
38
+ */
39
+ queue<Return>(task: TaskRunFunction<ThreadType, Return>): QueuedTask<ThreadType, Return>;
40
+ /**
41
+ * Terminate all pool threads.
42
+ *
43
+ * @param force Set to `true` to kill the thread even if it cannot be stopped gracefully.
44
+ */
45
+ terminate(force?: boolean): Promise<void>;
46
+ }
47
+ interface PoolOptions {
48
+ /** Maximum no. of tasks to run on one worker thread at a time. Defaults to one. */
49
+ concurrency?: number;
50
+ /** Maximum no. of jobs to be queued for execution before throwing an error. */
51
+ maxQueuedJobs?: number;
52
+ /** Gives that pool a name to be used for debug logging, letting you distinguish between log output of different pools. */
53
+ name?: string;
54
+ /** No. of worker threads to spawn and to be managed by the pool. */
55
+ size?: number;
56
+ }
57
+ declare class WorkerPool<ThreadType extends Thread> implements Pool<ThreadType> {
58
+ static EventType: typeof PoolEventType;
59
+ private readonly debug;
60
+ private readonly eventObservable;
61
+ private readonly options;
62
+ private readonly workers;
63
+ private readonly eventSubject;
64
+ private initErrors;
65
+ private isClosing;
66
+ private nextTaskID;
67
+ private taskQueue;
68
+ constructor(spawnWorker: () => Promise<ThreadType>, optionsOrSize?: number | PoolOptions);
69
+ private findIdlingWorker;
70
+ private runPoolTask;
71
+ private run;
72
+ private scheduleWork;
73
+ private taskCompletion;
74
+ settled(allowResolvingImmediately?: boolean): Promise<Error[]>;
75
+ completed(allowResolvingImmediately?: boolean): Promise<void>;
76
+ events(): Observable<PoolEvent<ThreadType>>;
77
+ queue(taskFunction: TaskRunFunction<ThreadType, any>): QueuedTask<ThreadType, any>;
78
+ terminate(force?: boolean): Promise<void>;
79
+ }
80
+ /**
81
+ * Thread pool constructor. Creates a new pool and spawns its worker threads.
82
+ */
83
+ declare function PoolConstructor<ThreadType extends Thread>(spawnWorker: () => Promise<ThreadType>, optionsOrSize?: number | PoolOptions): WorkerPool<ThreadType>;
84
+ /**
85
+ * Thread pool constructor. Creates a new pool and spawns its worker threads.
86
+ */
87
+ export declare const Pool: typeof PoolConstructor & {
88
+ EventType: typeof PoolEventType;
89
+ };
90
+ export type { PoolEvent, QueuedTask } from './pool-types.ts';
91
+ export { PoolEventType } from './pool-types.ts';
92
+ export { Thread } from './thread.ts';
93
+ //# sourceMappingURL=pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../src/master/pool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/master/register.ts"],"names":[],"mappings":""}
@@ -1,11 +1,21 @@
1
- import type { FunctionThread, ModuleThread, StripAsync, Worker as WorkerType } from '../types/master';
2
- import type { WorkerFunction, WorkerModule } from '../types/worker';
1
+ import type { FunctionThread, ModuleThread, StripAsync, Worker as WorkerType } from '../types/master.ts';
2
+ import type { WorkerFunction, WorkerModule } from '../types/worker.ts';
3
3
  type ArbitraryWorkerInterface = WorkerFunction & WorkerModule<string> & {
4
4
  somekeythatisneverusedinproductioncode123: 'magicmarker123';
5
5
  };
6
6
  type ArbitraryThreadType = FunctionThread<any, any> & ModuleThread<any>;
7
7
  export type ExposedToThreadType<Exposed extends WorkerFunction | WorkerModule<any>> = Exposed extends ArbitraryWorkerInterface ? ArbitraryThreadType : Exposed extends WorkerFunction ? FunctionThread<Parameters<Exposed>, StripAsync<ReturnType<Exposed>>> : Exposed extends WorkerModule<any> ? ModuleThread<Exposed> : never;
8
+ /**
9
+ * Spawn a new thread. Takes a fresh worker instance, wraps it in a thin
10
+ * abstraction layer to provide the transparent API and verifies that
11
+ * the worker has initialized successfully.
12
+ *
13
+ * @param worker Instance of `Worker`. Either a web worker, `worker_threads` worker or `tiny-worker` worker.
14
+ * @param [options]
15
+ * @param [options.timeout] Init message timeout. Default: 10000 or set by environment variable.
16
+ */
8
17
  export declare function spawn<Exposed extends WorkerFunction | WorkerModule<any> = ArbitraryWorkerInterface>(worker: WorkerType, options?: {
9
18
  timeout?: number;
10
19
  }): Promise<ExposedToThreadType<Exposed>>;
11
20
  export {};
21
+ //# sourceMappingURL=spawn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../src/master/spawn.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EAEZ,UAAU,EACV,MAAM,IAAI,UAAU,EAKrB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtE,KAAK,wBAAwB,GAAG,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG;IAAE,yCAAyC,EAAE,gBAAgB,CAAA;CAAE,CAAA;AACvI,KAAK,mBAAmB,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;AAEvE,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,IAChF,OAAO,SAAS,wBAAwB,GAAG,mBAAmB,GAC1D,OAAO,SAAS,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GACnG,OAAO,SAAS,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GACvD,KAAK,CAAA;AAqGf;;;;;;;;GAQG;AACH,wBAAsB,KAAK,CAAC,OAAO,SAAS,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,wBAAwB,EACvG,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAwBvC"}
@@ -0,0 +1,13 @@
1
+ import type { Observable } from 'observable-fns';
2
+ import type { Thread as ThreadType, WorkerEvent } from '../types/master.ts';
3
+ export type Thread = ThreadType;
4
+ /** Thread utility functions. Use them to manage or inspect a `spawn()`-ed thread. */
5
+ export declare const Thread: {
6
+ /** Return an observable that can be used to subscribe to all errors happening in the thread. */
7
+ errors<ThreadT extends ThreadType>(thread: ThreadT): Observable<Error>;
8
+ /** Return an observable that can be used to subscribe to internal events happening in the thread. Useful for debugging. */
9
+ events<ThreadT extends ThreadType>(thread: ThreadT): Observable<WorkerEvent>;
10
+ /** Terminate a thread. Remember to terminate every thread when you are done using it. */
11
+ terminate<ThreadT extends ThreadType>(thread: ThreadT): Promise<void>;
12
+ };
13
+ //# sourceMappingURL=thread.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread.d.ts","sourceRoot":"","sources":["../../../src/master/thread.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAKhD,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAM3E,MAAM,MAAM,MAAM,GAAG,UAAU,CAAA;AAE/B,qFAAqF;AACrF,eAAO,MAAM,MAAM;IACjB,gGAAgG;WACzF,OAAO,SAAS,UAAU,UAAU,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC;IAGtE,2HAA2H;WACpH,OAAO,SAAS,UAAU,UAAU,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;IAG5E,yFAAyF;cAC/E,OAAO,SAAS,UAAU,UAAU,OAAO;CAGtD,CAAA"}
@@ -5,6 +5,19 @@ type Thenable<T> = {
5
5
  then: (onFulfilled?: (value: T) => any, onRejected?: (error: any) => any) => any;
6
6
  };
7
7
  type UnsubscribeFn = () => void;
8
+ /**
9
+ * Creates a hybrid, combining the APIs of an Observable and a Promise.
10
+ *
11
+ * It is used to proxy async process states when we are initially not sure
12
+ * if that async process will yield values once (-> Promise) or multiple
13
+ * times (-> Observable).
14
+ *
15
+ * Note that the observable promise inherits some of the observable's characteristics:
16
+ * The `init` function will be called *once for every time anyone subscribes to it*.
17
+ *
18
+ * If this is undesired, derive a hot observable from it using `makeHot()` and
19
+ * subscribe to that.
20
+ */
8
21
  export declare class ObservablePromise<T> extends Observable<T> implements Promise<T> {
9
22
  readonly [Symbol.toStringTag] = "[object ObservablePromise]";
10
23
  private initHasRun;
@@ -24,3 +37,4 @@ export declare class ObservablePromise<T> extends Observable<T> implements Promi
24
37
  static from<T>(thing: Observable<T> | ObservableLike<T> | ArrayLike<T> | Thenable<T>): ObservablePromise<T>;
25
38
  }
26
39
  export {};
40
+ //# sourceMappingURL=observable-promise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable-promise.d.ts","sourceRoot":"","sources":["../../src/observable-promise.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAK3C,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,aAAa,GAAG,IAAI,CAAA;AAEjF,KAAK,QAAQ,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,CAAA;CAAE,CAAA;AAEvG,KAAK,aAAa,GAAG,MAAM,IAAI,CAAA;AAc/B;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAiB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAC3E,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,gCAA+B;IAC5D,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,oBAAoB,CAA4B;IACxD,OAAO,CAAC,kBAAkB,CAAmB;IAE7C,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,KAAK,CAAkD;gBAEnD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IA6BhC,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,YAAY;IAUpB,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EACjC,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,EACpF,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GACrF,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAuC/B,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,GACpD,OAAO,CAAC,MAAM,CAAC;IAG5D,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,GAQ9C,OAAO,CAAC,CAAC,CAAC;WAGD,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;CAcrH"}
@@ -0,0 +1,21 @@
1
+ import type { ObservableLike } from 'observable-fns';
2
+ import { Observable } from 'observable-fns';
3
+ declare const $observers: unique symbol;
4
+ /**
5
+ * Observable subject. Implements the Observable interface, but also exposes
6
+ * the `next()`, `error()`, `complete()` methods to initiate observable
7
+ * updates "from the outside".
8
+ *
9
+ * Use `Observable.from(subject)` to derive an observable that proxies all
10
+ * values, errors and the completion raised on this subject, but does not
11
+ * expose the `next()`, `error()`, `complete()` methods.
12
+ */
13
+ export declare class Subject<T> extends Observable<T> implements ObservableLike<T> {
14
+ private [$observers];
15
+ constructor();
16
+ complete(): void;
17
+ error(error: any): void;
18
+ next(value: T): void;
19
+ }
20
+ export { Observable } from 'observable-fns';
21
+ //# sourceMappingURL=observable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../src/observable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,QAAA,MAAM,UAAU,eAAsB,CAAA;AAEtC;;;;;;;;GAQG;AACH,qBAAa,OAAO,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,CAAC,UAAU,CAAC,CAAgC;;IAcpD,QAAQ;IAIR,KAAK,CAAC,KAAK,EAAE,GAAG;IAIhB,IAAI,CAAC,KAAK,EAAE,CAAC;CAGd;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
@@ -6,3 +6,4 @@ export type SettlementResult<T> = {
6
6
  status: 'rejected';
7
7
  };
8
8
  export declare function allSettled<T>(values: T[]): Promise<Array<SettlementResult<T>>>;
9
+ //# sourceMappingURL=ponyfills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ponyfills.d.ts","sourceRoot":"","sources":["../../src/ponyfills.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAC1B;IACA,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,CAAC,CAAA;CACT,GACC;IACA,MAAM,EAAE,GAAG,CAAA;IACX,MAAM,EAAE,UAAU,CAAA;CACnB,CAAA;AAGH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAkB9E"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Creates a new promise and exposes its resolver function.
3
+ * Use with care!
4
+ */
5
+ export declare function createPromiseWithResolver<T>(): [Promise<T>, (result: T) => void];
6
+ //# sourceMappingURL=promise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/promise.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC,CAkBhF"}
@@ -14,3 +14,4 @@ type JsonSerializableObject = {
14
14
  export type JsonSerializable = JsonSerializablePrimitive | JsonSerializablePrimitive[] | JsonSerializableObject | JsonSerializableObject[];
15
15
  export declare const DefaultSerializer: Serializer<JsonSerializable>;
16
16
  export {};
17
+ //# sourceMappingURL=serializers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializers.d.ts","sourceRoot":"","sources":["../../src/serializers.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU,CAAC,GAAG,GAAG,gBAAgB,EAAE,KAAK,GAAG,GAAG;IAC7D,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,CAAA;IAChC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAA;CAC7B;AAED,MAAM,WAAW,wBAAwB,CAAC,GAAG,GAAG,gBAAgB,EAAE,KAAK,GAAG,GAAG;IAC3E,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,KAAK,GAAG,KAAK,CAAA;IACzE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,GAAG,GAAG,CAAA;CACpE;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,SAAS,GAAG,GAAG,EAC3D,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,EAC1C,cAAc,EAAE,wBAAwB,CAAC,WAAW,EAAE,SAAS,CAAC,GAC/D,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAapC;AAED,KAAK,yBAAyB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAEjE,KAAK,sBAAsB,GAAG;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,GAAG,yBAAyB,EAAE,GAAG,sBAAsB,GAAG,sBAAsB,EAAE,GAAG,SAAS,CAAA;CACvI,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,GAAG,yBAAyB,EAAE,GAAG,sBAAsB,GAAG,sBAAsB,EAAE,CAAA;AAsB1I,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC,gBAAgB,CAO1D,CAAA"}
@@ -3,3 +3,4 @@ export declare const $events: unique symbol;
3
3
  export declare const $terminate: unique symbol;
4
4
  export declare const $transferable: unique symbol;
5
5
  export declare const $worker: unique symbol;
6
+ //# sourceMappingURL=symbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/symbols.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,eAA0B,CAAA;AAC9C,eAAO,MAAM,OAAO,eAA0B,CAAA;AAC9C,eAAO,MAAM,UAAU,eAA6B,CAAA;AACpD,eAAO,MAAM,aAAa,eAAgC,CAAA;AAC1D,eAAO,MAAM,OAAO,eAA0B,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { $transferable } from './symbols.ts';
2
+ export interface TransferDescriptor<T = any> {
3
+ [$transferable]: true;
4
+ send: T;
5
+ transferables: Transferable[];
6
+ }
7
+ export declare function isTransferDescriptor(thing: any): thing is TransferDescriptor;
8
+ /**
9
+ * Mark a transferable object as such, so it will no be serialized and
10
+ * deserialized on messaging with the main thread, but to transfer
11
+ * ownership of it to the receiving thread.
12
+ *
13
+ * Only works with array buffers, message ports and few more special
14
+ * types of objects, but it's much faster than serializing and
15
+ * deserializing them.
16
+ *
17
+ * Note:
18
+ * The transferable object cannot be accessed by this thread again
19
+ * unless the receiving thread transfers it back again!
20
+ *
21
+ * @param transferable Array buffer, message port or similar.
22
+ * @see <https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast>
23
+ */
24
+ export declare function Transfer(transferable: Transferable): TransferDescriptor;
25
+ /**
26
+ * Mark transferable objects within an arbitrary object or array as
27
+ * being a transferable object. They will then not be serialized
28
+ * and deserialized on messaging with the main thread, but ownership
29
+ * of them will be tranferred to the receiving thread.
30
+ *
31
+ * Only array buffers, message ports and few more special types of
32
+ * objects can be transferred, but it's much faster than serializing and
33
+ * deserializing them.
34
+ *
35
+ * Note:
36
+ * The transferable object cannot be accessed by this thread again
37
+ * unless the receiving thread transfers it back again!
38
+ *
39
+ * @param transferable Array buffer, message port or similar.
40
+ * @see <https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast>
41
+ */
42
+ export declare function Transfer<T>(payload: T, transferables: Transferable[]): TransferDescriptor;
43
+ //# sourceMappingURL=transferable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferable.d.ts","sourceRoot":"","sources":["../../src/transferable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAA;IACrB,IAAI,EAAE,CAAC,CAAA;IACP,aAAa,EAAE,YAAY,EAAE,CAAA;CAC9B;AAQD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,kBAAkB,CAE5E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,kBAAkB,CAAA;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import type { Observable } from 'observable-fns';
2
- import type { ObservablePromise } from '../observable-promise';
3
- import type { $errors, $events, $terminate, $worker } from '../symbols';
4
- import type { TransferDescriptor } from '../transferable';
2
+ import type { ObservablePromise } from '../observable-promise.ts';
3
+ import type { $errors, $events, $terminate, $worker } from '../symbols.ts';
4
+ import type { TransferDescriptor } from '../transferable.ts';
5
5
  interface ObservableLikeSubscription {
6
6
  unsubscribe(): any;
7
7
  }
@@ -36,27 +36,39 @@ interface AnyFunctionThread extends PrivateThreadProps {
36
36
  }
37
37
  interface AnyModuleThread extends PrivateThreadProps {
38
38
  }
39
+ /** Worker thread. Either a `FunctionThread` or a `ModuleThread`. */
39
40
  export type Thread = AnyFunctionThread | AnyModuleThread;
40
41
  export type TransferList = Transferable[];
42
+ /** Worker instance. Either a web worker or a node.js Worker provided by `worker_threads` or `tiny-worker`. */
41
43
  export interface Worker extends EventTarget {
42
44
  postMessage(value: any, transferList?: TransferList): void;
45
+ /** In nodejs 10+ return type is Promise while with tiny-worker and in browser return type is void */
43
46
  terminate(callback?: (error?: Error, exitCode?: number) => void): void | Promise<number>;
44
47
  }
45
48
  export interface ThreadsWorkerOptions extends WorkerOptions {
49
+ /** Whether to apply CORS protection workaround. Defaults to true. */
46
50
  CORSWorkaround?: boolean;
51
+ /** Prefix for the path passed to the Worker constructor. Web worker only. */
47
52
  _baseURL?: string;
53
+ /** Resource limits passed on to Node worker_threads */
48
54
  resourceLimits?: {
55
+ /** The size of a pre-allocated memory range used for generated code. */
49
56
  codeRangeSizeMb?: number;
57
+ /** The maximum size of the main heap in MB. */
50
58
  maxOldGenerationSizeMb?: number;
59
+ /** The maximum size of a heap space for recently created objects. */
51
60
  maxYoungGenerationSizeMb?: number;
52
61
  };
62
+ /** Data passed on to node.js worker_threads. */
53
63
  workerData?: any;
54
64
  }
65
+ /** Worker implementation. Either web worker or a node.js Worker class. */
55
66
  export declare class WorkerImplementation extends EventTarget implements Worker {
56
67
  constructor(path: string, options?: ThreadsWorkerOptions);
57
68
  postMessage(value: any, transferList?: TransferList): void;
58
69
  terminate(): void | Promise<number>;
59
70
  }
71
+ /** Class to spawn workers from a blob or source string. */
60
72
  export declare class BlobWorker extends WorkerImplementation {
61
73
  constructor(blob: Blob, options?: ThreadsWorkerOptions);
62
74
  static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation;
@@ -65,6 +77,7 @@ export interface ImplementationExport {
65
77
  blob: typeof BlobWorker;
66
78
  default: typeof WorkerImplementation;
67
79
  }
80
+ /** Event as emitted by worker thread. Subscribe to using `Thread.events(thread)`. */
68
81
  export declare enum WorkerEventType {
69
82
  internalError = "internalError",
70
83
  message = "message",
@@ -83,3 +96,4 @@ export interface WorkerTerminationEvent {
83
96
  }
84
97
  export type WorkerEvent = WorkerInternalErrorEvent | WorkerMessageEvent<any> | WorkerTerminationEvent;
85
98
  export {};
99
+ //# sourceMappingURL=master.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"master.d.ts","sourceRoot":"","sources":["../../../src/types/master.ts"],"names":[],"mappings":"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"}
@@ -58,3 +58,4 @@ export type WorkerJobStartMessage = {
58
58
  uid: number;
59
59
  resultType: 'observable' | 'promise';
60
60
  };
61
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/types/messages.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,SAAS,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAKD,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAA;IAC9B,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,iBAAiB,CAAC,GAAG,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ,CAAA;AAKD,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,aAAa,kBAAkB;CAChC;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,iBAAiB,CAAC,aAAa,CAAA;IACrC,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACF,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAA;IAC5B,OAAO,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CACtE,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAA;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAA;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,OAAO,CAAC,EAAE,GAAG,CAAA;CACd,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAA;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,YAAY,GAAG,SAAS,CAAA;CACrC,CAAA"}
@@ -9,3 +9,4 @@ export type WorkerModule<Keys extends string> = {
9
9
  [key in Keys]: WorkerFunction;
10
10
  };
11
11
  export {};
12
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/types/worker.ts"],"names":[],"mappings":"AACA,KAAK,aAAa,GAAG,MAAM,IAAI,CAAA;AAE/B,MAAM,WAAW,mBAAmB;IAClC,eAAe,IAAI,OAAO,CAAA;IAC1B,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IACtE,yBAAyB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,aAAa,CAAA;CACzE;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;AAEpE,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,IAAI;KAC7C,GAAG,IAAI,IAAI,GAAG,cAAc;CAC9B,CAAA"}
@@ -0,0 +1,6 @@
1
+ export interface WorkerGlobalScope {
2
+ addEventListener(eventName: string, listener: (event: Event) => void): void;
3
+ postMessage(message: unknown, transferList?: Readonly<Transferable[]>): void;
4
+ removeEventListener(eventName: string, listener: (event: Event) => void): void;
5
+ }
6
+ //# sourceMappingURL=WorkerGlobalScope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../../src/worker/WorkerGlobalScope.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;IAC3E,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,IAAI,CAAA;IAC5E,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;CAC/E"}
@@ -0,0 +1,4 @@
1
+ import type { AbstractedWorkerAPI, WorkerFunction, WorkerModule } from '../types/worker.ts';
2
+ import type { WorkerGlobalScope } from './WorkerGlobalScope.ts';
3
+ export declare function createExpose(implementation: AbstractedWorkerAPI, self: WorkerGlobalScope): (exposed: WorkerFunction | WorkerModule<any>) => void;
4
+ //# sourceMappingURL=expose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expose.d.ts","sourceRoot":"","sources":["../../../src/worker/expose.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAClD,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAI/D,wBAAgB,YAAY,CAAC,cAAc,EAAE,mBAAmB,EAAE,IAAI,EAAE,iBAAiB,aAoI9D,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,UAsE5D"}
@@ -0,0 +1,14 @@
1
+ import type { AbstractedWorkerAPI } from '../types/worker.ts';
2
+ declare const isWorkerRuntime: AbstractedWorkerAPI['isWorkerRuntime'];
3
+ declare const postMessageToMaster: AbstractedWorkerAPI['postMessageToMaster'];
4
+ declare const subscribeToMasterMessages: AbstractedWorkerAPI['subscribeToMasterMessages'];
5
+ declare const addEventListener: (eventName: string, listener: (event: Event) => void) => void;
6
+ declare const postMessage: (message: unknown, transferList?: Readonly<Transferable[]>) => void;
7
+ declare const removeEventListener: (eventName: string, listener: (event: Event) => void) => void;
8
+ export { addEventListener, postMessage, removeEventListener, };
9
+ declare const expose: (exposed: import("../types/worker.ts").WorkerFunction | import("../types/worker.ts").WorkerModule<any>) => void;
10
+ export { isWorkerRuntime, postMessageToMaster, subscribeToMasterMessages, };
11
+ export { registerSerializer } from '../common.ts';
12
+ export { Transfer } from '../transferable.ts';
13
+ export { expose };
14
+ //# sourceMappingURL=worker.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.browser.d.ts","sourceRoot":"","sources":["../../../src/worker/worker.browser.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAM7D,QAAA,MAAM,eAAe,EAAE,mBAAmB,CAAC,iBAAiB,CAG3D,CAAA;AAED,QAAA,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,qBAAqB,CAEnE,CAAA;AAED,QAAA,MAAM,yBAAyB,EAAE,mBAAmB,CAAC,2BAA2B,CAS/E,CAAA;AAED,QAAA,MAAM,gBAAgB,+DAAwB,CAAA;AAC9C,QAAA,MAAM,WAAW,qEAAmB,CAAA;AACpC,QAAA,MAAM,mBAAmB,+DAA2B,CAAA;AAEpD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,mBAAmB,GACpB,CAAA;AAED,QAAA,MAAM,MAAM,iHAIV,CAAA;AAEF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,yBAAyB,GAC1B,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -0,0 +1,25 @@
1
+ import type { MessagePort, TransferListItem } from 'node:worker_threads';
2
+ import type { AbstractedWorkerAPI } from '../types/worker.ts';
3
+ declare const isWorkerRuntime: AbstractedWorkerAPI['isWorkerRuntime'];
4
+ declare const postMessageToMaster: AbstractedWorkerAPI['postMessageToMaster'];
5
+ declare const subscribeToMasterMessages: AbstractedWorkerAPI['subscribeToMasterMessages'];
6
+ declare const addEventListener: {
7
+ (event: "close", listener: () => void): MessagePort;
8
+ (event: "message", listener: (value: any) => void): MessagePort;
9
+ (event: "messageerror", listener: (error: Error) => void): MessagePort;
10
+ (event: string | symbol, listener: (...args: any[]) => void): MessagePort;
11
+ };
12
+ declare const postMessage: (value: any, transferList?: readonly TransferListItem[]) => void;
13
+ declare const removeEventListener: {
14
+ (event: "close", listener: () => void): MessagePort;
15
+ (event: "message", listener: (value: any) => void): MessagePort;
16
+ (event: "messageerror", listener: (error: Error) => void): MessagePort;
17
+ (event: string | symbol, listener: (...args: any[]) => void): MessagePort;
18
+ };
19
+ export { addEventListener, postMessage, removeEventListener, };
20
+ declare const expose: (exposed: import("../types/worker.ts").WorkerFunction | import("../types/worker.ts").WorkerModule<any>) => void;
21
+ export { isWorkerRuntime, postMessageToMaster, subscribeToMasterMessages, };
22
+ export { registerSerializer } from '../common.ts';
23
+ export { Transfer } from '../transferable.ts';
24
+ export { expose };
25
+ //# sourceMappingURL=worker.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.node.d.ts","sourceRoot":"","sources":["../../../src/worker/worker.node.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAKxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAY7D,QAAA,MAAM,eAAe,EAAE,mBAAmB,CAAC,iBAAiB,CAE3D,CAAA;AAED,QAAA,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,qBAAqB,CAEnE,CAAA;AAED,QAAA,MAAM,yBAAyB,EAAE,mBAAmB,CAAC,2BAA2B,CAY/E,CAAA;AAED,QAAA,MAAM,gBAAgB;;;;wCAyB0gR,GAAG;CAzB3+Q,CAAA;AACxD,QAAA,MAAM,WAAW,kEAA2C,CAAA;AAC5D,QAAA,MAAM,mBAAmB;;;;wCAuBoiU,GAAG;CAvBpgU,CAAA;AAE5D,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,mBAAmB,GACpB,CAAA;AAED,QAAA,MAAM,MAAM,iHAIV,CAAA;AAEF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,yBAAyB,GAC1B,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,CAAA"}