@xylabs/threads 4.7.1 → 4.7.3

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 (235) 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/master/index-browser.mjs +988 -0
  4. package/dist/browser/master/index-browser.mjs.map +1 -0
  5. package/dist/browser/worker/worker.browser.mjs +291 -0
  6. package/dist/browser/worker/worker.browser.mjs.map +1 -0
  7. package/dist/neutral/index.mjs +1022 -0
  8. package/dist/neutral/index.mjs.map +1 -0
  9. package/dist/neutral/master/implementation.mjs +264 -0
  10. package/dist/neutral/master/implementation.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 +162 -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/master/index-node.mjs +988 -0
  26. package/dist/node/master/index-node.mjs.map +1 -0
  27. package/dist/node/worker/worker.node.mjs +304 -0
  28. package/dist/node/worker/worker.node.mjs.map +1 -0
  29. package/dist/{common.d.ts → types/common.d.ts} +5 -1
  30. package/dist/types/common.d.ts.map +1 -0
  31. package/dist/types/index.d.ts +9 -0
  32. package/dist/types/index.d.ts.map +1 -0
  33. package/dist/{master → types/master}/get-bundle-url.browser.d.ts +1 -0
  34. package/dist/types/master/get-bundle-url.browser.d.ts.map +1 -0
  35. package/dist/{master → types/master}/implementation.browser.d.ts +2 -1
  36. package/dist/types/master/implementation.browser.d.ts.map +1 -0
  37. package/dist/{master → types/master}/implementation.d.ts +4 -1
  38. package/dist/types/master/implementation.d.ts.map +1 -0
  39. package/dist/{master → types/master}/implementation.node.d.ts +2 -1
  40. package/dist/types/master/implementation.node.d.ts.map +1 -0
  41. package/dist/types/master/index-browser.d.ts +13 -0
  42. package/dist/types/master/index-browser.d.ts.map +1 -0
  43. package/dist/types/master/index-node.d.ts +13 -0
  44. package/dist/types/master/index-node.d.ts.map +1 -0
  45. package/dist/{master → types/master}/invocation-proxy.d.ts +2 -1
  46. package/dist/types/master/invocation-proxy.d.ts.map +1 -0
  47. package/dist/{master → types/master}/pool-types.d.ts +16 -1
  48. package/dist/types/master/pool-types.d.ts.map +1 -0
  49. package/dist/types/master/pool.d.ts +93 -0
  50. package/dist/types/master/pool.d.ts.map +1 -0
  51. package/dist/types/master/register.d.ts +2 -0
  52. package/dist/types/master/register.d.ts.map +1 -0
  53. package/dist/{master → types/master}/spawn.d.ts +12 -2
  54. package/dist/types/master/spawn.d.ts.map +1 -0
  55. package/dist/types/master/thread.d.ts +13 -0
  56. package/dist/types/master/thread.d.ts.map +1 -0
  57. package/dist/{observable-promise.d.ts → types/observable-promise.d.ts} +14 -0
  58. package/dist/types/observable-promise.d.ts.map +1 -0
  59. package/dist/types/observable.d.ts +21 -0
  60. package/dist/types/observable.d.ts.map +1 -0
  61. package/dist/{ponyfills.d.ts → types/ponyfills.d.ts} +1 -0
  62. package/dist/types/ponyfills.d.ts.map +1 -0
  63. package/dist/types/promise.d.ts +6 -0
  64. package/dist/types/promise.d.ts.map +1 -0
  65. package/dist/{serializers.d.ts → types/serializers.d.ts} +1 -0
  66. package/dist/types/serializers.d.ts.map +1 -0
  67. package/dist/{symbols.d.ts → types/symbols.d.ts} +1 -0
  68. package/dist/types/symbols.d.ts.map +1 -0
  69. package/{src/transferable.ts → dist/types/transferable.d.ts} +8 -33
  70. package/dist/types/transferable.d.ts.map +1 -0
  71. package/dist/types/{master.d.ts → types/master.d.ts} +17 -3
  72. package/dist/types/types/master.d.ts.map +1 -0
  73. package/dist/types/{messages.d.ts → types/messages.d.ts} +1 -0
  74. package/dist/types/types/messages.d.ts.map +1 -0
  75. package/dist/types/{worker.d.ts → types/worker.d.ts} +1 -0
  76. package/dist/types/types/worker.d.ts.map +1 -0
  77. package/dist/types/worker/WorkerGlobalScope.d.ts +6 -0
  78. package/dist/types/worker/WorkerGlobalScope.d.ts.map +1 -0
  79. package/dist/types/worker/expose.d.ts +4 -0
  80. package/dist/types/worker/expose.d.ts.map +1 -0
  81. package/dist/types/worker/worker.browser.d.ts +14 -0
  82. package/dist/types/worker/worker.browser.d.ts.map +1 -0
  83. package/dist/types/worker/worker.node.d.ts +25 -0
  84. package/dist/types/worker/worker.node.d.ts.map +1 -0
  85. package/package.json +55 -92
  86. package/dist/common.js +0 -16
  87. package/dist/esm/common.js +0 -16
  88. package/dist/esm/index.js +0 -26
  89. package/dist/esm/master/get-bundle-url.browser.js +0 -25
  90. package/dist/esm/master/implementation.browser.js +0 -65
  91. package/dist/esm/master/implementation.js +0 -43
  92. package/dist/esm/master/implementation.node.js +0 -205
  93. package/dist/esm/master/index.js +0 -14
  94. package/dist/esm/master/invocation-proxy.js +0 -121
  95. package/dist/esm/master/pool-types.js +0 -14
  96. package/dist/esm/master/pool.js +0 -262
  97. package/dist/esm/master/register.js +0 -11
  98. package/dist/esm/master/spawn.js +0 -114
  99. package/dist/esm/master/thread.js +0 -18
  100. package/dist/esm/observable-promise.js +0 -132
  101. package/dist/esm/observable.js +0 -33
  102. package/dist/esm/ponyfills.js +0 -20
  103. package/dist/esm/promise.js +0 -23
  104. package/dist/esm/serializers.js +0 -41
  105. package/dist/esm/symbols.js +0 -8
  106. package/dist/esm/transferable.js +0 -25
  107. package/dist/esm/types/master.js +0 -9
  108. package/dist/esm/types/messages.js +0 -16
  109. package/dist/esm/types/worker.js +0 -2
  110. package/dist/esm/worker/bundle-entry.js +0 -26
  111. package/dist/esm/worker/implementation.browser.js +0 -24
  112. package/dist/esm/worker/implementation.js +0 -19
  113. package/dist/esm/worker/implementation.tiny-worker.js +0 -37
  114. package/dist/esm/worker/implementation.worker_threads.js +0 -41
  115. package/dist/esm/worker/index.js +0 -174
  116. package/dist/esm/worker_threads.js +0 -13
  117. package/dist/index.d.ts +0 -7
  118. package/dist/index.js +0 -26
  119. package/dist/master/get-bundle-url.browser.js +0 -25
  120. package/dist/master/implementation.browser.js +0 -65
  121. package/dist/master/implementation.js +0 -43
  122. package/dist/master/implementation.node.js +0 -205
  123. package/dist/master/index.d.ts +0 -10
  124. package/dist/master/index.js +0 -14
  125. package/dist/master/invocation-proxy.js +0 -121
  126. package/dist/master/pool-types.js +0 -14
  127. package/dist/master/pool.d.ts +0 -50
  128. package/dist/master/pool.js +0 -262
  129. package/dist/master/register.d.ts +0 -1
  130. package/dist/master/register.js +0 -11
  131. package/dist/master/spawn.js +0 -114
  132. package/dist/master/thread.d.ts +0 -8
  133. package/dist/master/thread.js +0 -18
  134. package/dist/observable-promise.js +0 -132
  135. package/dist/observable.d.ts +0 -11
  136. package/dist/observable.js +0 -33
  137. package/dist/ponyfills.js +0 -20
  138. package/dist/promise.d.ts +0 -1
  139. package/dist/promise.js +0 -23
  140. package/dist/serializers.js +0 -41
  141. package/dist/symbols.js +0 -8
  142. package/dist/transferable.d.ts +0 -9
  143. package/dist/transferable.js +0 -25
  144. package/dist/types/master.js +0 -9
  145. package/dist/types/messages.js +0 -16
  146. package/dist/types/worker.js +0 -2
  147. package/dist/worker/bundle-entry.d.ts +0 -1
  148. package/dist/worker/bundle-entry.js +0 -26
  149. package/dist/worker/implementation.browser.d.ts +0 -6
  150. package/dist/worker/implementation.browser.js +0 -24
  151. package/dist/worker/implementation.d.ts +0 -3
  152. package/dist/worker/implementation.js +0 -19
  153. package/dist/worker/implementation.tiny-worker.d.ts +0 -6
  154. package/dist/worker/implementation.tiny-worker.js +0 -37
  155. package/dist/worker/implementation.worker_threads.d.ts +0 -8
  156. package/dist/worker/implementation.worker_threads.js +0 -41
  157. package/dist/worker/index.d.ts +0 -5
  158. package/dist/worker/index.js +0 -174
  159. package/dist/worker_threads.d.ts +0 -8
  160. package/dist/worker_threads.js +0 -13
  161. package/eslint.config.mjs +0 -35
  162. package/index.mjs +0 -10
  163. package/observable.d.ts +0 -2
  164. package/observable.js +0 -2
  165. package/observable.mjs +0 -4
  166. package/register.d.ts +0 -2
  167. package/register.js +0 -2
  168. package/register.mjs +0 -1
  169. package/rollup.config.js +0 -16
  170. package/src/common.ts +0 -19
  171. package/src/index.ts +0 -10
  172. package/src/master/get-bundle-url.browser.ts +0 -31
  173. package/src/master/implementation.browser.ts +0 -82
  174. package/src/master/implementation.node.ts +0 -285
  175. package/src/master/implementation.ts +0 -21
  176. package/src/master/index.ts +0 -19
  177. package/src/master/invocation-proxy.ts +0 -151
  178. package/src/master/pool-types.ts +0 -83
  179. package/src/master/pool.ts +0 -399
  180. package/src/master/register.ts +0 -10
  181. package/src/master/spawn.ts +0 -172
  182. package/src/master/thread.ts +0 -29
  183. package/src/observable-promise.ts +0 -183
  184. package/src/observable.ts +0 -44
  185. package/src/ponyfills.ts +0 -31
  186. package/src/promise.ts +0 -26
  187. package/src/serializers.ts +0 -68
  188. package/src/symbols.ts +0 -5
  189. package/src/types/master.ts +0 -132
  190. package/src/types/messages.ts +0 -72
  191. package/src/types/worker.ts +0 -14
  192. package/src/worker/bundle-entry.ts +0 -10
  193. package/src/worker/implementation.browser.ts +0 -40
  194. package/src/worker/implementation.tiny-worker.ts +0 -55
  195. package/src/worker/implementation.ts +0 -23
  196. package/src/worker/implementation.worker_threads.ts +0 -50
  197. package/src/worker/index.ts +0 -230
  198. package/src/worker_threads.ts +0 -27
  199. package/test/lib/index.ts +0 -1
  200. package/test/lib/serialization.ts +0 -38
  201. package/test/observable-promise.test.ts +0 -205
  202. package/test/observable.test.ts +0 -87
  203. package/test/pool.test.ts +0 -183
  204. package/test/serialization.test.ts +0 -23
  205. package/test/spawn.chromium.mocha.ts +0 -53
  206. package/test/spawn.test.ts +0 -87
  207. package/test/streaming.test.ts +0 -29
  208. package/test/transferables.test.ts +0 -71
  209. package/test/workers/arraybuffer-xor.ts +0 -10
  210. package/test/workers/count-to-five.ts +0 -12
  211. package/test/workers/counter.ts +0 -19
  212. package/test/workers/faulty-function.ts +0 -5
  213. package/test/workers/hello-world.ts +0 -5
  214. package/test/workers/increment.ts +0 -8
  215. package/test/workers/minmax.ts +0 -25
  216. package/test/workers/serialization.ts +0 -13
  217. package/test/workers/top-level-throw.ts +0 -1
  218. package/test-tooling/rollup/app.js +0 -21
  219. package/test-tooling/rollup/rollup.config.ts +0 -14
  220. package/test-tooling/rollup/worker.js +0 -7
  221. package/test-tooling/tsconfig/minimal.ts +0 -12
  222. package/test-tooling/webpack/addition-worker.ts +0 -9
  223. package/test-tooling/webpack/app-with-inlined-worker.ts +0 -28
  224. package/test-tooling/webpack/app.ts +0 -61
  225. package/test-tooling/webpack/pool-worker.ts +0 -5
  226. package/test-tooling/webpack/raw-loader.d.ts +0 -4
  227. package/test-tooling/webpack/webpack.chromium.mocha.ts +0 -21
  228. package/test-tooling/webpack/webpack.node.config.js +0 -29
  229. package/test-tooling/webpack/webpack.web.config.js +0 -28
  230. package/types/is-observable.d.ts +0 -7
  231. package/types/tiny-worker.d.ts +0 -4
  232. package/types/webworker.d.ts +0 -9
  233. package/worker.d.ts +0 -2
  234. package/worker.js +0 -2
  235. package/worker.mjs +0 -6
