@bluelibs/runner 3.4.2 → 4.0.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 (375) hide show
  1. package/AI.md +621 -0
  2. package/README.md +1024 -577
  3. package/dist/context.d.ts +4 -8
  4. package/dist/context.js +5 -12
  5. package/dist/context.js.map +1 -1
  6. package/dist/define.d.ts +9 -113
  7. package/dist/define.js +29 -358
  8. package/dist/define.js.map +1 -1
  9. package/dist/definers/defineEvent.d.ts +2 -0
  10. package/dist/definers/defineEvent.js +23 -0
  11. package/dist/definers/defineEvent.js.map +1 -0
  12. package/dist/definers/defineHook.d.ts +6 -0
  13. package/dist/definers/defineHook.js +24 -0
  14. package/dist/definers/defineHook.js.map +1 -0
  15. package/dist/definers/defineOverride.d.ts +14 -0
  16. package/dist/definers/defineOverride.js +13 -0
  17. package/dist/definers/defineOverride.js.map +1 -0
  18. package/dist/definers/defineResource.d.ts +2 -0
  19. package/dist/definers/defineResource.js +69 -0
  20. package/dist/definers/defineResource.js.map +1 -0
  21. package/dist/definers/defineResourceMiddleware.d.ts +2 -0
  22. package/dist/definers/defineResourceMiddleware.js +42 -0
  23. package/dist/definers/defineResourceMiddleware.js.map +1 -0
  24. package/dist/definers/defineTag.d.ts +12 -0
  25. package/dist/definers/defineTag.js +106 -0
  26. package/dist/definers/defineTag.js.map +1 -0
  27. package/dist/definers/defineTask.d.ts +15 -0
  28. package/dist/definers/defineTask.js +42 -0
  29. package/dist/definers/defineTask.js.map +1 -0
  30. package/dist/definers/defineTaskMiddleware.d.ts +2 -0
  31. package/dist/definers/defineTaskMiddleware.js +42 -0
  32. package/dist/definers/defineTaskMiddleware.js.map +1 -0
  33. package/dist/definers/tools.d.ts +45 -0
  34. package/dist/definers/tools.js +75 -0
  35. package/dist/definers/tools.js.map +1 -0
  36. package/dist/defs.d.ts +16 -424
  37. package/dist/defs.js +26 -38
  38. package/dist/defs.js.map +1 -1
  39. package/dist/errors.d.ts +23 -8
  40. package/dist/errors.js +50 -10
  41. package/dist/errors.js.map +1 -1
  42. package/dist/globals/globalEvents.d.ts +15 -39
  43. package/dist/globals/globalEvents.js +20 -81
  44. package/dist/globals/globalEvents.js.map +1 -1
  45. package/dist/globals/globalMiddleware.d.ts +24 -17
  46. package/dist/globals/globalMiddleware.js +12 -4
  47. package/dist/globals/globalMiddleware.js.map +1 -1
  48. package/dist/globals/globalResources.d.ts +13 -28
  49. package/dist/globals/globalResources.js +15 -7
  50. package/dist/globals/globalResources.js.map +1 -1
  51. package/dist/globals/globalTags.d.ts +9 -0
  52. package/dist/globals/globalTags.js +23 -0
  53. package/dist/globals/globalTags.js.map +1 -0
  54. package/dist/globals/middleware/cache.middleware.d.ts +10 -17
  55. package/dist/globals/middleware/cache.middleware.js +4 -16
  56. package/dist/globals/middleware/cache.middleware.js.map +1 -1
  57. package/dist/globals/middleware/requireContext.middleware.d.ts +1 -1
  58. package/dist/globals/middleware/requireContext.middleware.js +5 -14
  59. package/dist/globals/middleware/requireContext.middleware.js.map +1 -1
  60. package/dist/globals/middleware/retry.middleware.d.ts +2 -1
  61. package/dist/globals/middleware/retry.middleware.js +32 -5
  62. package/dist/globals/middleware/retry.middleware.js.map +1 -1
  63. package/dist/globals/middleware/timeout.middleware.d.ts +2 -1
  64. package/dist/globals/middleware/timeout.middleware.js +31 -5
  65. package/dist/globals/middleware/timeout.middleware.js.map +1 -1
  66. package/dist/globals/resources/debug/debug.resource.d.ts +7 -0
  67. package/dist/globals/resources/debug/debug.resource.js +29 -0
  68. package/dist/globals/resources/debug/debug.resource.js.map +1 -0
  69. package/dist/globals/resources/debug/debug.tag.d.ts +2 -0
  70. package/dist/globals/resources/debug/debug.tag.js +12 -0
  71. package/dist/globals/resources/debug/debug.tag.js.map +1 -0
  72. package/dist/globals/resources/debug/debugConfig.resource.d.ts +22 -0
  73. package/dist/globals/resources/debug/debugConfig.resource.js +20 -0
  74. package/dist/globals/resources/debug/debugConfig.resource.js.map +1 -0
  75. package/dist/globals/resources/debug/executionTracker.middleware.d.ts +50 -0
  76. package/dist/globals/resources/debug/executionTracker.middleware.js +87 -0
  77. package/dist/globals/resources/debug/executionTracker.middleware.js.map +1 -0
  78. package/dist/globals/resources/debug/globalEvent.hook.d.ts +27 -0
  79. package/dist/globals/resources/debug/globalEvent.hook.js +38 -0
  80. package/dist/globals/resources/debug/globalEvent.hook.js.map +1 -0
  81. package/dist/globals/resources/debug/hook.hook.d.ts +25 -0
  82. package/dist/globals/resources/debug/hook.hook.js +42 -0
  83. package/dist/globals/resources/debug/hook.hook.js.map +1 -0
  84. package/dist/globals/resources/debug/index.d.ts +6 -0
  85. package/dist/{types → globals/resources/debug}/index.js +6 -11
  86. package/dist/globals/resources/debug/index.js.map +1 -0
  87. package/dist/globals/resources/debug/middleware.hook.d.ts +25 -0
  88. package/dist/globals/resources/debug/middleware.hook.js +71 -0
  89. package/dist/globals/resources/debug/middleware.hook.js.map +1 -0
  90. package/dist/globals/resources/debug/types.d.ts +25 -0
  91. package/dist/globals/resources/debug/types.js +65 -0
  92. package/dist/globals/resources/debug/types.js.map +1 -0
  93. package/dist/globals/resources/debug/utils.d.ts +2 -0
  94. package/dist/globals/resources/debug/utils.js +9 -0
  95. package/dist/globals/resources/debug/utils.js.map +1 -0
  96. package/dist/globals/resources/queue.resource.d.ts +3 -3
  97. package/dist/globals/resources/queue.resource.js.map +1 -1
  98. package/dist/globals/types.d.ts +1 -0
  99. package/dist/{task.types.js → globals/types.js} +2 -7
  100. package/dist/globals/types.js.map +1 -0
  101. package/dist/index.d.ts +58 -85
  102. package/dist/index.js +23 -10
  103. package/dist/index.js.map +1 -1
  104. package/dist/models/DependencyProcessor.d.ts +8 -6
  105. package/dist/models/DependencyProcessor.js +116 -33
  106. package/dist/models/DependencyProcessor.js.map +1 -1
  107. package/dist/models/EventManager.d.ts +127 -7
  108. package/dist/models/EventManager.js +251 -78
  109. package/dist/models/EventManager.js.map +1 -1
  110. package/dist/models/LogPrinter.d.ts +55 -0
  111. package/dist/models/LogPrinter.js +196 -0
  112. package/dist/models/LogPrinter.js.map +1 -0
  113. package/dist/models/Logger.d.ts +47 -27
  114. package/dist/models/Logger.js +133 -155
  115. package/dist/models/Logger.js.map +1 -1
  116. package/dist/models/MiddlewareManager.d.ts +86 -0
  117. package/dist/models/MiddlewareManager.js +409 -0
  118. package/dist/models/MiddlewareManager.js.map +1 -0
  119. package/dist/models/OverrideManager.d.ts +3 -3
  120. package/dist/models/OverrideManager.js +22 -7
  121. package/dist/models/OverrideManager.js.map +1 -1
  122. package/dist/models/ResourceInitializer.d.ts +4 -3
  123. package/dist/models/ResourceInitializer.js +12 -68
  124. package/dist/models/ResourceInitializer.js.map +1 -1
  125. package/dist/models/RunResult.d.ts +35 -0
  126. package/dist/models/RunResult.js +68 -0
  127. package/dist/models/RunResult.js.map +1 -0
  128. package/dist/models/Store.d.ts +30 -17
  129. package/dist/models/Store.js +87 -25
  130. package/dist/models/Store.js.map +1 -1
  131. package/dist/models/StoreRegistry.d.ts +34 -19
  132. package/dist/models/StoreRegistry.js +248 -100
  133. package/dist/models/StoreRegistry.js.map +1 -1
  134. package/dist/models/StoreValidator.d.ts +5 -7
  135. package/dist/models/StoreValidator.js +50 -17
  136. package/dist/models/StoreValidator.js.map +1 -1
  137. package/dist/models/TaskRunner.d.ts +3 -2
  138. package/dist/models/TaskRunner.js +6 -103
  139. package/dist/models/TaskRunner.js.map +1 -1
  140. package/dist/models/UnhandledError.d.ts +11 -0
  141. package/dist/models/UnhandledError.js +30 -0
  142. package/dist/models/UnhandledError.js.map +1 -0
  143. package/dist/models/index.d.ts +3 -0
  144. package/dist/models/index.js +3 -0
  145. package/dist/models/index.js.map +1 -1
  146. package/dist/{tools → models/utils}/findCircularDependencies.js +8 -16
  147. package/dist/models/utils/findCircularDependencies.js.map +1 -0
  148. package/dist/models/utils/safeStringify.d.ts +3 -0
  149. package/dist/models/utils/safeStringify.js +45 -0
  150. package/dist/models/utils/safeStringify.js.map +1 -0
  151. package/dist/processHooks.d.ts +2 -0
  152. package/dist/processHooks.js +70 -0
  153. package/dist/processHooks.js.map +1 -0
  154. package/dist/run.d.ts +14 -27
  155. package/dist/run.js +100 -36
  156. package/dist/run.js.map +1 -1
  157. package/dist/testing.d.ts +5 -4
  158. package/dist/testing.js +3 -2
  159. package/dist/testing.js.map +1 -1
  160. package/dist/tools/getCallerFile.d.ts +0 -8
  161. package/dist/tools/getCallerFile.js +0 -51
  162. package/dist/tools/getCallerFile.js.map +1 -1
  163. package/dist/types/contracts.d.ts +55 -0
  164. package/dist/types/contracts.js +4 -0
  165. package/dist/types/contracts.js.map +1 -0
  166. package/dist/types/event.d.ts +26 -7
  167. package/dist/types/event.js +1 -1
  168. package/dist/types/event.js.map +1 -1
  169. package/dist/types/hook.d.ts +21 -0
  170. package/dist/{models/StoreTypes.js → types/hook.js} +2 -1
  171. package/dist/types/hook.js.map +1 -0
  172. package/dist/types/meta.d.ts +6 -1
  173. package/dist/types/meta.js +4 -2
  174. package/dist/types/meta.js.map +1 -1
  175. package/dist/types/resource.d.ts +40 -52
  176. package/dist/types/resource.js +1 -0
  177. package/dist/types/resource.js.map +1 -1
  178. package/dist/types/resourceMiddleware.d.ts +47 -0
  179. package/dist/{middleware.types.js → types/resourceMiddleware.js} +1 -1
  180. package/dist/types/resourceMiddleware.js.map +1 -0
  181. package/dist/types/runner.d.ts +37 -0
  182. package/dist/types/{base.js → runner.js} +1 -1
  183. package/dist/types/runner.js.map +1 -0
  184. package/dist/types/storeTypes.d.ts +40 -0
  185. package/dist/types/{metadata.js → storeTypes.js} +1 -1
  186. package/dist/types/storeTypes.js.map +1 -0
  187. package/dist/types/symbols.d.ts +10 -21
  188. package/dist/types/symbols.js +17 -22
  189. package/dist/types/symbols.js.map +1 -1
  190. package/dist/types/tag.d.ts +46 -0
  191. package/dist/{resource.types.js → types/tag.js} +2 -1
  192. package/dist/types/tag.js.map +1 -0
  193. package/dist/types/task.d.ts +28 -52
  194. package/dist/types/task.js +1 -0
  195. package/dist/types/task.js.map +1 -1
  196. package/dist/types/taskMiddleware.d.ts +48 -0
  197. package/dist/{event.types.js → types/taskMiddleware.js} +1 -1
  198. package/dist/types/taskMiddleware.js.map +1 -0
  199. package/dist/types/utilities.d.ts +105 -6
  200. package/dist/types/utilities.js +16 -2
  201. package/dist/types/utilities.js.map +1 -1
  202. package/package.json +14 -5
  203. package/dist/cli/extract-docs.d.ts +0 -2
  204. package/dist/cli/extract-docs.js +0 -88
  205. package/dist/cli/extract-docs.js.map +0 -1
  206. package/dist/common.types.d.ts +0 -20
  207. package/dist/common.types.js +0 -4
  208. package/dist/common.types.js.map +0 -1
  209. package/dist/defs/core.d.ts +0 -144
  210. package/dist/defs/core.js +0 -6
  211. package/dist/defs/core.js.map +0 -1
  212. package/dist/defs/symbols.d.ts +0 -42
  213. package/dist/defs/symbols.js +0 -45
  214. package/dist/defs/symbols.js.map +0 -1
  215. package/dist/defs/tags.d.ts +0 -70
  216. package/dist/defs/tags.js +0 -6
  217. package/dist/defs/tags.js.map +0 -1
  218. package/dist/defs.returnTag.d.ts +0 -36
  219. package/dist/defs.returnTag.js +0 -4
  220. package/dist/defs.returnTag.js.map +0 -1
  221. package/dist/docs/introspect.d.ts +0 -7
  222. package/dist/docs/introspect.js +0 -199
  223. package/dist/docs/introspect.js.map +0 -1
  224. package/dist/docs/markdown.d.ts +0 -2
  225. package/dist/docs/markdown.js +0 -148
  226. package/dist/docs/markdown.js.map +0 -1
  227. package/dist/docs/model.d.ts +0 -62
  228. package/dist/docs/model.js +0 -33
  229. package/dist/docs/model.js.map +0 -1
  230. package/dist/event.types.d.ts +0 -18
  231. package/dist/event.types.js.map +0 -1
  232. package/dist/examples/express-mongo/index.d.ts +0 -0
  233. package/dist/examples/express-mongo/index.js +0 -3
  234. package/dist/examples/express-mongo/index.js.map +0 -1
  235. package/dist/examples/registrator-example.d.ts +0 -122
  236. package/dist/examples/registrator-example.js +0 -147
  237. package/dist/examples/registrator-example.js.map +0 -1
  238. package/dist/express/docsRouter.d.ts +0 -12
  239. package/dist/express/docsRouter.js +0 -54
  240. package/dist/express/docsRouter.js.map +0 -1
  241. package/dist/globalEvents.d.ts +0 -40
  242. package/dist/globalEvents.js +0 -94
  243. package/dist/globalEvents.js.map +0 -1
  244. package/dist/globalResources.d.ts +0 -10
  245. package/dist/globalResources.js +0 -43
  246. package/dist/globalResources.js.map +0 -1
  247. package/dist/middleware.types.d.ts +0 -40
  248. package/dist/middleware.types.js.map +0 -1
  249. package/dist/models/StoreConstants.d.ts +0 -14
  250. package/dist/models/StoreConstants.js +0 -19
  251. package/dist/models/StoreConstants.js.map +0 -1
  252. package/dist/models/StoreTypes.d.ts +0 -21
  253. package/dist/models/StoreTypes.js.map +0 -1
  254. package/dist/models/VarStore.d.ts +0 -17
  255. package/dist/models/VarStore.js +0 -60
  256. package/dist/models/VarStore.js.map +0 -1
  257. package/dist/resource.types.d.ts +0 -31
  258. package/dist/resource.types.js.map +0 -1
  259. package/dist/symbols.d.ts +0 -24
  260. package/dist/symbols.js +0 -29
  261. package/dist/symbols.js.map +0 -1
  262. package/dist/t1.d.ts +0 -1
  263. package/dist/t1.js +0 -13
  264. package/dist/t1.js.map +0 -1
  265. package/dist/task.types.d.ts +0 -55
  266. package/dist/task.types.js.map +0 -1
  267. package/dist/tools/findCircularDependencies.js.map +0 -1
  268. package/dist/tools/registratorId.d.ts +0 -4
  269. package/dist/tools/registratorId.js +0 -40
  270. package/dist/tools/registratorId.js.map +0 -1
  271. package/dist/tools/simpleHash.d.ts +0 -9
  272. package/dist/tools/simpleHash.js +0 -34
  273. package/dist/tools/simpleHash.js.map +0 -1
  274. package/dist/types/base-interfaces.d.ts +0 -18
  275. package/dist/types/base-interfaces.js +0 -6
  276. package/dist/types/base-interfaces.js.map +0 -1
  277. package/dist/types/base.d.ts +0 -13
  278. package/dist/types/base.js.map +0 -1
  279. package/dist/types/dependencies.d.ts +0 -51
  280. package/dist/types/dependencies.js +0 -3
  281. package/dist/types/dependencies.js.map +0 -1
  282. package/dist/types/dependency-core.d.ts +0 -14
  283. package/dist/types/dependency-core.js +0 -5
  284. package/dist/types/dependency-core.js.map +0 -1
  285. package/dist/types/events.d.ts +0 -52
  286. package/dist/types/events.js +0 -6
  287. package/dist/types/events.js.map +0 -1
  288. package/dist/types/hooks.d.ts +0 -16
  289. package/dist/types/hooks.js +0 -5
  290. package/dist/types/hooks.js.map +0 -1
  291. package/dist/types/index.d.ts +0 -8
  292. package/dist/types/index.js.map +0 -1
  293. package/dist/types/metadata.d.ts +0 -75
  294. package/dist/types/metadata.js.map +0 -1
  295. package/dist/types/middleware.d.ts +0 -63
  296. package/dist/types/middleware.js +0 -3
  297. package/dist/types/middleware.js.map +0 -1
  298. package/dist/types/registerable.d.ts +0 -10
  299. package/dist/types/registerable.js +0 -5
  300. package/dist/types/registerable.js.map +0 -1
  301. package/dist/types/resources.d.ts +0 -44
  302. package/dist/types/resources.js +0 -5
  303. package/dist/types/resources.js.map +0 -1
  304. package/dist/types/tasks.d.ts +0 -41
  305. package/dist/types/tasks.js +0 -5
  306. package/dist/types/tasks.js.map +0 -1
  307. package/src/__tests__/benchmark/benchmark.test.ts +0 -148
  308. package/src/__tests__/benchmark/task-benchmark.test.ts +0 -132
  309. package/src/__tests__/context.test.ts +0 -91
  310. package/src/__tests__/createTestResource.test.ts +0 -139
  311. package/src/__tests__/errors.test.ts +0 -341
  312. package/src/__tests__/globalEvents.test.ts +0 -542
  313. package/src/__tests__/globals/cache.middleware.test.ts +0 -772
  314. package/src/__tests__/globals/queue.resource.test.ts +0 -141
  315. package/src/__tests__/globals/requireContext.middleware.test.ts +0 -98
  316. package/src/__tests__/globals/retry.middleware.test.ts +0 -157
  317. package/src/__tests__/globals/timeout.middleware.test.ts +0 -88
  318. package/src/__tests__/index.helper.test.ts +0 -55
  319. package/src/__tests__/models/EventManager.test.ts +0 -585
  320. package/src/__tests__/models/Logger.test.ts +0 -519
  321. package/src/__tests__/models/Queue.test.ts +0 -189
  322. package/src/__tests__/models/ResourceInitializer.test.ts +0 -148
  323. package/src/__tests__/models/Semaphore.test.ts +0 -713
  324. package/src/__tests__/models/Store.test.ts +0 -227
  325. package/src/__tests__/models/TaskRunner.test.ts +0 -221
  326. package/src/__tests__/override.test.ts +0 -104
  327. package/src/__tests__/recursion/README.md +0 -3
  328. package/src/__tests__/recursion/a.resource.ts +0 -25
  329. package/src/__tests__/recursion/b.resource.ts +0 -33
  330. package/src/__tests__/recursion/c.resource.ts +0 -18
  331. package/src/__tests__/run.anonymous.test.ts +0 -706
  332. package/src/__tests__/run.dynamic-register-and-dependencies.test.ts +0 -1185
  333. package/src/__tests__/run.middleware.test.ts +0 -549
  334. package/src/__tests__/run.overrides.test.ts +0 -424
  335. package/src/__tests__/run.test.ts +0 -1040
  336. package/src/__tests__/setOutput.test.ts +0 -244
  337. package/src/__tests__/tags.test.ts +0 -396
  338. package/src/__tests__/tools/findCircularDependencies.test.ts +0 -217
  339. package/src/__tests__/tools/getCallerFile.test.ts +0 -179
  340. package/src/__tests__/typesafety.test.ts +0 -423
  341. package/src/__tests__/validation-edge-cases.test.ts +0 -111
  342. package/src/__tests__/validation-interface.test.ts +0 -428
  343. package/src/context.ts +0 -86
  344. package/src/define.ts +0 -480
  345. package/src/defs.returnTag.ts +0 -91
  346. package/src/defs.ts +0 -596
  347. package/src/errors.ts +0 -105
  348. package/src/globals/globalEvents.ts +0 -125
  349. package/src/globals/globalMiddleware.ts +0 -16
  350. package/src/globals/globalResources.ts +0 -53
  351. package/src/globals/middleware/cache.middleware.ts +0 -115
  352. package/src/globals/middleware/requireContext.middleware.ts +0 -36
  353. package/src/globals/middleware/retry.middleware.ts +0 -56
  354. package/src/globals/middleware/timeout.middleware.ts +0 -46
  355. package/src/globals/resources/queue.resource.ts +0 -34
  356. package/src/index.ts +0 -39
  357. package/src/models/DependencyProcessor.ts +0 -257
  358. package/src/models/EventManager.ts +0 -210
  359. package/src/models/Logger.ts +0 -282
  360. package/src/models/OverrideManager.ts +0 -79
  361. package/src/models/Queue.ts +0 -66
  362. package/src/models/ResourceInitializer.ts +0 -165
  363. package/src/models/Semaphore.ts +0 -208
  364. package/src/models/Store.ts +0 -193
  365. package/src/models/StoreConstants.ts +0 -18
  366. package/src/models/StoreRegistry.ts +0 -253
  367. package/src/models/StoreTypes.ts +0 -47
  368. package/src/models/StoreValidator.ts +0 -43
  369. package/src/models/TaskRunner.ts +0 -203
  370. package/src/models/index.ts +0 -8
  371. package/src/run.ts +0 -116
  372. package/src/testing.ts +0 -66
  373. package/src/tools/findCircularDependencies.ts +0 -69
  374. package/src/tools/getCallerFile.ts +0 -96
  375. /package/dist/{tools → models/utils}/findCircularDependencies.d.ts +0 -0
