@effectionx/worker 0.3.2 → 0.4.1

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 (270) hide show
  1. package/LICENSE +9 -0
  2. package/dist/message-channel.d.ts.map +1 -0
  3. package/dist/mod.d.ts +4 -0
  4. package/dist/mod.d.ts.map +1 -0
  5. package/dist/test-simple-worker.d.ts +2 -0
  6. package/dist/test-simple-worker.d.ts.map +1 -0
  7. package/dist/test-simple-worker.js +11 -0
  8. package/dist/tsconfig.tsbuildinfo +1 -0
  9. package/dist/types.d.ts.map +1 -0
  10. package/{esm → dist}/worker-main.d.ts +1 -1
  11. package/dist/worker-main.d.ts.map +1 -0
  12. package/{esm → dist}/worker-main.js +34 -16
  13. package/dist/worker.d.ts.map +1 -0
  14. package/{esm → dist}/worker.js +3 -4
  15. package/message-channel.ts +13 -0
  16. package/mod.ts +3 -0
  17. package/package.json +21 -15
  18. package/test-assets/boom-result-worker.ts +5 -0
  19. package/test-assets/boom-worker.ts +7 -0
  20. package/test-assets/counter-worker.ts +15 -0
  21. package/test-assets/crash-worker.ts +1 -0
  22. package/test-assets/echo-worker.ts +7 -0
  23. package/test-assets/result-worker.ts +5 -0
  24. package/test-assets/shutdown-worker.ts +24 -0
  25. package/test-assets/suspend-worker.ts +4 -0
  26. package/test-simple-worker.ts +12 -0
  27. package/tsconfig.json +20 -0
  28. package/types.ts +38 -0
  29. package/worker-main.ts +248 -0
  30. package/worker.test.ts +179 -0
  31. package/worker.ts +159 -0
  32. package/esm/_dnt.shims.d.ts +0 -2
  33. package/esm/_dnt.shims.d.ts.map +0 -1
  34. package/esm/_dnt.shims.js +0 -57
  35. package/esm/deps/jsr.io/@std/assert/1.0.16/almost_equals.d.ts +0 -29
  36. package/esm/deps/jsr.io/@std/assert/1.0.16/almost_equals.d.ts.map +0 -1
  37. package/esm/deps/jsr.io/@std/assert/1.0.16/almost_equals.js +0 -46
  38. package/esm/deps/jsr.io/@std/assert/1.0.16/array_includes.d.ts +0 -24
  39. package/esm/deps/jsr.io/@std/assert/1.0.16/array_includes.d.ts.map +0 -1
  40. package/esm/deps/jsr.io/@std/assert/1.0.16/array_includes.js +0 -46
  41. package/esm/deps/jsr.io/@std/assert/1.0.16/assert.d.ts +0 -16
  42. package/esm/deps/jsr.io/@std/assert/1.0.16/assert.d.ts.map +0 -1
  43. package/esm/deps/jsr.io/@std/assert/1.0.16/assert.js +0 -22
  44. package/esm/deps/jsr.io/@std/assert/1.0.16/assertion_error.d.ts +0 -26
  45. package/esm/deps/jsr.io/@std/assert/1.0.16/assertion_error.d.ts.map +0 -1
  46. package/esm/deps/jsr.io/@std/assert/1.0.16/assertion_error.js +0 -30
  47. package/esm/deps/jsr.io/@std/assert/1.0.16/equal.d.ts +0 -17
  48. package/esm/deps/jsr.io/@std/assert/1.0.16/equal.d.ts.map +0 -1
  49. package/esm/deps/jsr.io/@std/assert/1.0.16/equal.js +0 -186
  50. package/esm/deps/jsr.io/@std/assert/1.0.16/equals.d.ts +0 -35
  51. package/esm/deps/jsr.io/@std/assert/1.0.16/equals.d.ts.map +0 -1
  52. package/esm/deps/jsr.io/@std/assert/1.0.16/equals.js +0 -59
  53. package/esm/deps/jsr.io/@std/assert/1.0.16/exists.d.ts +0 -18
  54. package/esm/deps/jsr.io/@std/assert/1.0.16/exists.d.ts.map +0 -1
  55. package/esm/deps/jsr.io/@std/assert/1.0.16/exists.js +0 -27
  56. package/esm/deps/jsr.io/@std/assert/1.0.16/fail.d.ts +0 -15
  57. package/esm/deps/jsr.io/@std/assert/1.0.16/fail.d.ts.map +0 -1
  58. package/esm/deps/jsr.io/@std/assert/1.0.16/fail.js +0 -20
  59. package/esm/deps/jsr.io/@std/assert/1.0.16/false.d.ts +0 -18
  60. package/esm/deps/jsr.io/@std/assert/1.0.16/false.d.ts.map +0 -1
  61. package/esm/deps/jsr.io/@std/assert/1.0.16/false.js +0 -22
  62. package/esm/deps/jsr.io/@std/assert/1.0.16/greater.d.ts +0 -20
  63. package/esm/deps/jsr.io/@std/assert/1.0.16/greater.d.ts.map +0 -1
  64. package/esm/deps/jsr.io/@std/assert/1.0.16/greater.js +0 -29
  65. package/esm/deps/jsr.io/@std/assert/1.0.16/greater_or_equal.d.ts +0 -20
  66. package/esm/deps/jsr.io/@std/assert/1.0.16/greater_or_equal.d.ts.map +0 -1
  67. package/esm/deps/jsr.io/@std/assert/1.0.16/greater_or_equal.js +0 -29
  68. package/esm/deps/jsr.io/@std/assert/1.0.16/instance_of.d.ts +0 -23
  69. package/esm/deps/jsr.io/@std/assert/1.0.16/instance_of.d.ts.map +0 -1
  70. package/esm/deps/jsr.io/@std/assert/1.0.16/instance_of.js +0 -52
  71. package/esm/deps/jsr.io/@std/assert/1.0.16/is_error.d.ts +0 -25
  72. package/esm/deps/jsr.io/@std/assert/1.0.16/is_error.d.ts.map +0 -1
  73. package/esm/deps/jsr.io/@std/assert/1.0.16/is_error.js +0 -53
  74. package/esm/deps/jsr.io/@std/assert/1.0.16/less.d.ts +0 -19
  75. package/esm/deps/jsr.io/@std/assert/1.0.16/less.d.ts.map +0 -1
  76. package/esm/deps/jsr.io/@std/assert/1.0.16/less.js +0 -28
  77. package/esm/deps/jsr.io/@std/assert/1.0.16/less_or_equal.d.ts +0 -20
  78. package/esm/deps/jsr.io/@std/assert/1.0.16/less_or_equal.d.ts.map +0 -1
  79. package/esm/deps/jsr.io/@std/assert/1.0.16/less_or_equal.js +0 -29
  80. package/esm/deps/jsr.io/@std/assert/1.0.16/match.d.ts +0 -18
  81. package/esm/deps/jsr.io/@std/assert/1.0.16/match.d.ts.map +0 -1
  82. package/esm/deps/jsr.io/@std/assert/1.0.16/match.js +0 -26
  83. package/esm/deps/jsr.io/@std/assert/1.0.16/mod.d.ts +0 -44
  84. package/esm/deps/jsr.io/@std/assert/1.0.16/mod.d.ts.map +0 -1
  85. package/esm/deps/jsr.io/@std/assert/1.0.16/mod.js +0 -45
  86. package/esm/deps/jsr.io/@std/assert/1.0.16/not_equals.d.ts +0 -21
  87. package/esm/deps/jsr.io/@std/assert/1.0.16/not_equals.d.ts.map +0 -1
  88. package/esm/deps/jsr.io/@std/assert/1.0.16/not_equals.js +0 -33
  89. package/esm/deps/jsr.io/@std/assert/1.0.16/not_instance_of.d.ts +0 -20
  90. package/esm/deps/jsr.io/@std/assert/1.0.16/not_instance_of.d.ts.map +0 -1
  91. package/esm/deps/jsr.io/@std/assert/1.0.16/not_instance_of.js +0 -29
  92. package/esm/deps/jsr.io/@std/assert/1.0.16/not_match.d.ts +0 -18
  93. package/esm/deps/jsr.io/@std/assert/1.0.16/not_match.d.ts.map +0 -1
  94. package/esm/deps/jsr.io/@std/assert/1.0.16/not_match.js +0 -26
  95. package/esm/deps/jsr.io/@std/assert/1.0.16/not_strict_equals.d.ts +0 -23
  96. package/esm/deps/jsr.io/@std/assert/1.0.16/not_strict_equals.d.ts.map +0 -1
  97. package/esm/deps/jsr.io/@std/assert/1.0.16/not_strict_equals.js +0 -32
  98. package/esm/deps/jsr.io/@std/assert/1.0.16/object_match.d.ts +0 -29
  99. package/esm/deps/jsr.io/@std/assert/1.0.16/object_match.d.ts.map +0 -1
  100. package/esm/deps/jsr.io/@std/assert/1.0.16/object_match.js +0 -167
  101. package/esm/deps/jsr.io/@std/assert/1.0.16/rejects.d.ts +0 -42
  102. package/esm/deps/jsr.io/@std/assert/1.0.16/rejects.d.ts.map +0 -1
  103. package/esm/deps/jsr.io/@std/assert/1.0.16/rejects.js +0 -53
  104. package/esm/deps/jsr.io/@std/assert/1.0.16/strict_equals.d.ts +0 -24
  105. package/esm/deps/jsr.io/@std/assert/1.0.16/strict_equals.d.ts.map +0 -1
  106. package/esm/deps/jsr.io/@std/assert/1.0.16/strict_equals.js +0 -58
  107. package/esm/deps/jsr.io/@std/assert/1.0.16/string_includes.d.ts +0 -18
  108. package/esm/deps/jsr.io/@std/assert/1.0.16/string_includes.d.ts.map +0 -1
  109. package/esm/deps/jsr.io/@std/assert/1.0.16/string_includes.js +0 -26
  110. package/esm/deps/jsr.io/@std/assert/1.0.16/throws.d.ts +0 -45
  111. package/esm/deps/jsr.io/@std/assert/1.0.16/throws.d.ts.map +0 -1
  112. package/esm/deps/jsr.io/@std/assert/1.0.16/throws.js +0 -44
  113. package/esm/deps/jsr.io/@std/assert/1.0.16/unimplemented.d.ts +0 -15
  114. package/esm/deps/jsr.io/@std/assert/1.0.16/unimplemented.d.ts.map +0 -1
  115. package/esm/deps/jsr.io/@std/assert/1.0.16/unimplemented.js +0 -20
  116. package/esm/deps/jsr.io/@std/assert/1.0.16/unreachable.d.ts +0 -15
  117. package/esm/deps/jsr.io/@std/assert/1.0.16/unreachable.d.ts.map +0 -1
  118. package/esm/deps/jsr.io/@std/assert/1.0.16/unreachable.js +0 -20
  119. package/esm/deps/jsr.io/@std/internal/1.0.12/build_message.d.ts +0 -80
  120. package/esm/deps/jsr.io/@std/internal/1.0.12/build_message.d.ts.map +0 -1
  121. package/esm/deps/jsr.io/@std/internal/1.0.12/build_message.js +0 -116
  122. package/esm/deps/jsr.io/@std/internal/1.0.12/diff.d.ts +0 -140
  123. package/esm/deps/jsr.io/@std/internal/1.0.12/diff.d.ts.map +0 -1
  124. package/esm/deps/jsr.io/@std/internal/1.0.12/diff.js +0 -276
  125. package/esm/deps/jsr.io/@std/internal/1.0.12/diff_str.d.ts +0 -99
  126. package/esm/deps/jsr.io/@std/internal/1.0.12/diff_str.d.ts.map +0 -1
  127. package/esm/deps/jsr.io/@std/internal/1.0.12/diff_str.js +0 -182
  128. package/esm/deps/jsr.io/@std/internal/1.0.12/format.d.ts +0 -29
  129. package/esm/deps/jsr.io/@std/internal/1.0.12/format.d.ts.map +0 -1
  130. package/esm/deps/jsr.io/@std/internal/1.0.12/format.js +0 -70
  131. package/esm/deps/jsr.io/@std/internal/1.0.12/styles.d.ts +0 -159
  132. package/esm/deps/jsr.io/@std/internal/1.0.12/styles.d.ts.map +0 -1
  133. package/esm/deps/jsr.io/@std/internal/1.0.12/styles.js +0 -207
  134. package/esm/deps/jsr.io/@std/internal/1.0.12/types.d.ts +0 -25
  135. package/esm/deps/jsr.io/@std/internal/1.0.12/types.d.ts.map +0 -1
  136. package/esm/deps/jsr.io/@std/internal/1.0.12/types.js +0 -3
  137. package/esm/message-channel.d.ts.map +0 -1
  138. package/esm/mod.d.ts +0 -4
  139. package/esm/mod.d.ts.map +0 -1
  140. package/esm/package.json +0 -3
  141. package/esm/types.d.ts.map +0 -1
  142. package/esm/worker-main.d.ts.map +0 -1
  143. package/esm/worker.d.ts.map +0 -1
  144. package/script/_dnt.shims.d.ts +0 -2
  145. package/script/_dnt.shims.d.ts.map +0 -1
  146. package/script/_dnt.shims.js +0 -60
  147. package/script/deps/jsr.io/@std/assert/1.0.16/almost_equals.d.ts +0 -29
  148. package/script/deps/jsr.io/@std/assert/1.0.16/almost_equals.d.ts.map +0 -1
  149. package/script/deps/jsr.io/@std/assert/1.0.16/almost_equals.js +0 -49
  150. package/script/deps/jsr.io/@std/assert/1.0.16/array_includes.d.ts +0 -24
  151. package/script/deps/jsr.io/@std/assert/1.0.16/array_includes.d.ts.map +0 -1
  152. package/script/deps/jsr.io/@std/assert/1.0.16/array_includes.js +0 -49
  153. package/script/deps/jsr.io/@std/assert/1.0.16/assert.d.ts +0 -16
  154. package/script/deps/jsr.io/@std/assert/1.0.16/assert.d.ts.map +0 -1
  155. package/script/deps/jsr.io/@std/assert/1.0.16/assert.js +0 -25
  156. package/script/deps/jsr.io/@std/assert/1.0.16/assertion_error.d.ts +0 -26
  157. package/script/deps/jsr.io/@std/assert/1.0.16/assertion_error.d.ts.map +0 -1
  158. package/script/deps/jsr.io/@std/assert/1.0.16/assertion_error.js +0 -34
  159. package/script/deps/jsr.io/@std/assert/1.0.16/equal.d.ts +0 -17
  160. package/script/deps/jsr.io/@std/assert/1.0.16/equal.d.ts.map +0 -1
  161. package/script/deps/jsr.io/@std/assert/1.0.16/equal.js +0 -222
  162. package/script/deps/jsr.io/@std/assert/1.0.16/equals.d.ts +0 -35
  163. package/script/deps/jsr.io/@std/assert/1.0.16/equals.d.ts.map +0 -1
  164. package/script/deps/jsr.io/@std/assert/1.0.16/equals.js +0 -62
  165. package/script/deps/jsr.io/@std/assert/1.0.16/exists.d.ts +0 -18
  166. package/script/deps/jsr.io/@std/assert/1.0.16/exists.d.ts.map +0 -1
  167. package/script/deps/jsr.io/@std/assert/1.0.16/exists.js +0 -30
  168. package/script/deps/jsr.io/@std/assert/1.0.16/fail.d.ts +0 -15
  169. package/script/deps/jsr.io/@std/assert/1.0.16/fail.d.ts.map +0 -1
  170. package/script/deps/jsr.io/@std/assert/1.0.16/fail.js +0 -23
  171. package/script/deps/jsr.io/@std/assert/1.0.16/false.d.ts +0 -18
  172. package/script/deps/jsr.io/@std/assert/1.0.16/false.d.ts.map +0 -1
  173. package/script/deps/jsr.io/@std/assert/1.0.16/false.js +0 -25
  174. package/script/deps/jsr.io/@std/assert/1.0.16/greater.d.ts +0 -20
  175. package/script/deps/jsr.io/@std/assert/1.0.16/greater.d.ts.map +0 -1
  176. package/script/deps/jsr.io/@std/assert/1.0.16/greater.js +0 -32
  177. package/script/deps/jsr.io/@std/assert/1.0.16/greater_or_equal.d.ts +0 -20
  178. package/script/deps/jsr.io/@std/assert/1.0.16/greater_or_equal.d.ts.map +0 -1
  179. package/script/deps/jsr.io/@std/assert/1.0.16/greater_or_equal.js +0 -32
  180. package/script/deps/jsr.io/@std/assert/1.0.16/instance_of.d.ts +0 -23
  181. package/script/deps/jsr.io/@std/assert/1.0.16/instance_of.d.ts.map +0 -1
  182. package/script/deps/jsr.io/@std/assert/1.0.16/instance_of.js +0 -55
  183. package/script/deps/jsr.io/@std/assert/1.0.16/is_error.d.ts +0 -25
  184. package/script/deps/jsr.io/@std/assert/1.0.16/is_error.d.ts.map +0 -1
  185. package/script/deps/jsr.io/@std/assert/1.0.16/is_error.js +0 -56
  186. package/script/deps/jsr.io/@std/assert/1.0.16/less.d.ts +0 -19
  187. package/script/deps/jsr.io/@std/assert/1.0.16/less.d.ts.map +0 -1
  188. package/script/deps/jsr.io/@std/assert/1.0.16/less.js +0 -31
  189. package/script/deps/jsr.io/@std/assert/1.0.16/less_or_equal.d.ts +0 -20
  190. package/script/deps/jsr.io/@std/assert/1.0.16/less_or_equal.d.ts.map +0 -1
  191. package/script/deps/jsr.io/@std/assert/1.0.16/less_or_equal.js +0 -32
  192. package/script/deps/jsr.io/@std/assert/1.0.16/match.d.ts +0 -18
  193. package/script/deps/jsr.io/@std/assert/1.0.16/match.d.ts.map +0 -1
  194. package/script/deps/jsr.io/@std/assert/1.0.16/match.js +0 -29
  195. package/script/deps/jsr.io/@std/assert/1.0.16/mod.d.ts +0 -44
  196. package/script/deps/jsr.io/@std/assert/1.0.16/mod.d.ts.map +0 -1
  197. package/script/deps/jsr.io/@std/assert/1.0.16/mod.js +0 -61
  198. package/script/deps/jsr.io/@std/assert/1.0.16/not_equals.d.ts +0 -21
  199. package/script/deps/jsr.io/@std/assert/1.0.16/not_equals.d.ts.map +0 -1
  200. package/script/deps/jsr.io/@std/assert/1.0.16/not_equals.js +0 -36
  201. package/script/deps/jsr.io/@std/assert/1.0.16/not_instance_of.d.ts +0 -20
  202. package/script/deps/jsr.io/@std/assert/1.0.16/not_instance_of.d.ts.map +0 -1
  203. package/script/deps/jsr.io/@std/assert/1.0.16/not_instance_of.js +0 -32
  204. package/script/deps/jsr.io/@std/assert/1.0.16/not_match.d.ts +0 -18
  205. package/script/deps/jsr.io/@std/assert/1.0.16/not_match.d.ts.map +0 -1
  206. package/script/deps/jsr.io/@std/assert/1.0.16/not_match.js +0 -29
  207. package/script/deps/jsr.io/@std/assert/1.0.16/not_strict_equals.d.ts +0 -23
  208. package/script/deps/jsr.io/@std/assert/1.0.16/not_strict_equals.d.ts.map +0 -1
  209. package/script/deps/jsr.io/@std/assert/1.0.16/not_strict_equals.js +0 -35
  210. package/script/deps/jsr.io/@std/assert/1.0.16/object_match.d.ts +0 -29
  211. package/script/deps/jsr.io/@std/assert/1.0.16/object_match.d.ts.map +0 -1
  212. package/script/deps/jsr.io/@std/assert/1.0.16/object_match.js +0 -170
  213. package/script/deps/jsr.io/@std/assert/1.0.16/rejects.d.ts +0 -42
  214. package/script/deps/jsr.io/@std/assert/1.0.16/rejects.d.ts.map +0 -1
  215. package/script/deps/jsr.io/@std/assert/1.0.16/rejects.js +0 -56
  216. package/script/deps/jsr.io/@std/assert/1.0.16/strict_equals.d.ts +0 -24
  217. package/script/deps/jsr.io/@std/assert/1.0.16/strict_equals.d.ts.map +0 -1
  218. package/script/deps/jsr.io/@std/assert/1.0.16/strict_equals.js +0 -61
  219. package/script/deps/jsr.io/@std/assert/1.0.16/string_includes.d.ts +0 -18
  220. package/script/deps/jsr.io/@std/assert/1.0.16/string_includes.d.ts.map +0 -1
  221. package/script/deps/jsr.io/@std/assert/1.0.16/string_includes.js +0 -29
  222. package/script/deps/jsr.io/@std/assert/1.0.16/throws.d.ts +0 -45
  223. package/script/deps/jsr.io/@std/assert/1.0.16/throws.d.ts.map +0 -1
  224. package/script/deps/jsr.io/@std/assert/1.0.16/throws.js +0 -47
  225. package/script/deps/jsr.io/@std/assert/1.0.16/unimplemented.d.ts +0 -15
  226. package/script/deps/jsr.io/@std/assert/1.0.16/unimplemented.d.ts.map +0 -1
  227. package/script/deps/jsr.io/@std/assert/1.0.16/unimplemented.js +0 -23
  228. package/script/deps/jsr.io/@std/assert/1.0.16/unreachable.d.ts +0 -15
  229. package/script/deps/jsr.io/@std/assert/1.0.16/unreachable.d.ts.map +0 -1
  230. package/script/deps/jsr.io/@std/assert/1.0.16/unreachable.js +0 -23
  231. package/script/deps/jsr.io/@std/internal/1.0.12/build_message.d.ts +0 -80
  232. package/script/deps/jsr.io/@std/internal/1.0.12/build_message.d.ts.map +0 -1
  233. package/script/deps/jsr.io/@std/internal/1.0.12/build_message.js +0 -121
  234. package/script/deps/jsr.io/@std/internal/1.0.12/diff.d.ts +0 -140
  235. package/script/deps/jsr.io/@std/internal/1.0.12/diff.d.ts.map +0 -1
  236. package/script/deps/jsr.io/@std/internal/1.0.12/diff.js +0 -283
  237. package/script/deps/jsr.io/@std/internal/1.0.12/diff_str.d.ts +0 -99
  238. package/script/deps/jsr.io/@std/internal/1.0.12/diff_str.d.ts.map +0 -1
  239. package/script/deps/jsr.io/@std/internal/1.0.12/diff_str.js +0 -188
  240. package/script/deps/jsr.io/@std/internal/1.0.12/format.d.ts +0 -29
  241. package/script/deps/jsr.io/@std/internal/1.0.12/format.d.ts.map +0 -1
  242. package/script/deps/jsr.io/@std/internal/1.0.12/format.js +0 -106
  243. package/script/deps/jsr.io/@std/internal/1.0.12/styles.d.ts +0 -159
  244. package/script/deps/jsr.io/@std/internal/1.0.12/styles.d.ts.map +0 -1
  245. package/script/deps/jsr.io/@std/internal/1.0.12/styles.js +0 -252
  246. package/script/deps/jsr.io/@std/internal/1.0.12/types.d.ts +0 -25
  247. package/script/deps/jsr.io/@std/internal/1.0.12/types.d.ts.map +0 -1
  248. package/script/deps/jsr.io/@std/internal/1.0.12/types.js +0 -4
  249. package/script/message-channel.d.ts +0 -3
  250. package/script/message-channel.d.ts.map +0 -1
  251. package/script/message-channel.js +0 -16
  252. package/script/mod.d.ts +0 -4
  253. package/script/mod.d.ts.map +0 -1
  254. package/script/mod.js +0 -19
  255. package/script/package.json +0 -3
  256. package/script/types.d.ts +0 -33
  257. package/script/types.d.ts.map +0 -1
  258. package/script/types.js +0 -2
  259. package/script/worker-main.d.ts +0 -84
  260. package/script/worker-main.d.ts.map +0 -1
  261. package/script/worker-main.js +0 -190
  262. package/script/worker.d.ts +0 -63
  263. package/script/worker.d.ts.map +0 -1
  264. package/script/worker.js +0 -124
  265. /package/{esm → dist}/message-channel.d.ts +0 -0
  266. /package/{esm → dist}/message-channel.js +0 -0
  267. /package/{esm → dist}/mod.js +0 -0
  268. /package/{esm → dist}/types.d.ts +0 -0
  269. /package/{esm → dist}/types.js +0 -0
  270. /package/{esm → dist}/worker.d.ts +0 -0