@@ -1,61 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
- import {
4
- isWorkerRuntime, Pool, spawn, Worker,
5
- } from '../../src/index'
6
-
7
- type AdditionWorker = (a: number, b: number) => number
8
- type HelloWorker = (text: string) => string
9
-
10
- async function test() {
11
- const pool = Pool(() => spawn<HelloWorker>(new Worker('./pool-worker')))
12
- const results = await Promise.all([
13
- pool.queue(hello => hello('World')),
14
- pool.queue(hello => hello('World')),
15
- pool.queue(hello => hello('World')),
16
- pool.queue(hello => hello('World')),
17
- ])
18
- await pool.terminate()
19
-
20
- for (const result of results) {
21
- if (result !== 'Hello, World') {
22
- throw new Error('Unexpected result returned by pool worker: ' + result)
23
- }
24
- }
25
- }
26
-
27
- async function test2() {
28
- // We also want to test if referencing multiple different workers in a module
29
- // built using webpack works
30
-
31
- const add = await spawn<AdditionWorker>(new Worker('./addition-worker'))
32
- const result = await add(2, 3)
33
-
34
- if (result !== 5) {
35
- throw new Error('Unexpected result returned by addition worker: ' + result)
36
- }
37
- }
38
-
39
- async function test3() {
40
- if (!(process as any).browser) {
41
- // Running workers from remote URLs is disabled in node.js
42
- return
43
- }
44
-
45
- const hello = await spawn<HelloWorker>(new Worker('https://infallible-turing-115958.netlify.com/hello-worker.js'))
46
- const result = await hello('World')
47
-
48
- if (result !== 'Hello, World') {
49
- throw new Error('Unexpected result returned by hello worker: ' + result)
50
- }
51
- }
52
-
53
- function test4() {
54
- if (isWorkerRuntime() !== false) {
55
- throw new Error('Expected isWorkerRuntime() to return false. Got: ' + isWorkerRuntime())
56
- }
57
- }
58
-
59
- const testAll = () => Promise.all([test(), test2(), test3(), test4()])
60
-
61
- export default testAll
@@ -1,5 +0,0 @@
1
- import { expose } from '../../src/worker'
2
-
3
- expose(function hello(text: string) {
4
- return `Hello, ${text}`
5
- })
@@ -1,4 +0,0 @@
1
- declare module 'raw-loader!*' {
2
- const content: string
3
- export = content
4
- }
@@ -1,21 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-require-imports */
2
- // NOTE:
3
- // We are gonna test the bundles previously built by the AVA tests (see webpack.test.ts)
4
-
5
- describe('threads webpack browser bundle', function () {
6
- this.timeout(80_000)
7
-
8
- it('works fine', async function () {
9
- const bundle = require('./dist/app.web/main')
10
- await bundle.test()
11
- })
12
- })
13
-
14
- describe('threads webpack browser bundle with inlined worker', function () {
15
- this.timeout(80_000)
16
-
17
- it('works fine', async function () {
18
- const bundle = require('./dist/app-inlined.web/main')
19
- await bundle.test()
20
- })
21
- })
@@ -1,29 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-require-imports */
2
- const path = require('node:path')
3
- const ThreadsPlugin = require('threads-plugin')
4
-
5
- module.exports = {
6
- context: __dirname,
7
- devtool: false,
8
- entry: require.resolve('./app.ts'),
9
- externals: { 'tiny-worker': 'tiny-worker' },
10
- mode: 'development',
11
- module: {
12
- rules: [
13
- {
14
- loader: 'ts-loader',
15
- options: { compilerOptions: { module: 'esnext' } },
16
- test: /\.ts$/,
17
- },
18
- ],
19
- },
20
- output: {
21
- library: 'test',
22
- libraryExport: 'default',
23
- libraryTarget: 'commonjs',
24
- path: path.resolve(__dirname, './dist/app.node'),
25
- },
26
- plugins: [new ThreadsPlugin()],
27
- resolve: { extensions: ['.js', '.ts'] },
28
- target: 'node',
29
- }
@@ -1,28 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-require-imports */
2
- const path = require('node:path')
3
- const ThreadsPlugin = require('threads-plugin')
4
-
5
- module.exports = {
6
- context: __dirname,
7
- devtool: false,
8
- entry: require.resolve('./app.ts'),
9
- mode: 'development',
10
- module: {
11
- rules: [
12
- {
13
- loader: 'ts-loader',
14
- options: { compilerOptions: { module: 'esnext' } },
15
- test: /\.ts$/,
16
- },
17
- ],
18
- },
19
- output: {
20
- library: 'test',
21
- libraryExport: 'default',
22
- libraryTarget: 'commonjs',
23
- path: path.resolve(__dirname, './dist/app.web'),
24
- },
25
- plugins: [new ThreadsPlugin()],
26
- resolve: { extensions: ['.js', '.ts'] },
27
- target: 'web',
28
- }
@@ -1,7 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- declare module 'is-observable-2-1-0' {
3
- import type { Observable } from 'observable-fns'
4
-
5
- function isObservable(thing: any): thing is Observable<any>
6
- export = isObservable
7
- }
@@ -1,4 +0,0 @@
1
- declare module 'tiny-worker' {
2
- const TinyWorker: typeof Worker
3
- export = TinyWorker
4
- }
@@ -1,9 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /// <reference no-default-lib="true"/>
3
- /// <reference lib="webworker" />
4
-
5
- interface WorkerGlobalScope {
6
- addEventListener(eventName: string, listener: (event: Event) => void): void
7
- postMessage(message: any, transferables?: any[]): void
8
- removeEventListener(eventName: string, listener: (event: Event) => void): void
9
- }
package/worker.d.ts DELETED
@@ -1,2 +0,0 @@
1
- /* eslint-disable import-x/no-internal-modules */
2
- export * from './dist/worker/index'
package/worker.js DELETED
@@ -1,2 +0,0 @@
1
- // eslint-disable-next-line @typescript-eslint/no-require-imports
2
- module.exports = require('./dist/worker/index')
package/worker.mjs DELETED
@@ -1,6 +0,0 @@
1
- import * as WorkerContext from './dist/worker/index.js'
2
-
3
- export const expose = WorkerContext.expose
4
- export const registerSerializer = WorkerContext.registerSerializer
5
- export const Transfer = WorkerContext.Transfer
6
- export const isWorkerRuntime = WorkerContext.isWorkerRuntime