package/dist/context.d.ts CHANGED
@@ -1,11 +1,7 @@
1
1
  import { AsyncLocalStorage } from "async_hooks";
2
- import { IMiddlewareConfigured } from "./defs";
3
- /**
4
- * Error thrown whenever a requested context is not available.
5
- */
6
- export declare class ContextError extends Error {
7
- constructor(message: string);
8
- }
2
+ import { ITaskMiddlewareConfigured } from "./defs";
3
+ import { ContextError } from "./errors";
4
+ export { ContextError };
9
5
  /**
10
6
  * The generic Context object returned by `createContext`.
11
7
  */
@@ -22,7 +18,7 @@ export interface Context<T> {
22
18
  * Generates a middleware that guarantees the context exists (and optionally
23
19
  * enforces that certain keys are present on the context object).
24
20
  */
25
- require<K extends keyof T = never>(keys?: K[]): IMiddlewareConfigured<{
21
+ require<K extends keyof T = never>(keys?: K[]): ITaskMiddlewareConfigured<{
26
22
  context: Context<T>;
27
23
  }>;
28
24
  }
package/dist/context.js CHANGED
@@ -4,16 +4,8 @@ exports.storage = exports.ContextError = void 0;
4
4
  exports.createContext = createContext;
5
5
  const async_hooks_1 = require("async_hooks");
6
6
  const requireContext_middleware_1 = require("./globals/middleware/requireContext.middleware");
7
- /**
8
- * Error thrown whenever a requested context is not available.
9
- */
10
- class ContextError extends Error {
11
- constructor(message) {
12
- super(message);
13
- this.name = "ContextError";
14
- }
15
- }
16
- exports.ContextError = ContextError;
7
+ const errors_1 = require("./errors");
8
+ Object.defineProperty(exports, "ContextError", { enumerable: true, get: function () { return errors_1.ContextError; } });
17
9
  // The internal storage maps Context identifiers (symbols) to their values
18
10
  exports.storage = new async_hooks_1.AsyncLocalStorage();
19
11
  /** Returns the currently active store or undefined. */
@@ -29,7 +21,7 @@ function createContext(name = "runner.context") {
29
21
  function use() {
30
22
  const store = getCurrentStore();
31
23
  if (!store || !store.has(ctxId)) {
32
- throw new ContextError(`Context not available for symbol ${ctxId.toString()}`);
24
+ throw new errors_1.ContextError(`Context not available for symbol ${ctxId.toString()}`);
33
25
  }
34
26
  return store.get(ctxId);
35
27
  }
@@ -44,9 +36,10 @@ function createContext(name = "runner.context") {
44
36
  /**
45
37
  * Generates a middleware that guarantees the context exists (and optionally
46
38
  * enforces that certain keys are present on the context object).
39
+ * @throws {ContextError} if the context is not available
47
40
  */
48
41
  function require() {
49
- return requireContext_middleware_1.requireContextMiddleware.with({ context: this });
42
+ return requireContext_middleware_1.requireContextTaskMiddleware.with({ context: this });
50
43
  }
51
44
  return {
52
45
  id: ctxId,
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;AAgDA,sCAqCC;AArFD,6CAAgD;AAGhD,8FAA0F;AAE1F;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AALD,oCAKC;AAuBD,0EAA0E;AAC7D,QAAA,OAAO,GAAG,IAAI,+BAAiB,EAAwB,CAAC;AAErE,uDAAuD;AACvD,SAAS,eAAe;IACtB,OAAO,eAAO,CAAC,QAAQ,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAI,OAAe,gBAAgB;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE3B,SAAS,GAAG;QACV,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,YAAY,CACpB,oCAAoC,KAAK,CAAC,QAAQ,EAAE,EAAE,CACvD,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAM,CAAC;IAC/B,CAAC;IAED,SAAS,OAAO,CAAI,KAAQ,EAAE,EAAwB;QACpD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,YAAY;YACtB,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC;YACvB,CAAC,CAAC,IAAI,GAAG,EAAmB,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEtB,OAAO,eAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAS,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,SAAS,OAAO;QACd,OAAO,oDAAwB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAkB,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,OAAO;QACL,EAAE,EAAE,KAAK;QACT,GAAG;QACH,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;AAuCA,sCAsCC;AA7ED,6CAAgD;AAEhD,8FAA8F;AAC9F,qCAAwC;AAE/B,6FAFA,qBAAY,OAEA;AAsBrB,0EAA0E;AAC7D,QAAA,OAAO,GAAG,IAAI,+BAAiB,EAAwB,CAAC;AAErE,uDAAuD;AACvD,SAAS,eAAe;IACtB,OAAO,eAAO,CAAC,QAAQ,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAI,OAAe,gBAAgB;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE3B,SAAS,GAAG;QACV,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,qBAAY,CACpB,oCAAoC,KAAK,CAAC,QAAQ,EAAE,EAAE,CACvD,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAM,CAAC;IAC/B,CAAC;IAED,SAAS,OAAO,CAAI,KAAQ,EAAE,EAAwB;QACpD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,YAAY;YACtB,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC;YACvB,CAAC,CAAC,IAAI,GAAG,EAAmB,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEtB,OAAO,eAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAS,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,SAAS,OAAO;QACd,OAAO,wDAA4B,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAkB,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO;QACL,EAAE,EAAE,KAAK;QACT,GAAG;QACH,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC"}
package/dist/define.d.ts CHANGED
@@ -1,113 +1,9 @@
1
- /**
2
- * Factory functions for defining tasks, resources, events and middleware.
3
- *
4
- * These helpers create strongly-typed definitions while also wiring internal
5
- * metadata: anonymous IDs, file path tags (for better debugging), lifecycle
6
- * events, and global middleware flags. See README for high-level concepts.
7
- */
8
- import { ITask, ITaskDefinition, IResource, IResourceWithConfig, IResourceDefinition, IEventDefinition, IMiddlewareDefinition, DependencyMapType, DependencyValuesType, IMiddleware, IEvent, RegisterableItems, ITag, ITagDefinition, ITaskMeta, IResourceMeta } from "./defs";
9
- /**
10
- * Define a task.
11
- * Generates a strongly-typed task object with id, lifecycle events, dependencies,
12
- * middleware, and metadata.
13
- *
14
- * - If `id` is omitted, an anonymous, file-based id is generated.
15
- * - Wires lifecycle events: `beforeRun`, `afterRun`, `onError`.
16
- * - Carries through dependencies, middleware, input schema, and metadata.
17
- *
18
- * @typeParam Input - Input type accepted by the task's `run` function.
19
- * @typeParam Output - Promise type returned by the `run` function.
20
- * @typeParam Deps - Dependency map type this task requires.
21
- * @typeParam TOn - Event type or "*" this task listens to.
22
- * @typeParam TMeta - Arbitrary metadata type carried by the task.
23
- * @param taskConfig - The task definition config.
24
- * @returns A branded task definition usable by the runner.
25
- */
26
- export declare function defineTask<Input = undefined, Output extends Promise<any> = any, Deps extends DependencyMapType = any, TOn extends "*" | IEventDefinition | undefined = undefined, TMeta extends ITaskMeta = any>(taskConfig: ITaskDefinition<Input, Output, Deps, TOn, TMeta>): ITask<Input, Output, Deps, TOn, TMeta>;
27
- export declare function defineResource<TConfig = void, TValue extends Promise<any> = Promise<any>, TDeps extends DependencyMapType = {}, TPrivate = any, TMeta extends IResourceMeta = any>(constConfig: IResourceDefinition<TConfig, TValue, TDeps, TPrivate, any, any, TMeta>): IResource<TConfig, TValue, TDeps, TPrivate, TMeta>;
28
- /**
29
- * Creates an "index" resource which groups multiple registerable items under
30
- * a single dependency. The resulting resource registers every item, depends
31
- * on the same items, and returns the resolved dependency map so users can
32
- * access them naturally: `deps.services.myTask()` or `deps.services.myResource`.
33
- */
34
- export declare function defineIndex<T extends Record<string, RegisterableItems>, D extends {
35
- [K in keyof T]: T[K] extends IResourceWithConfig<any, any, any> ? T[K]["resource"] : T[K];
36
- } & DependencyMapType>(items: T): IResource<void, Promise<DependencyValuesType<D>>, D>;
37
- export declare function defineEvent<TPayload = void>(config?: IEventDefinition<TPayload>): IEvent<TPayload>;
38
- export type MiddlewareEverywhereOptions = {
39
- /**
40
- * Enable this for tasks. Default is true.
41
- */
42
- tasks?: boolean;
43
- /**
44
- * Enable this for resources. Default is true.
45
- */
46
- resources?: boolean;
47
- };
48
- /**
49
- * Define a middleware.
50
- * Creates a middleware definition with anonymous id generation, `.with(config)`,
51
- * and `.everywhere()` helpers.
52
- *
53
- * - `.with(config)` merges config (optionally validated via `configSchema`).
54
- * - `.everywhere()` marks the middleware global (optionally scoping to tasks/resources).
55
- *
56
- * @typeParam TConfig - Configuration type accepted by the middleware.
57
- * @typeParam TDependencies - Dependency map type required by the middleware.
58
- * @param middlewareDef - The middleware definition config.
59
- * @returns A branded middleware definition usable by the runner.
60
- */
61
- export declare function defineMiddleware<TConfig extends Record<string, any>, TDependencies extends DependencyMapType>(middlewareDef: IMiddlewareDefinition<TConfig, TDependencies>): IMiddleware<TConfig, TDependencies>;
62
- /**
63
- * Type guard: checks if a definition is a Task.
64
- * @param definition - Any value to test.
65
- * @returns True when `definition` is a branded Task.
66
- */
67
- export declare function isTask(definition: any): definition is ITask;
68
- /**
69
- * Type guard: checks if a definition is a Resource.
70
- * @param definition - Any value to test.
71
- * @returns True when `definition` is a branded Resource.
72
- */
73
- export declare function isResource(definition: any): definition is IResource;
74
- /**
75
- * Type guard: checks if a definition is a Resource that carries config via `.with()`.
76
- * @param definition - Any value to test.
77
- * @returns True when `definition` is a branded ResourceWithConfig.
78
- */
79
- export declare function isResourceWithConfig(definition: any): definition is IResourceWithConfig;
80
- /**
81
- * Type guard: checks if a definition is an Event.
82
- * @param definition - Any value to test.
83
- * @returns True when `definition` is a branded Event.
84
- */
85
- export declare function isEvent(definition: any): definition is IEvent;
86
- /**
87
- * Type guard: checks if a definition is a Middleware.
88
- * @param definition - Any value to test.
89
- * @returns True when `definition` is a branded Middleware.
90
- */
91
- export declare function isMiddleware(definition: any): definition is IMiddleware;
92
- /**
93
- * Override helper that preserves the original `id` and returns the same type.
94
- * You can override any property except `id`. The override is shallow-merged over the base.
95
- *
96
- * @param base - The base definition to override.
97
- * @param patch - Properties to override (except `id`).
98
- * @returns A definition of the same kind with overrides applied.
99
- */
100
- export declare function defineOverride<T extends ITask<any, any, any, any>>(base: T, patch: Omit<Partial<T>, "id">): T;
101
- export declare function defineOverride<T extends IResource<any, any, any, any>>(base: T, patch: Omit<Partial<T>, "id">): T;
102
- export declare function defineOverride<T extends IMiddleware<any, any>>(base: T, patch: Omit<Partial<T>, "id">): T;
103
- /**
104
- * Create a tag definition.
105
- * - `.with(config)` to create configured instances
106
- * - `.extract(tags)` to extract this tag from a list of tags or a taggable's meta
107
- *
108
- * @typeParam TConfig - Configuration type carried by configured tags.
109
- * @typeParam TEnforceContract - Optional helper type to enforce a contract when tags are used.
110
- * @param definition - The tag definition (id).
111
- * @returns A tag object with helpers to configure and extract.
112
- */
113
- export declare function defineTag<TConfig = void, TEnforceContract = void>(definition: ITagDefinition<TConfig, TEnforceContract>): ITag<TConfig, TEnforceContract>;
1
+ export { defineTask } from "./definers/defineTask";
2
+ export { defineHook } from "./definers/defineHook";
3
+ export { defineResource } from "./definers/defineResource";
4
+ export { defineEvent } from "./definers/defineEvent";
5
+ export { defineTaskMiddleware } from "./definers/defineTaskMiddleware";
6
+ export { defineResourceMiddleware } from "./definers/defineResourceMiddleware";
7
+ export { defineOverride } from "./definers/defineOverride";
8
+ export { defineTag } from "./definers/defineTag";
9
+ export { isTask, isResource, isResourceWithConfig, isEvent, isHook, isTaskMiddleware, isResourceMiddleware, isTag, isOptional, } from "./definers/tools";
package/dist/define.js CHANGED
@@ -1,361 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineTask = defineTask;
4
- exports.defineResource = defineResource;
5
- exports.defineIndex = defineIndex;
6
- exports.defineEvent = defineEvent;
7
- exports.defineMiddleware = defineMiddleware;
8
- exports.isTask = isTask;
9
- exports.isResource = isResource;
10
- exports.isResourceWithConfig = isResourceWithConfig;
11
- exports.isEvent = isEvent;
12
- exports.isMiddleware = isMiddleware;
13
- exports.defineOverride = defineOverride;
14
- exports.defineTag = defineTag;
15
- /**
16
- * Factory functions for defining tasks, resources, events and middleware.
17
- *
18
- * These helpers create strongly-typed definitions while also wiring internal
19
- * metadata: anonymous IDs, file path tags (for better debugging), lifecycle
20
- * events, and global middleware flags. See README for high-level concepts.
21
- */
22
- const defs_1 = require("./defs");
23
- const errors_1 = require("./errors");
24
- const getCallerFile_1 = require("./tools/getCallerFile");
25
- // Helper function to get the caller file
26
- /**
27
- * Define a task.
28
- * Generates a strongly-typed task object with id, lifecycle events, dependencies,
29
- * middleware, and metadata.
30
- *
31
- * - If `id` is omitted, an anonymous, file-based id is generated.
32
- * - Wires lifecycle events: `beforeRun`, `afterRun`, `onError`.
33
- * - Carries through dependencies, middleware, input schema, and metadata.
34
- *
35
- * @typeParam Input - Input type accepted by the task's `run` function.
36
- * @typeParam Output - Promise type returned by the `run` function.
37
- * @typeParam Deps - Dependency map type this task requires.
38
- * @typeParam TOn - Event type or "*" this task listens to.
39
- * @typeParam TMeta - Arbitrary metadata type carried by the task.
40
- * @param taskConfig - The task definition config.
41
- * @returns A branded task definition usable by the runner.
42
- */
43
- function defineTask(taskConfig) {
44
- const filePath = (0, getCallerFile_1.getCallerFile)();
45
- const isAnonymous = !Boolean(taskConfig.id);
46
- const id = taskConfig.id || (0, getCallerFile_1.generateCallerIdFromFile)(filePath, "task");
47
- return {
48
- [defs_1.symbolTask]: true,
49
- [defs_1.symbolFilePath]: filePath,
50
- id,
51
- dependencies: taskConfig.dependencies || {},
52
- middleware: taskConfig.middleware || [],
53
- run: taskConfig.run,
54
- on: taskConfig.on,
55
- listenerOrder: taskConfig.listenerOrder,
56
- inputSchema: taskConfig.inputSchema,
57
- events: {
58
- beforeRun: {
59
- ...defineEvent({
60
- id: isAnonymous
61
- ? Symbol(`anonymous-task.events.beforeRun`)
62
- : `${id}.events.beforeRun`,
63
- }),
64
- [defs_1.symbolFilePath]: (0, getCallerFile_1.getCallerFile)(),
65
- },
66
- afterRun: {
67
- ...defineEvent({
68
- id: isAnonymous
69
- ? Symbol(`anonymous-task.events.afterRun`)
70
- : `${id}.events.afterRun`,
71
- }),
72
- [defs_1.symbolFilePath]: (0, getCallerFile_1.getCallerFile)(),
73
- },
74
- onError: {
75
- ...defineEvent({
76
- id: isAnonymous
77
- ? Symbol(`anonymous-task.events.onError`)
78
- : `${id}.events.onError`,
79
- }),
80
- [defs_1.symbolFilePath]: (0, getCallerFile_1.getCallerFile)(),
81
- },
82
- },
83
- meta: taskConfig.meta || {},
84
- // autorun,
85
- };
86
- }
87
- function defineResource(constConfig) {
88
- /**
89
- * Define a resource.
90
- * Produces a strongly-typed resource with id, lifecycle events, registration hooks,
91
- * and optional config schema.
92
- *
93
- * - If `id` is omitted, an anonymous, file-based id is generated (resource or index flavored).
94
- * - Wires lifecycle events: `beforeInit`, `afterInit`, `onError`.
95
- * - Provides `.with(config)` for config-bound registration with optional runtime validation.
96
- *
97
- * @typeParam TConfig - Configuration type accepted by the resource.
98
- * @typeParam TValue - Promise type resolved by the resource `init`.
99
- * @typeParam TDeps - Dependency map type this resource requires.
100
- * @typeParam TPrivate - Private context type exposed to middleware during init.
101
- * @typeParam TMeta - Arbitrary metadata type carried by the resource.
102
- * @param constConfig - The resource definition config.
103
- * @returns A branded resource definition usable by the runner.
104
- */
105
- // The symbolFilePath might already come from defineIndex() for example
106
- const filePath = constConfig[defs_1.symbolFilePath] || (0, getCallerFile_1.getCallerFile)();
107
- const isIndexResource = constConfig[defs_1.symbolIndexResource] || false;
108
- const isAnonymous = !Boolean(constConfig.id);
109
- const id = constConfig.id ||
110
- (0, getCallerFile_1.generateCallerIdFromFile)(filePath, isIndexResource ? "index" : "resource");
111
- return {
112
- [defs_1.symbolResource]: true,
113
- [defs_1.symbolFilePath]: filePath,
114
- [defs_1.symbolIndexResource]: isIndexResource,
115
- id,
116
- dependencies: constConfig.dependencies,
117
- dispose: constConfig.dispose,
118
- register: constConfig.register || [],
119
- overrides: constConfig.overrides || [],
120
- init: constConfig.init,
121
- context: constConfig.context,
122
- configSchema: constConfig.configSchema,
123
- with: function (config) {
124
- // Validate config with schema if provided (fail fast)
125
- if (this.configSchema) {
126
- try {
127
- config = this.configSchema.parse(config);
128
- }
129
- catch (error) {
130
- throw new errors_1.ValidationError("Resource config", this.id, error instanceof Error ? error : new Error(String(error)));
131
- }
132
- }
133
- return {
134
- [defs_1.symbolResourceWithConfig]: true,
135
- id: this.id,
136
- resource: this,
137
- config,
138
- };
139
- },
140
- events: {
141
- beforeInit: {
142
- ...defineEvent({
143
- id: isAnonymous
144
- ? Symbol(`anonymous-resource.events.beforeInit`)
145
- : `${id}.events.beforeInit`,
146
- }),
147
- [defs_1.symbolFilePath]: filePath,
148
- },
149
- afterInit: {
150
- ...defineEvent({
151
- id: isAnonymous
152
- ? Symbol(`anonymous-resource.events.afterInit`)
153
- : `${id}.events.afterInit`,
154
- }),
155
- [defs_1.symbolFilePath]: filePath,
156
- },
157
- onError: {
158
- ...defineEvent({
159
- id: isAnonymous
160
- ? Symbol(`anonymous-resource.events.onError`)
161
- : `${id}.events.onError`,
162
- }),
163
- [defs_1.symbolFilePath]: filePath,
164
- },
165
- },
166
- meta: (constConfig.meta || {}),
167
- middleware: constConfig.middleware || [],
168
- };
169
- }
170
- /**
171
- * Creates an "index" resource which groups multiple registerable items under
172
- * a single dependency. The resulting resource registers every item, depends
173
- * on the same items, and returns the resolved dependency map so users can
174
- * access them naturally: `deps.services.myTask()` or `deps.services.myResource`.
175
- */
176
- function defineIndex(items) {
177
- // Build dependency map from given items; unwrap `.with()` to the base resource
178
- const dependencies = {};
179
- const register = [];
180
- for (const key of Object.keys(items)) {
181
- const item = items[key];
182
- register.push(item);
183
- if (isResourceWithConfig(item)) {
184
- dependencies[key] = item.resource;
185
- }
186
- else {
187
- dependencies[key] = item;
188
- }
189
- }
190
- const callerFilePath = (0, getCallerFile_1.getCallerFile)();
191
- return defineResource({
192
- register,
193
- dependencies,
194
- async init(_, deps) {
195
- return deps;
196
- },
197
- [defs_1.symbolFilePath]: callerFilePath,
198
- [defs_1.symbolIndexResource]: true,
199
- });
200
- }
201
- function defineEvent(config) {
202
- /**
203
- * Define an event.
204
- * Generates a branded event definition with a stable id (anonymous if omitted)
205
- * and file path metadata for better debugging.
206
- *
207
- * @typeParam TPayload - Payload type carried by the event.
208
- * @param config - Optional event definition (id, etc.).
209
- * @returns A branded event definition.
210
- */
211
- const callerFilePath = (0, getCallerFile_1.getCallerFile)();
212
- const eventConfig = config || {};
213
- return {
214
- ...eventConfig,
215
- id: eventConfig.id || (0, getCallerFile_1.generateCallerIdFromFile)(callerFilePath, "event"),
216
- [defs_1.symbolFilePath]: callerFilePath,
217
- [defs_1.symbolEvent]: true, // This is a workaround
218
- };
219
- }
220
- /**
221
- * Define a middleware.
222
- * Creates a middleware definition with anonymous id generation, `.with(config)`,
223
- * and `.everywhere()` helpers.
224
- *
225
- * - `.with(config)` merges config (optionally validated via `configSchema`).
226
- * - `.everywhere()` marks the middleware global (optionally scoping to tasks/resources).
227
- *
228
- * @typeParam TConfig - Configuration type accepted by the middleware.
229
- * @typeParam TDependencies - Dependency map type required by the middleware.
230
- * @param middlewareDef - The middleware definition config.
231
- * @returns A branded middleware definition usable by the runner.
232
- */
233
- function defineMiddleware(middlewareDef) {
234
- const filePath = (0, getCallerFile_1.getCallerFile)();
235
- const object = {
236
- [defs_1.symbolFilePath]: filePath,
237
- [defs_1.symbolMiddleware]: true,
238
- config: {},
239
- id: middlewareDef.id || (0, getCallerFile_1.generateCallerIdFromFile)(filePath, "middleware"),
240
- ...middlewareDef,
241
- dependencies: middlewareDef.dependencies || {},
242
- };
243
- return {
244
- ...object,
245
- with: (config) => {
246
- // Validate config with schema if provided (fail fast)
247
- if (object.configSchema) {
248
- try {
249
- config = object.configSchema.parse(config);
250
- }
251
- catch (error) {
252
- throw new errors_1.ValidationError("Middleware config", object.id, error instanceof Error ? error : new Error(String(error)));
253
- }
254
- }
255
- return {
256
- ...object,
257
- [defs_1.symbolMiddlewareConfigured]: true,
258
- config: {
259
- ...object.config,
260
- ...config,
261
- },
262
- };
263
- },
264
- everywhere(options = {}) {
265
- const { tasks = true, resources = true } = options;
266
- return {
267
- ...object,
268
- [defs_1.symbolMiddlewareEverywhereTasks]: tasks,
269
- [defs_1.symbolMiddlewareEverywhereResources]: resources,
270
- everywhere() {
271
- throw new errors_1.MiddlewareAlreadyGlobalError(object.id);
272
- },
273
- };
274
- },
275
- };
276
- }
277
- /**
278
- * Type guard: checks if a definition is a Task.
279
- * @param definition - Any value to test.
280
- * @returns True when `definition` is a branded Task.
281
- */
282
- function isTask(definition) {
283
- return definition && definition[defs_1.symbolTask];
284
- }
285
- /**
286
- * Type guard: checks if a definition is a Resource.
287
- * @param definition - Any value to test.
288
- * @returns True when `definition` is a branded Resource.
289
- */
290
- function isResource(definition) {
291
- return definition && definition[defs_1.symbolResource];
292
- }
293
- /**
294
- * Type guard: checks if a definition is a Resource that carries config via `.with()`.
295
- * @param definition - Any value to test.
296
- * @returns True when `definition` is a branded ResourceWithConfig.
297
- */
298
- function isResourceWithConfig(definition) {
299
- return definition && definition[defs_1.symbolResourceWithConfig];
300
- }
301
- /**
302
- * Type guard: checks if a definition is an Event.
303
- * @param definition - Any value to test.
304
- * @returns True when `definition` is a branded Event.
305
- */
306
- function isEvent(definition) {
307
- return definition && definition[defs_1.symbolEvent];
308
- }
309
- /**
310
- * Type guard: checks if a definition is a Middleware.
311
- * @param definition - Any value to test.
312
- * @returns True when `definition` is a branded Middleware.
313
- */
314
- function isMiddleware(definition) {
315
- return definition && definition[defs_1.symbolMiddleware];
316
- }
317
- function defineOverride(base, patch) {
318
- const { id: _ignored, ...rest } = (patch || {});
319
- // Ensure we never change the id, and merge overrides last
320
- return {
321
- ...base,
322
- ...rest,
323
- id: base.id,
324
- };
325
- }
326
- /**
327
- * Create a tag definition.
328
- * - `.with(config)` to create configured instances
329
- * - `.extract(tags)` to extract this tag from a list of tags or a taggable's meta
330
- *
331
- * @typeParam TConfig - Configuration type carried by configured tags.
332
- * @typeParam TEnforceContract - Optional helper type to enforce a contract when tags are used.
333
- * @param definition - The tag definition (id).
334
- * @returns A tag object with helpers to configure and extract.
335
- */
336
- function defineTag(definition) {
337
- const id = definition.id;
338
- return {
339
- id,
340
- with(tagConfig) {
341
- return {
342
- id,
343
- tag: this,
344
- config: tagConfig,
345
- };
346
- },
347
- extract(target) {
348
- const tags = Array.isArray(target) ? target : target?.meta?.tags || [];
349
- for (const candidate of tags) {
350
- if (typeof candidate === "string")
351
- continue;
352
- // Configured instance
353
- if (candidate.id === id) {
354
- return candidate;
355
- }
356
- }
357
- return null;
358
- },
359
- };
360
- }
3
+ exports.isOptional = exports.isTag = exports.isResourceMiddleware = exports.isTaskMiddleware = exports.isHook = exports.isEvent = exports.isResourceWithConfig = exports.isResource = exports.isTask = exports.defineTag = exports.defineOverride = exports.defineResourceMiddleware = exports.defineTaskMiddleware = exports.defineEvent = exports.defineResource = exports.defineHook = exports.defineTask = void 0;
4
+ // Re-export all define functions from their separate files
5
+ var defineTask_1 = require("./definers/defineTask");
6
+ Object.defineProperty(exports, "defineTask", { enumerable: true, get: function () { return defineTask_1.defineTask; } });
7
+ var defineHook_1 = require("./definers/defineHook");
8
+ Object.defineProperty(exports, "defineHook", { enumerable: true, get: function () { return defineHook_1.defineHook; } });
9
+ var defineResource_1 = require("./definers/defineResource");
10
+ Object.defineProperty(exports, "defineResource", { enumerable: true, get: function () { return defineResource_1.defineResource; } });
11
+ var defineEvent_1 = require("./definers/defineEvent");
12
+ Object.defineProperty(exports, "defineEvent", { enumerable: true, get: function () { return defineEvent_1.defineEvent; } });
13
+ var defineTaskMiddleware_1 = require("./definers/defineTaskMiddleware");
14
+ Object.defineProperty(exports, "defineTaskMiddleware", { enumerable: true, get: function () { return defineTaskMiddleware_1.defineTaskMiddleware; } });
15
+ var defineResourceMiddleware_1 = require("./definers/defineResourceMiddleware");
16
+ Object.defineProperty(exports, "defineResourceMiddleware", { enumerable: true, get: function () { return defineResourceMiddleware_1.defineResourceMiddleware; } });
17
+ var defineOverride_1 = require("./definers/defineOverride");
18
+ Object.defineProperty(exports, "defineOverride", { enumerable: true, get: function () { return defineOverride_1.defineOverride; } });
19
+ var defineTag_1 = require("./definers/defineTag");
20
+ Object.defineProperty(exports, "defineTag", { enumerable: true, get: function () { return defineTag_1.defineTag; } });
21
+ // Re-export type guards and utility functions
22
+ var tools_1 = require("./definers/tools");
23
+ Object.defineProperty(exports, "isTask", { enumerable: true, get: function () { return tools_1.isTask; } });
24
+ Object.defineProperty(exports, "isResource", { enumerable: true, get: function () { return tools_1.isResource; } });
25
+ Object.defineProperty(exports, "isResourceWithConfig", { enumerable: true, get: function () { return tools_1.isResourceWithConfig; } });
26
+ Object.defineProperty(exports, "isEvent", { enumerable: true, get: function () { return tools_1.isEvent; } });
27
+ Object.defineProperty(exports, "isHook", { enumerable: true, get: function () { return tools_1.isHook; } });
28
+ Object.defineProperty(exports, "isTaskMiddleware", { enumerable: true, get: function () { return tools_1.isTaskMiddleware; } });
29
+ Object.defineProperty(exports, "isResourceMiddleware", { enumerable: true, get: function () { return tools_1.isResourceMiddleware; } });
30
+ Object.defineProperty(exports, "isTag", { enumerable: true, get: function () { return tools_1.isTag; } });
31
+ Object.defineProperty(exports, "isOptional", { enumerable: true, get: function () { return tools_1.isOptional; } });
361
32
  //# sourceMappingURL=define.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":";;;AAAA,2DAA2D;AAC3D,oDAAmD;AAA1C,wGAAA,UAAU,OAAA;AACnB,oDAAmD;AAA1C,wGAAA,UAAU,OAAA;AACnB,4DAA2D;AAAlD,gHAAA,cAAc,OAAA;AACvB,sDAAqD;AAA5C,0GAAA,WAAW,OAAA;AACpB,wEAAuE;AAA9D,4HAAA,oBAAoB,OAAA;AAC7B,gFAA+E;AAAtE,oIAAA,wBAAwB,OAAA;AACjC,4DAA2D;AAAlD,gHAAA,cAAc,OAAA;AACvB,kDAAiD;AAAxC,sGAAA,SAAS,OAAA;AAElB,8CAA8C;AAC9C,0CAU0B;AATxB,+FAAA,MAAM,OAAA;AACN,mGAAA,UAAU,OAAA;AACV,6GAAA,oBAAoB,OAAA;AACpB,gGAAA,OAAO,OAAA;AACP,+FAAA,MAAM,OAAA;AACN,yGAAA,gBAAgB,OAAA;AAChB,6GAAA,oBAAoB,OAAA;AACpB,8FAAA,KAAK,OAAA;AACL,mGAAA,UAAU,OAAA"}
@@ -0,0 +1,2 @@
1
+ import { IEvent, IEventDefinition } from "../defs";
2
+ export declare function defineEvent<TPayload = void>(config: IEventDefinition<TPayload>): IEvent<TPayload>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineEvent = defineEvent;
4
+ const defs_1 = require("../defs");
5
+ const getCallerFile_1 = require("../tools/getCallerFile");
6
+ function defineEvent(config) {
7
+ const callerFilePath = (0, getCallerFile_1.getCallerFile)();
8
+ const eventConfig = config;
9
+ return {
10
+ ...eventConfig,
11
+ id: eventConfig.id,
12
+ [defs_1.symbolFilePath]: callerFilePath,
13
+ [defs_1.symbolEvent]: true, // This is a workaround
14
+ tags: eventConfig.tags || [],
15
+ optional() {
16
+ return {
17
+ inner: this,
18
+ [defs_1.symbolOptionalDependency]: true,
19
+ };
20
+ },
21
+ };
22
+ }
23
+ //# sourceMappingURL=defineEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineEvent.js","sourceRoot":"","sources":["../../src/definers/defineEvent.ts"],"names":[],"mappings":";;AAUA,kCAkBC;AA5BD,kCAOiB;AACjB,0DAAuD;AAEvD,SAAgB,WAAW,CACzB,MAAkC;IAElC,MAAM,cAAc,GAAG,IAAA,6BAAa,GAAE,CAAC;IACvC,MAAM,WAAW,GAAG,MAAM,CAAC;IAC3B,OAAO;QACL,GAAG,WAAW;QACd,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,CAAC,qBAAc,CAAC,EAAE,cAAc;QAChC,CAAC,kBAAW,CAAC,EAAE,IAAI,EAAE,uBAAuB;QAC5C,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,EAAE;QAC5B,QAAQ;YACN,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,CAAC,+BAAwB,CAAC,EAAE,IAAI;aACQ,CAAC;QAC7C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { DependencyMapType, IEventDefinition, ITaskMeta, IHook, IHookDefinition } from "../defs";
2
+ /**
3
+ * Define a hook (event listeners).
4
+ * Same shape as task with mandatory `on` and without `middleware`.
5
+ */
6
+ export declare function defineHook<D extends DependencyMapType = any, TOn extends "*" | IEventDefinition = any, TMeta extends ITaskMeta = any>(hookDef: IHookDefinition<D, TOn, TMeta>): IHook<D, TOn, TMeta>;