@@ -1,63 +0,0 @@
1
- import { type Operation } from "effection";
2
- /**
3
- * Argument received by workerMain function
4
- *
5
- * @template TSend - value main thread will send to the worker
6
- * @template TRecv - value main thread will receive from the worker
7
- * @template TData - data passed from the main thread to the worker during initialization
8
- */
9
- export interface WorkerResource<TSend, TRecv, TReturn> extends Operation<TReturn> {
10
- send(data: TSend): Operation<TRecv>;
11
- }
12
- /**
13
- * Use on the main thread to create and exeecute a well behaved web worker.
14
- *
15
- * @example Compute a single value
16
- * ```ts
17
- * import { run } from "effection";
18
- * import { useWorker } from "@effectionx/worker"
19
- *
20
- * await run(function*() {
21
- * const worker = yield* useWorker("script.ts", { type: "module" });
22
- *
23
- * try {
24
- * const result = yield* worker;
25
- * } catch (e) {
26
- * console.error(e);
27
- * }
28
- * });
29
- * ```
30
- *
31
- * @example Compute multipe values
32
- * ```ts
33
- * import { run } from "effection";
34
- * import { useWorker } from "@effectionx/worker"
35
- *
36
- * await run(function*() {
37
- * const worker = yield* useWorker("script.ts", { type: "module" });
38
- *
39
- * try {
40
- * const result1 = yield* worker.send("Tom");
41
- * const result2 = yield* worker.send("Dick");
42
- * const result2 = yield* worker.send("Harry");
43
- *
44
- * // get the last result
45
- * const finalResult = yield* worker;
46
- * } catch (e) {
47
- * console.error(e);
48
- * }
49
- * });
50
- * ```
51
- *
52
- * @param url URL or string of script
53
- * @param options WorkerOptions
54
- * @template TSend - value main thread will send to the worker
55
- * @template TRecv - value main thread will receive from the worker
56
- * @template TReturn - worker operation return value
57
- * @template TData - data passed from the main thread to the worker during initialization
58
- * @returns {Operation<WorkerResource<TSend, TRecv>>}
59
- */
60
- export declare function useWorker<TSend, TRecv, TReturn, TData>(url: string | URL, options?: WorkerOptions & {
61
- data?: TData;
62
- }): Operation<WorkerResource<TSend, TRecv, TReturn>>;
63
- //# sourceMappingURL=worker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,SAAS,EAKf,MAAM,WAAW,CAAC;AAInB;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CACnD,SAAQ,SAAS,CAAC,OAAO,CAAC;IAC1B,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EACpD,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,CAAC,EAAE,aAAa,GAAG;IAAE,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,GACzC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAgElD"}
package/script/worker.js DELETED
@@ -1,124 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useWorker = useWorker;
4
- const mod_js_1 = require("./deps/jsr.io/@std/assert/1.0.16/mod.js");
5
- const effection_1 = require("effection");
6
- const message_channel_js_1 = require("./message-channel.js");
7
- /**
8
- * Use on the main thread to create and exeecute a well behaved web worker.
9
- *
10
- * @example Compute a single value
11
- * ```ts
12
- * import { run } from "effection";
13
- * import { useWorker } from "@effectionx/worker"
14
- *
15
- * await run(function*() {
16
- * const worker = yield* useWorker("script.ts", { type: "module" });
17
- *
18
- * try {
19
- * const result = yield* worker;
20
- * } catch (e) {
21
- * console.error(e);
22
- * }
23
- * });
24
- * ```
25
- *
26
- * @example Compute multipe values
27
- * ```ts
28
- * import { run } from "effection";
29
- * import { useWorker } from "@effectionx/worker"
30
- *
31
- * await run(function*() {
32
- * const worker = yield* useWorker("script.ts", { type: "module" });
33
- *
34
- * try {
35
- * const result1 = yield* worker.send("Tom");
36
- * const result2 = yield* worker.send("Dick");
37
- * const result2 = yield* worker.send("Harry");
38
- *
39
- * // get the last result
40
- * const finalResult = yield* worker;
41
- * } catch (e) {
42
- * console.error(e);
43
- * }
44
- * });
45
- * ```
46
- *
47
- * @param url URL or string of script
48
- * @param options WorkerOptions
49
- * @template TSend - value main thread will send to the worker
50
- * @template TRecv - value main thread will receive from the worker
51
- * @template TReturn - worker operation return value
52
- * @template TData - data passed from the main thread to the worker during initialization
53
- * @returns {Operation<WorkerResource<TSend, TRecv>>}
54
- */
55
- function useWorker(url, options) {
56
- return (0, effection_1.resource)(function* (provide) {
57
- let outcome = (0, effection_1.withResolvers)();
58
- let worker = new Worker(url, options);
59
- let subscription = yield* (0, effection_1.on)(worker, "message");
60
- let onclose = (event) => {
61
- if (event.data.type === "close") {
62
- let { result } = event.data;
63
- if (result.ok) {
64
- outcome.resolve(result.value);
65
- }
66
- else {
67
- outcome.reject(result.error);
68
- }
69
- }
70
- };
71
- worker.addEventListener("message", onclose);
72
- let first = yield* subscription.next();
73
- (0, mod_js_1.assert)(first.value.data.type === "open", `expected first message to arrive from worker to be of type "open", but was: ${first.value.data.type}`);
74
- yield* (0, effection_1.spawn)(function* () {
75
- let event = yield* (0, effection_1.once)(worker, "error");
76
- event.preventDefault();
77
- throw event.error;
78
- });
79
- try {
80
- worker.postMessage({
81
- type: "init",
82
- data: options?.data,
83
- });
84
- yield* provide({
85
- *send(value) {
86
- let channel = yield* (0, message_channel_js_1.useMessageChannel)();
87
- worker.postMessage({
88
- type: "send",
89
- value,
90
- response: channel.port2,
91
- }, [channel.port2]);
92
- channel.port1.start();
93
- let event = yield* (0, effection_1.once)(channel.port1, "message");
94
- let result = event.data;
95
- if (result.ok) {
96
- return result.value;
97
- }
98
- else {
99
- throw result.error;
100
- }
101
- },
102
- [Symbol.iterator]: outcome.operation[Symbol.iterator],
103
- });
104
- }
105
- finally {
106
- worker.postMessage({ type: "close" });
107
- yield* settled(outcome.operation);
108
- worker.removeEventListener("message", onclose);
109
- }
110
- });
111
- }
112
- function settled(operation) {
113
- return {
114
- *[Symbol.iterator]() {
115
- try {
116
- yield* operation;
117
- return (0, effection_1.Ok)(void 0);
118
- }
119
- catch (error) {
120
- return (0, effection_1.Err)(error);
121
- }
122
- },
123
- };
124
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes