@effectionx/worker 0.3.2 → 0.4.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 (269) hide show
  1. package/dist/message-channel.d.ts.map +1 -0
  2. package/dist/mod.d.ts +4 -0
  3. package/dist/mod.d.ts.map +1 -0
  4. package/dist/test-simple-worker.d.ts +2 -0
  5. package/dist/test-simple-worker.d.ts.map +1 -0
  6. package/dist/test-simple-worker.js +11 -0
  7. package/dist/tsconfig.tsbuildinfo +1 -0
  8. package/dist/types.d.ts.map +1 -0
  9. package/{esm → dist}/worker-main.d.ts +1 -1
  10. package/dist/worker-main.d.ts.map +1 -0
  11. package/{esm → dist}/worker-main.js +34 -16
  12. package/dist/worker.d.ts.map +1 -0
  13. package/{esm → dist}/worker.js +3 -4
  14. package/message-channel.ts +13 -0
  15. package/mod.ts +3 -0
  16. package/package.json +22 -16
  17. package/test-assets/boom-result-worker.ts +5 -0
  18. package/test-assets/boom-worker.ts +7 -0
  19. package/test-assets/counter-worker.ts +15 -0
  20. package/test-assets/crash-worker.ts +1 -0
  21. package/test-assets/echo-worker.ts +7 -0
  22. package/test-assets/result-worker.ts +5 -0
  23. package/test-assets/shutdown-worker.ts +24 -0
  24. package/test-assets/suspend-worker.ts +4 -0
  25. package/test-simple-worker.ts +12 -0
  26. package/tsconfig.json +20 -0
  27. package/types.ts +38 -0
  28. package/worker-main.ts +248 -0
  29. package/worker.test.ts +179 -0
  30. package/worker.ts +159 -0
  31. package/esm/_dnt.shims.d.ts +0 -2
  32. package/esm/_dnt.shims.d.ts.map +0 -1
  33. package/esm/_dnt.shims.js +0 -57
  34. package/esm/deps/jsr.io/@std/assert/1.0.16/almost_equals.d.ts +0 -29
  35. package/esm/deps/jsr.io/@std/assert/1.0.16/almost_equals.d.ts.map +0 -1
  36. package/esm/deps/jsr.io/@std/assert/1.0.16/almost_equals.js +0 -46
  37. package/esm/deps/jsr.io/@std/assert/1.0.16/array_includes.d.ts +0 -24
  38. package/esm/deps/jsr.io/@std/assert/1.0.16/array_includes.d.ts.map +0 -1
  39. package/esm/deps/jsr.io/@std/assert/1.0.16/array_includes.js +0 -46
  40. package/esm/deps/jsr.io/@std/assert/1.0.16/assert.d.ts +0 -16
  41. package/esm/deps/jsr.io/@std/assert/1.0.16/assert.d.ts.map +0 -1
  42. package/esm/deps/jsr.io/@std/assert/1.0.16/assert.js +0 -22
  43. package/esm/deps/jsr.io/@std/assert/1.0.16/assertion_error.d.ts +0 -26
  44. package/esm/deps/jsr.io/@std/assert/1.0.16/assertion_error.d.ts.map +0 -1
  45. package/esm/deps/jsr.io/@std/assert/1.0.16/assertion_error.js +0 -30
  46. package/esm/deps/jsr.io/@std/assert/1.0.16/equal.d.ts +0 -17
  47. package/esm/deps/jsr.io/@std/assert/1.0.16/equal.d.ts.map +0 -1
  48. package/esm/deps/jsr.io/@std/assert/1.0.16/equal.js +0 -186
  49. package/esm/deps/jsr.io/@std/assert/1.0.16/equals.d.ts +0 -35
  50. package/esm/deps/jsr.io/@std/assert/1.0.16/equals.d.ts.map +0 -1
  51. package/esm/deps/jsr.io/@std/assert/1.0.16/equals.js +0 -59
  52. package/esm/deps/jsr.io/@std/assert/1.0.16/exists.d.ts +0 -18
  53. package/esm/deps/jsr.io/@std/assert/1.0.16/exists.d.ts.map +0 -1
  54. package/esm/deps/jsr.io/@std/assert/1.0.16/exists.js +0 -27
  55. package/esm/deps/jsr.io/@std/assert/1.0.16/fail.d.ts +0 -15
  56. package/esm/deps/jsr.io/@std/assert/1.0.16/fail.d.ts.map +0 -1
  57. package/esm/deps/jsr.io/@std/assert/1.0.16/fail.js +0 -20
  58. package/esm/deps/jsr.io/@std/assert/1.0.16/false.d.ts +0 -18
  59. package/esm/deps/jsr.io/@std/assert/1.0.16/false.d.ts.map +0 -1
  60. package/esm/deps/jsr.io/@std/assert/1.0.16/false.js +0 -22
  61. package/esm/deps/jsr.io/@std/assert/1.0.16/greater.d.ts +0 -20
  62. package/esm/deps/jsr.io/@std/assert/1.0.16/greater.d.ts.map +0 -1
  63. package/esm/deps/jsr.io/@std/assert/1.0.16/greater.js +0 -29
  64. package/esm/deps/jsr.io/@std/assert/1.0.16/greater_or_equal.d.ts +0 -20
  65. package/esm/deps/jsr.io/@std/assert/1.0.16/greater_or_equal.d.ts.map +0 -1
  66. package/esm/deps/jsr.io/@std/assert/1.0.16/greater_or_equal.js +0 -29
  67. package/esm/deps/jsr.io/@std/assert/1.0.16/instance_of.d.ts +0 -23
  68. package/esm/deps/jsr.io/@std/assert/1.0.16/instance_of.d.ts.map +0 -1
  69. package/esm/deps/jsr.io/@std/assert/1.0.16/instance_of.js +0 -52
  70. package/esm/deps/jsr.io/@std/assert/1.0.16/is_error.d.ts +0 -25
  71. package/esm/deps/jsr.io/@std/assert/1.0.16/is_error.d.ts.map +0 -1
  72. package/esm/deps/jsr.io/@std/assert/1.0.16/is_error.js +0 -53
  73. package/esm/deps/jsr.io/@std/assert/1.0.16/less.d.ts +0 -19
  74. package/esm/deps/jsr.io/@std/assert/1.0.16/less.d.ts.map +0 -1
  75. package/esm/deps/jsr.io/@std/assert/1.0.16/less.js +0 -28
  76. package/esm/deps/jsr.io/@std/assert/1.0.16/less_or_equal.d.ts +0 -20
  77. package/esm/deps/jsr.io/@std/assert/1.0.16/less_or_equal.d.ts.map +0 -1
  78. package/esm/deps/jsr.io/@std/assert/1.0.16/less_or_equal.js +0 -29
  79. package/esm/deps/jsr.io/@std/assert/1.0.16/match.d.ts +0 -18
  80. package/esm/deps/jsr.io/@std/assert/1.0.16/match.d.ts.map +0 -1
  81. package/esm/deps/jsr.io/@std/assert/1.0.16/match.js +0 -26
  82. package/esm/deps/jsr.io/@std/assert/1.0.16/mod.d.ts +0 -44
  83. package/esm/deps/jsr.io/@std/assert/1.0.16/mod.d.ts.map +0 -1
  84. package/esm/deps/jsr.io/@std/assert/1.0.16/mod.js +0 -45
  85. package/esm/deps/jsr.io/@std/assert/1.0.16/not_equals.d.ts +0 -21
  86. package/esm/deps/jsr.io/@std/assert/1.0.16/not_equals.d.ts.map +0 -1
  87. package/esm/deps/jsr.io/@std/assert/1.0.16/not_equals.js +0 -33
  88. package/esm/deps/jsr.io/@std/assert/1.0.16/not_instance_of.d.ts +0 -20
  89. package/esm/deps/jsr.io/@std/assert/1.0.16/not_instance_of.d.ts.map +0 -1
  90. package/esm/deps/jsr.io/@std/assert/1.0.16/not_instance_of.js +0 -29
  91. package/esm/deps/jsr.io/@std/assert/1.0.16/not_match.d.ts +0 -18
  92. package/esm/deps/jsr.io/@std/assert/1.0.16/not_match.d.ts.map +0 -1
  93. package/esm/deps/jsr.io/@std/assert/1.0.16/not_match.js +0 -26
  94. package/esm/deps/jsr.io/@std/assert/1.0.16/not_strict_equals.d.ts +0 -23
  95. package/esm/deps/jsr.io/@std/assert/1.0.16/not_strict_equals.d.ts.map +0 -1
  96. package/esm/deps/jsr.io/@std/assert/1.0.16/not_strict_equals.js +0 -32
  97. package/esm/deps/jsr.io/@std/assert/1.0.16/object_match.d.ts +0 -29
  98. package/esm/deps/jsr.io/@std/assert/1.0.16/object_match.d.ts.map +0 -1
  99. package/esm/deps/jsr.io/@std/assert/1.0.16/object_match.js +0 -167
  100. package/esm/deps/jsr.io/@std/assert/1.0.16/rejects.d.ts +0 -42
  101. package/esm/deps/jsr.io/@std/assert/1.0.16/rejects.d.ts.map +0 -1
  102. package/esm/deps/jsr.io/@std/assert/1.0.16/rejects.js +0 -53
  103. package/esm/deps/jsr.io/@std/assert/1.0.16/strict_equals.d.ts +0 -24
  104. package/esm/deps/jsr.io/@std/assert/1.0.16/strict_equals.d.ts.map +0 -1
  105. package/esm/deps/jsr.io/@std/assert/1.0.16/strict_equals.js +0 -58
  106. package/esm/deps/jsr.io/@std/assert/1.0.16/string_includes.d.ts +0 -18
  107. package/esm/deps/jsr.io/@std/assert/1.0.16/string_includes.d.ts.map +0 -1
  108. package/esm/deps/jsr.io/@std/assert/1.0.16/string_includes.js +0 -26
  109. package/esm/deps/jsr.io/@std/assert/1.0.16/throws.d.ts +0 -45
  110. package/esm/deps/jsr.io/@std/assert/1.0.16/throws.d.ts.map +0 -1
  111. package/esm/deps/jsr.io/@std/assert/1.0.16/throws.js +0 -44
  112. package/esm/deps/jsr.io/@std/assert/1.0.16/unimplemented.d.ts +0 -15
  113. package/esm/deps/jsr.io/@std/assert/1.0.16/unimplemented.d.ts.map +0 -1
  114. package/esm/deps/jsr.io/@std/assert/1.0.16/unimplemented.js +0 -20
  115. package/esm/deps/jsr.io/@std/assert/1.0.16/unreachable.d.ts +0 -15
  116. package/esm/deps/jsr.io/@std/assert/1.0.16/unreachable.d.ts.map +0 -1
  117. package/esm/deps/jsr.io/@std/assert/1.0.16/unreachable.js +0 -20
  118. package/esm/deps/jsr.io/@std/internal/1.0.12/build_message.d.ts +0 -80
  119. package/esm/deps/jsr.io/@std/internal/1.0.12/build_message.d.ts.map +0 -1
  120. package/esm/deps/jsr.io/@std/internal/1.0.12/build_message.js +0 -116
  121. package/esm/deps/jsr.io/@std/internal/1.0.12/diff.d.ts +0 -140
  122. package/esm/deps/jsr.io/@std/internal/1.0.12/diff.d.ts.map +0 -1
  123. package/esm/deps/jsr.io/@std/internal/1.0.12/diff.js +0 -276
  124. package/esm/deps/jsr.io/@std/internal/1.0.12/diff_str.d.ts +0 -99
  125. package/esm/deps/jsr.io/@std/internal/1.0.12/diff_str.d.ts.map +0 -1
  126. package/esm/deps/jsr.io/@std/internal/1.0.12/diff_str.js +0 -182
  127. package/esm/deps/jsr.io/@std/internal/1.0.12/format.d.ts +0 -29
  128. package/esm/deps/jsr.io/@std/internal/1.0.12/format.d.ts.map +0 -1
  129. package/esm/deps/jsr.io/@std/internal/1.0.12/format.js +0 -70
  130. package/esm/deps/jsr.io/@std/internal/1.0.12/styles.d.ts +0 -159
  131. package/esm/deps/jsr.io/@std/internal/1.0.12/styles.d.ts.map +0 -1
  132. package/esm/deps/jsr.io/@std/internal/1.0.12/styles.js +0 -207
  133. package/esm/deps/jsr.io/@std/internal/1.0.12/types.d.ts +0 -25
  134. package/esm/deps/jsr.io/@std/internal/1.0.12/types.d.ts.map +0 -1
  135. package/esm/deps/jsr.io/@std/internal/1.0.12/types.js +0 -3
  136. package/esm/message-channel.d.ts.map +0 -1
  137. package/esm/mod.d.ts +0 -4
  138. package/esm/mod.d.ts.map +0 -1
  139. package/esm/package.json +0 -3
  140. package/esm/types.d.ts.map +0 -1
  141. package/esm/worker-main.d.ts.map +0 -1
  142. package/esm/worker.d.ts.map +0 -1
  143. package/script/_dnt.shims.d.ts +0 -2
  144. package/script/_dnt.shims.d.ts.map +0 -1
  145. package/script/_dnt.shims.js +0 -60
  146. package/script/deps/jsr.io/@std/assert/1.0.16/almost_equals.d.ts +0 -29
  147. package/script/deps/jsr.io/@std/assert/1.0.16/almost_equals.d.ts.map +0 -1
  148. package/script/deps/jsr.io/@std/assert/1.0.16/almost_equals.js +0 -49
  149. package/script/deps/jsr.io/@std/assert/1.0.16/array_includes.d.ts +0 -24
  150. package/script/deps/jsr.io/@std/assert/1.0.16/array_includes.d.ts.map +0 -1
  151. package/script/deps/jsr.io/@std/assert/1.0.16/array_includes.js +0 -49
  152. package/script/deps/jsr.io/@std/assert/1.0.16/assert.d.ts +0 -16
  153. package/script/deps/jsr.io/@std/assert/1.0.16/assert.d.ts.map +0 -1
  154. package/script/deps/jsr.io/@std/assert/1.0.16/assert.js +0 -25
  155. package/script/deps/jsr.io/@std/assert/1.0.16/assertion_error.d.ts +0 -26
  156. package/script/deps/jsr.io/@std/assert/1.0.16/assertion_error.d.ts.map +0 -1
  157. package/script/deps/jsr.io/@std/assert/1.0.16/assertion_error.js +0 -34
  158. package/script/deps/jsr.io/@std/assert/1.0.16/equal.d.ts +0 -17
  159. package/script/deps/jsr.io/@std/assert/1.0.16/equal.d.ts.map +0 -1
  160. package/script/deps/jsr.io/@std/assert/1.0.16/equal.js +0 -222
  161. package/script/deps/jsr.io/@std/assert/1.0.16/equals.d.ts +0 -35
  162. package/script/deps/jsr.io/@std/assert/1.0.16/equals.d.ts.map +0 -1
  163. package/script/deps/jsr.io/@std/assert/1.0.16/equals.js +0 -62
  164. package/script/deps/jsr.io/@std/assert/1.0.16/exists.d.ts +0 -18
  165. package/script/deps/jsr.io/@std/assert/1.0.16/exists.d.ts.map +0 -1
  166. package/script/deps/jsr.io/@std/assert/1.0.16/exists.js +0 -30
  167. package/script/deps/jsr.io/@std/assert/1.0.16/fail.d.ts +0 -15
  168. package/script/deps/jsr.io/@std/assert/1.0.16/fail.d.ts.map +0 -1
  169. package/script/deps/jsr.io/@std/assert/1.0.16/fail.js +0 -23
  170. package/script/deps/jsr.io/@std/assert/1.0.16/false.d.ts +0 -18
  171. package/script/deps/jsr.io/@std/assert/1.0.16/false.d.ts.map +0 -1
  172. package/script/deps/jsr.io/@std/assert/1.0.16/false.js +0 -25
  173. package/script/deps/jsr.io/@std/assert/1.0.16/greater.d.ts +0 -20
  174. package/script/deps/jsr.io/@std/assert/1.0.16/greater.d.ts.map +0 -1
  175. package/script/deps/jsr.io/@std/assert/1.0.16/greater.js +0 -32
  176. package/script/deps/jsr.io/@std/assert/1.0.16/greater_or_equal.d.ts +0 -20
  177. package/script/deps/jsr.io/@std/assert/1.0.16/greater_or_equal.d.ts.map +0 -1
  178. package/script/deps/jsr.io/@std/assert/1.0.16/greater_or_equal.js +0 -32
  179. package/script/deps/jsr.io/@std/assert/1.0.16/instance_of.d.ts +0 -23
  180. package/script/deps/jsr.io/@std/assert/1.0.16/instance_of.d.ts.map +0 -1
  181. package/script/deps/jsr.io/@std/assert/1.0.16/instance_of.js +0 -55
  182. package/script/deps/jsr.io/@std/assert/1.0.16/is_error.d.ts +0 -25
  183. package/script/deps/jsr.io/@std/assert/1.0.16/is_error.d.ts.map +0 -1
  184. package/script/deps/jsr.io/@std/assert/1.0.16/is_error.js +0 -56
  185. package/script/deps/jsr.io/@std/assert/1.0.16/less.d.ts +0 -19
  186. package/script/deps/jsr.io/@std/assert/1.0.16/less.d.ts.map +0 -1
  187. package/script/deps/jsr.io/@std/assert/1.0.16/less.js +0 -31
  188. package/script/deps/jsr.io/@std/assert/1.0.16/less_or_equal.d.ts +0 -20
  189. package/script/deps/jsr.io/@std/assert/1.0.16/less_or_equal.d.ts.map +0 -1
  190. package/script/deps/jsr.io/@std/assert/1.0.16/less_or_equal.js +0 -32
  191. package/script/deps/jsr.io/@std/assert/1.0.16/match.d.ts +0 -18
  192. package/script/deps/jsr.io/@std/assert/1.0.16/match.d.ts.map +0 -1
  193. package/script/deps/jsr.io/@std/assert/1.0.16/match.js +0 -29
  194. package/script/deps/jsr.io/@std/assert/1.0.16/mod.d.ts +0 -44
  195. package/script/deps/jsr.io/@std/assert/1.0.16/mod.d.ts.map +0 -1
  196. package/script/deps/jsr.io/@std/assert/1.0.16/mod.js +0 -61
  197. package/script/deps/jsr.io/@std/assert/1.0.16/not_equals.d.ts +0 -21
  198. package/script/deps/jsr.io/@std/assert/1.0.16/not_equals.d.ts.map +0 -1
  199. package/script/deps/jsr.io/@std/assert/1.0.16/not_equals.js +0 -36
  200. package/script/deps/jsr.io/@std/assert/1.0.16/not_instance_of.d.ts +0 -20
  201. package/script/deps/jsr.io/@std/assert/1.0.16/not_instance_of.d.ts.map +0 -1
  202. package/script/deps/jsr.io/@std/assert/1.0.16/not_instance_of.js +0 -32
  203. package/script/deps/jsr.io/@std/assert/1.0.16/not_match.d.ts +0 -18
  204. package/script/deps/jsr.io/@std/assert/1.0.16/not_match.d.ts.map +0 -1
  205. package/script/deps/jsr.io/@std/assert/1.0.16/not_match.js +0 -29
  206. package/script/deps/jsr.io/@std/assert/1.0.16/not_strict_equals.d.ts +0 -23
  207. package/script/deps/jsr.io/@std/assert/1.0.16/not_strict_equals.d.ts.map +0 -1
  208. package/script/deps/jsr.io/@std/assert/1.0.16/not_strict_equals.js +0 -35
  209. package/script/deps/jsr.io/@std/assert/1.0.16/object_match.d.ts +0 -29
  210. package/script/deps/jsr.io/@std/assert/1.0.16/object_match.d.ts.map +0 -1
  211. package/script/deps/jsr.io/@std/assert/1.0.16/object_match.js +0 -170
  212. package/script/deps/jsr.io/@std/assert/1.0.16/rejects.d.ts +0 -42
  213. package/script/deps/jsr.io/@std/assert/1.0.16/rejects.d.ts.map +0 -1
  214. package/script/deps/jsr.io/@std/assert/1.0.16/rejects.js +0 -56
  215. package/script/deps/jsr.io/@std/assert/1.0.16/strict_equals.d.ts +0 -24
  216. package/script/deps/jsr.io/@std/assert/1.0.16/strict_equals.d.ts.map +0 -1
  217. package/script/deps/jsr.io/@std/assert/1.0.16/strict_equals.js +0 -61
  218. package/script/deps/jsr.io/@std/assert/1.0.16/string_includes.d.ts +0 -18
  219. package/script/deps/jsr.io/@std/assert/1.0.16/string_includes.d.ts.map +0 -1
  220. package/script/deps/jsr.io/@std/assert/1.0.16/string_includes.js +0 -29
  221. package/script/deps/jsr.io/@std/assert/1.0.16/throws.d.ts +0 -45
  222. package/script/deps/jsr.io/@std/assert/1.0.16/throws.d.ts.map +0 -1
  223. package/script/deps/jsr.io/@std/assert/1.0.16/throws.js +0 -47
  224. package/script/deps/jsr.io/@std/assert/1.0.16/unimplemented.d.ts +0 -15
  225. package/script/deps/jsr.io/@std/assert/1.0.16/unimplemented.d.ts.map +0 -1
  226. package/script/deps/jsr.io/@std/assert/1.0.16/unimplemented.js +0 -23
  227. package/script/deps/jsr.io/@std/assert/1.0.16/unreachable.d.ts +0 -15
  228. package/script/deps/jsr.io/@std/assert/1.0.16/unreachable.d.ts.map +0 -1
  229. package/script/deps/jsr.io/@std/assert/1.0.16/unreachable.js +0 -23
  230. package/script/deps/jsr.io/@std/internal/1.0.12/build_message.d.ts +0 -80
  231. package/script/deps/jsr.io/@std/internal/1.0.12/build_message.d.ts.map +0 -1
  232. package/script/deps/jsr.io/@std/internal/1.0.12/build_message.js +0 -121
  233. package/script/deps/jsr.io/@std/internal/1.0.12/diff.d.ts +0 -140
  234. package/script/deps/jsr.io/@std/internal/1.0.12/diff.d.ts.map +0 -1
  235. package/script/deps/jsr.io/@std/internal/1.0.12/diff.js +0 -283
  236. package/script/deps/jsr.io/@std/internal/1.0.12/diff_str.d.ts +0 -99
  237. package/script/deps/jsr.io/@std/internal/1.0.12/diff_str.d.ts.map +0 -1
  238. package/script/deps/jsr.io/@std/internal/1.0.12/diff_str.js +0 -188
  239. package/script/deps/jsr.io/@std/internal/1.0.12/format.d.ts +0 -29
  240. package/script/deps/jsr.io/@std/internal/1.0.12/format.d.ts.map +0 -1
  241. package/script/deps/jsr.io/@std/internal/1.0.12/format.js +0 -106
  242. package/script/deps/jsr.io/@std/internal/1.0.12/styles.d.ts +0 -159
  243. package/script/deps/jsr.io/@std/internal/1.0.12/styles.d.ts.map +0 -1
  244. package/script/deps/jsr.io/@std/internal/1.0.12/styles.js +0 -252
  245. package/script/deps/jsr.io/@std/internal/1.0.12/types.d.ts +0 -25
  246. package/script/deps/jsr.io/@std/internal/1.0.12/types.d.ts.map +0 -1
  247. package/script/deps/jsr.io/@std/internal/1.0.12/types.js +0 -4
  248. package/script/message-channel.d.ts +0 -3
  249. package/script/message-channel.d.ts.map +0 -1
  250. package/script/message-channel.js +0 -16
  251. package/script/mod.d.ts +0 -4
  252. package/script/mod.d.ts.map +0 -1
  253. package/script/mod.js +0 -19
  254. package/script/package.json +0 -3
  255. package/script/types.d.ts +0 -33
  256. package/script/types.d.ts.map +0 -1
  257. package/script/types.js +0 -2
  258. package/script/worker-main.d.ts +0 -84
  259. package/script/worker-main.d.ts.map +0 -1
  260. package/script/worker-main.js +0 -190
  261. package/script/worker.d.ts +0 -63
  262. package/script/worker.d.ts.map +0 -1
  263. package/script/worker.js +0 -124
  264. /package/{esm → dist}/message-channel.d.ts +0 -0
  265. /package/{esm → dist}/message-channel.js +0 -0
  266. /package/{esm → dist}/mod.js +0 -0
  267. /package/{esm → dist}/types.d.ts +0 -0
  268. /package/{esm → dist}/types.js +0 -0
  269. /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