effect-start 0.23.1 → 0.25.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 (355) hide show
  1. package/dist/ChildProcess.js +32 -20
  2. package/dist/Commander.js +377 -293
  3. package/dist/ContentNegotiation.js +424 -318
  4. package/dist/Cookies.js +340 -271
  5. package/dist/Development.js +85 -49
  6. package/dist/Effectify.js +22 -14
  7. package/dist/Entity.js +260 -195
  8. package/dist/Fetch.js +192 -0
  9. package/dist/FilePathPattern.js +88 -77
  10. package/dist/FileRouter.js +192 -136
  11. package/dist/FileRouterCodegen.js +262 -191
  12. package/dist/FileSystem.js +126 -64
  13. package/dist/Http.js +96 -77
  14. package/dist/PathPattern.js +311 -273
  15. package/dist/PlatformError.js +36 -21
  16. package/dist/PlatformRuntime.js +65 -40
  17. package/dist/Route.js +122 -79
  18. package/dist/RouteBody.js +83 -58
  19. package/dist/RouteError.js +46 -25
  20. package/dist/RouteHook.js +58 -34
  21. package/dist/RouteHttp.js +346 -237
  22. package/dist/RouteHttpTracer.js +86 -58
  23. package/dist/RouteMount.js +81 -58
  24. package/dist/RouteSchema.js +253 -170
  25. package/dist/RouteSse.js +87 -72
  26. package/dist/RouteTree.js +99 -73
  27. package/dist/RouteTrie.js +160 -133
  28. package/dist/SchemaExtra.js +87 -62
  29. package/dist/Socket.js +32 -21
  30. package/dist/SqlIntrospect.js +317 -268
  31. package/dist/Start.js +55 -25
  32. package/dist/StartApp.js +3 -21
  33. package/dist/StreamExtra.js +109 -74
  34. package/dist/System.js +37 -21
  35. package/dist/TuplePathPattern.js +64 -58
  36. package/dist/Unique.js +159 -120
  37. package/dist/Values.js +48 -32
  38. package/dist/bun/BunBundle.js +158 -109
  39. package/dist/bun/BunChildProcessSpawner.js +121 -82
  40. package/dist/bun/BunImportTrackerPlugin.js +85 -63
  41. package/dist/bun/BunRoute.js +135 -99
  42. package/dist/bun/BunRuntime.js +39 -29
  43. package/dist/bun/BunServer.js +268 -140
  44. package/dist/bun/BunVirtualFilesPlugin.js +47 -33
  45. package/dist/bun/_BunEnhancedResolve.js +107 -82
  46. package/dist/bun/index.js +5 -5
  47. package/dist/bundler/Bundle.js +82 -38
  48. package/dist/bundler/BundleFiles.js +140 -82
  49. package/dist/bundler/BundleRoute.js +49 -38
  50. package/dist/client/Overlay.js +29 -28
  51. package/dist/client/ScrollState.js +94 -82
  52. package/dist/client/index.js +79 -61
  53. package/dist/console/Console.js +40 -24
  54. package/dist/console/ConsoleErrors.js +189 -178
  55. package/dist/console/ConsoleLogger.js +52 -43
  56. package/dist/console/ConsoleMetrics.js +69 -58
  57. package/dist/console/ConsoleProcess.js +57 -47
  58. package/dist/console/ConsoleStore.js +56 -45
  59. package/dist/console/ConsoleTracer.js +101 -88
  60. package/dist/console/Simulation.js +714 -563
  61. package/dist/console/index.js +3 -3
  62. package/dist/console/routes/tree.js +29 -28
  63. package/dist/datastar/actions/fetch.js +514 -381
  64. package/dist/datastar/actions/peek.js +12 -12
  65. package/dist/datastar/actions/setAll.js +18 -11
  66. package/dist/datastar/actions/toggleAll.js +18 -11
  67. package/dist/datastar/attributes/attr.js +48 -47
  68. package/dist/datastar/attributes/bind.js +186 -167
  69. package/dist/datastar/attributes/class.js +51 -44
  70. package/dist/datastar/attributes/computed.js +23 -24
  71. package/dist/datastar/attributes/effect.js +9 -8
  72. package/dist/datastar/attributes/indicator.js +32 -29
  73. package/dist/datastar/attributes/init.js +26 -25
  74. package/dist/datastar/attributes/jsonSignals.js +32 -29
  75. package/dist/datastar/attributes/on.js +76 -73
  76. package/dist/datastar/attributes/onIntersect.js +51 -51
  77. package/dist/datastar/attributes/onInterval.js +30 -29
  78. package/dist/datastar/attributes/onSignalPatch.js +49 -40
  79. package/dist/datastar/attributes/ref.js +10 -9
  80. package/dist/datastar/attributes/show.js +31 -30
  81. package/dist/datastar/attributes/signals.js +17 -16
  82. package/dist/datastar/attributes/style.js +56 -49
  83. package/dist/datastar/attributes/text.js +28 -25
  84. package/dist/datastar/engine.js +1079 -933
  85. package/dist/datastar/index.js +25 -24
  86. package/dist/datastar/utils.js +203 -155
  87. package/dist/datastar/watchers/patchElements.js +459 -372
  88. package/dist/datastar/watchers/patchSignals.js +13 -13
  89. package/dist/experimental/EncryptedCookies.js +305 -189
  90. package/dist/experimental/index.js +1 -1
  91. package/dist/hyper/Hyper.js +22 -17
  92. package/dist/hyper/HyperHtml.js +138 -123
  93. package/dist/hyper/HyperNode.js +11 -9
  94. package/dist/hyper/HyperRoute.js +41 -28
  95. package/dist/hyper/html.js +27 -27
  96. package/dist/hyper/index.js +5 -5
  97. package/dist/hyper/jsx-runtime.js +11 -5
  98. package/dist/index.js +8 -8
  99. package/dist/node/NodeFileSystem.js +606 -341
  100. package/dist/node/NodeUtils.js +21 -18
  101. package/dist/sql/Sql.js +8 -0
  102. package/dist/sql/bun/index.js +134 -67
  103. package/dist/sql/index.js +1 -0
  104. package/dist/sql/libsql/index.js +156 -0
  105. package/dist/sql/mssql/docker.js +103 -60
  106. package/dist/sql/mssql/index.js +182 -101
  107. package/dist/testing/TestLogger.js +39 -29
  108. package/dist/testing/index.js +2 -2
  109. package/dist/testing/utils.js +45 -23
  110. package/dist/x/cloudflare/CloudflareTunnel.js +61 -28
  111. package/dist/x/cloudflare/index.js +1 -1
  112. package/dist/x/tailscale/TailscaleTunnel.js +86 -60
  113. package/dist/x/tailscale/index.js +1 -1
  114. package/dist/x/tailwind/TailwindPlugin.js +280 -205
  115. package/dist/x/tailwind/compile.js +185 -129
  116. package/dist/x/tailwind/plugin.js +13 -11
  117. package/package.json +1 -1
  118. package/src/Development.ts +3 -1
  119. package/src/Entity.ts +17 -0
  120. package/src/Fetch.ts +271 -0
  121. package/src/SqlIntrospect.ts +64 -70
  122. package/src/Start.ts +21 -24
  123. package/src/StartApp.ts +1 -1
  124. package/src/bun/BunServer.ts +42 -10
  125. package/src/hyper/HyperHtml.ts +0 -1
  126. package/src/sql/bun/index.ts +1 -1
  127. package/src/sql/index.ts +1 -0
  128. package/src/sql/libsql/index.ts +173 -0
  129. package/src/sql/libsql/libsql.d.ts +39 -0
  130. package/src/sql/mssql/index.ts +1 -1
  131. package/dist/BlobStore.d.ts +0 -80
  132. package/dist/BlobStore.js +0 -19
  133. package/dist/ChildProcess.d.ts +0 -60
  134. package/dist/Commander.d.ts +0 -100
  135. package/dist/ContentNegotiation.d.ts +0 -12
  136. package/dist/Cookies.d.ts +0 -47
  137. package/dist/Development.d.ts +0 -39
  138. package/dist/Effectify.d.ts +0 -209
  139. package/dist/Entity.d.ts +0 -47
  140. package/dist/FilePathPattern.d.ts +0 -29
  141. package/dist/FileRouter.d.ts +0 -56
  142. package/dist/FileRouterCodegen.d.ts +0 -18
  143. package/dist/FileRouterPattern.d.ts +0 -9
  144. package/dist/FileRouterPattern.js +0 -35
  145. package/dist/FileSystem.d.ts +0 -158
  146. package/dist/Http.d.ts +0 -37
  147. package/dist/HttpAppExtra.d.ts +0 -7
  148. package/dist/HttpAppExtra.js +0 -320
  149. package/dist/HttpUtils.d.ts +0 -3
  150. package/dist/HttpUtils.js +0 -11
  151. package/dist/PathPattern.d.ts +0 -134
  152. package/dist/PlatformError.d.ts +0 -38
  153. package/dist/PlatformRuntime.d.ts +0 -27
  154. package/dist/Route.d.ts +0 -97
  155. package/dist/RouteBody.d.ts +0 -47
  156. package/dist/RouteError.d.ts +0 -98
  157. package/dist/RouteHook.d.ts +0 -12
  158. package/dist/RouteHttp.d.ts +0 -21
  159. package/dist/RouteHttpTracer.d.ts +0 -10
  160. package/dist/RouteMount.d.ts +0 -86
  161. package/dist/RouteSchema.d.ts +0 -86
  162. package/dist/RouteSse.d.ts +0 -21
  163. package/dist/RouteTree.d.ts +0 -57
  164. package/dist/RouteTrie.d.ts +0 -20
  165. package/dist/RouterPattern.d.ts +0 -118
  166. package/dist/RouterPattern.js +0 -269
  167. package/dist/SchemaExtra.d.ts +0 -7
  168. package/dist/Socket.d.ts +0 -27
  169. package/dist/Sql.d.ts +0 -34
  170. package/dist/Sql.js +0 -5
  171. package/dist/SqlIntrospect.d.ts +0 -91
  172. package/dist/Start.d.ts +0 -44
  173. package/dist/StartApp.d.ts +0 -19
  174. package/dist/StreamExtra.d.ts +0 -28
  175. package/dist/System.d.ts +0 -7
  176. package/dist/TuplePathPattern.d.ts +0 -9
  177. package/dist/Unique.d.ts +0 -50
  178. package/dist/Values.d.ts +0 -27
  179. package/dist/bun/BunBlobStoreDisk.d.ts +0 -6
  180. package/dist/bun/BunBlobStoreDisk.js +0 -116
  181. package/dist/bun/BunBlobStoreS3.d.ts +0 -11
  182. package/dist/bun/BunBlobStoreS3.js +0 -89
  183. package/dist/bun/BunBlobWatcherDisk.d.ts +0 -6
  184. package/dist/bun/BunBlobWatcherDisk.js +0 -60
  185. package/dist/bun/BunBlobWatcherQueue.d.ts +0 -6
  186. package/dist/bun/BunBlobWatcherQueue.js +0 -17
  187. package/dist/bun/BunBundle.d.ts +0 -11
  188. package/dist/bun/BunChildProcessSpawner.d.ts +0 -3
  189. package/dist/bun/BunHttpServer.d.ts +0 -44
  190. package/dist/bun/BunHttpServer.js +0 -186
  191. package/dist/bun/BunHttpServer_web.d.ts +0 -60
  192. package/dist/bun/BunHttpServer_web.js +0 -252
  193. package/dist/bun/BunImportTrackerPlugin.d.ts +0 -13
  194. package/dist/bun/BunPlatformHttpServer.d.ts +0 -10
  195. package/dist/bun/BunPlatformHttpServer.js +0 -53
  196. package/dist/bun/BunRoute.d.ts +0 -48
  197. package/dist/bun/BunRuntime.d.ts +0 -2
  198. package/dist/bun/BunServer.d.ts +0 -40
  199. package/dist/bun/BunServerRequest.d.ts +0 -60
  200. package/dist/bun/BunServerRequest.js +0 -252
  201. package/dist/bun/BunSql.d.ts +0 -4
  202. package/dist/bun/BunSql.js +0 -81
  203. package/dist/bun/BunVirtualFilesPlugin.d.ts +0 -4
  204. package/dist/bun/_BunEnhancedResolve.d.ts +0 -45
  205. package/dist/bun/index.d.ts +0 -5
  206. package/dist/bundler/Bundle.d.ts +0 -61
  207. package/dist/bundler/BundleFiles.d.ts +0 -13
  208. package/dist/bundler/BundleHttp.d.ts +0 -45
  209. package/dist/bundler/BundleHttp.js +0 -176
  210. package/dist/bundler/BundleRoute.d.ts +0 -27
  211. package/dist/client/Overlay.d.ts +0 -2
  212. package/dist/client/ScrollState.d.ts +0 -6
  213. package/dist/client/index.d.ts +0 -6
  214. package/dist/console/Console.d.ts +0 -6
  215. package/dist/console/ConsoleErrors.d.ts +0 -3
  216. package/dist/console/ConsoleLogger.d.ts +0 -3
  217. package/dist/console/ConsoleMetrics.d.ts +0 -3
  218. package/dist/console/ConsoleProcess.d.ts +0 -3
  219. package/dist/console/ConsoleStore.d.ts +0 -144
  220. package/dist/console/ConsoleTracer.d.ts +0 -3
  221. package/dist/console/Simulation.d.ts +0 -2
  222. package/dist/console/index.d.ts +0 -3
  223. package/dist/console/routes/errors/route.d.ts +0 -10
  224. package/dist/console/routes/errors/route.js +0 -47
  225. package/dist/console/routes/fiberDetail.d.ts +0 -16
  226. package/dist/console/routes/fiberDetail.js +0 -38
  227. package/dist/console/routes/fibers/route.d.ts +0 -10
  228. package/dist/console/routes/fibers/route.js +0 -19
  229. package/dist/console/routes/git/route.d.ts +0 -11
  230. package/dist/console/routes/git/route.js +0 -33
  231. package/dist/console/routes/layout.d.ts +0 -9
  232. package/dist/console/routes/layout.js +0 -3
  233. package/dist/console/routes/logs/route.d.ts +0 -10
  234. package/dist/console/routes/logs/route.js +0 -32
  235. package/dist/console/routes/metrics/route.d.ts +0 -10
  236. package/dist/console/routes/metrics/route.js +0 -17
  237. package/dist/console/routes/route.d.ts +0 -6
  238. package/dist/console/routes/route.js +0 -5
  239. package/dist/console/routes/routes/route.d.ts +0 -6
  240. package/dist/console/routes/routes/route.js +0 -20
  241. package/dist/console/routes/services/route.d.ts +0 -6
  242. package/dist/console/routes/services/route.js +0 -12
  243. package/dist/console/routes/system/route.d.ts +0 -10
  244. package/dist/console/routes/system/route.js +0 -18
  245. package/dist/console/routes/traceDetail.d.ts +0 -16
  246. package/dist/console/routes/traceDetail.js +0 -14
  247. package/dist/console/routes/traces/route.d.ts +0 -10
  248. package/dist/console/routes/traces/route.js +0 -39
  249. package/dist/console/routes/tree.d.ts +0 -153
  250. package/dist/console/ui/Errors.d.ts +0 -4
  251. package/dist/console/ui/Errors.js +0 -15
  252. package/dist/console/ui/Fibers.d.ts +0 -24
  253. package/dist/console/ui/Fibers.js +0 -121
  254. package/dist/console/ui/Git.d.ts +0 -20
  255. package/dist/console/ui/Git.js +0 -95
  256. package/dist/console/ui/Logs.d.ts +0 -4
  257. package/dist/console/ui/Logs.js +0 -25
  258. package/dist/console/ui/Metrics.d.ts +0 -4
  259. package/dist/console/ui/Metrics.js +0 -26
  260. package/dist/console/ui/Routes.d.ts +0 -8
  261. package/dist/console/ui/Routes.js +0 -70
  262. package/dist/console/ui/Services.d.ts +0 -10
  263. package/dist/console/ui/Services.js +0 -246
  264. package/dist/console/ui/Shell.d.ts +0 -10
  265. package/dist/console/ui/Shell.js +0 -7
  266. package/dist/console/ui/System.d.ts +0 -4
  267. package/dist/console/ui/System.js +0 -35
  268. package/dist/console/ui/Traces.d.ts +0 -12
  269. package/dist/console/ui/Traces.js +0 -179
  270. package/dist/datastar/actions/fetch.d.ts +0 -30
  271. package/dist/datastar/actions/peek.d.ts +0 -1
  272. package/dist/datastar/actions/setAll.d.ts +0 -1
  273. package/dist/datastar/actions/toggleAll.d.ts +0 -1
  274. package/dist/datastar/attributes/attr.d.ts +0 -1
  275. package/dist/datastar/attributes/bind.d.ts +0 -1
  276. package/dist/datastar/attributes/class.d.ts +0 -1
  277. package/dist/datastar/attributes/computed.d.ts +0 -1
  278. package/dist/datastar/attributes/effect.d.ts +0 -1
  279. package/dist/datastar/attributes/indicator.d.ts +0 -1
  280. package/dist/datastar/attributes/init.d.ts +0 -1
  281. package/dist/datastar/attributes/jsonSignals.d.ts +0 -1
  282. package/dist/datastar/attributes/on.d.ts +0 -1
  283. package/dist/datastar/attributes/onIntersect.d.ts +0 -1
  284. package/dist/datastar/attributes/onInterval.d.ts +0 -1
  285. package/dist/datastar/attributes/onSignalPatch.d.ts +0 -1
  286. package/dist/datastar/attributes/ref.d.ts +0 -1
  287. package/dist/datastar/attributes/show.d.ts +0 -1
  288. package/dist/datastar/attributes/signals.d.ts +0 -1
  289. package/dist/datastar/attributes/style.d.ts +0 -1
  290. package/dist/datastar/attributes/text.d.ts +0 -1
  291. package/dist/datastar/engine.d.ts +0 -162
  292. package/dist/datastar/happydom.d.ts +0 -1
  293. package/dist/datastar/happydom.js +0 -8
  294. package/dist/datastar/index.d.ts +0 -24
  295. package/dist/datastar/load.d.ts +0 -24
  296. package/dist/datastar/load.js +0 -24
  297. package/dist/datastar/utils.d.ts +0 -51
  298. package/dist/datastar/watchers/patchElements.d.ts +0 -1
  299. package/dist/datastar/watchers/patchSignals.d.ts +0 -1
  300. package/dist/experimental/EncryptedCookies.d.ts +0 -48
  301. package/dist/experimental/SseHttpResponse.d.ts +0 -7
  302. package/dist/experimental/SseHttpResponse.js +0 -28
  303. package/dist/experimental/index.d.ts +0 -1
  304. package/dist/hyper/Hyper.d.ts +0 -25
  305. package/dist/hyper/HyperHtml.d.ts +0 -23
  306. package/dist/hyper/HyperHtml.test.d.ts +0 -1
  307. package/dist/hyper/HyperHtml.test.js +0 -197
  308. package/dist/hyper/HyperNode.d.ts +0 -14
  309. package/dist/hyper/HyperRoute.d.ts +0 -8
  310. package/dist/hyper/HyperRoute.test.d.ts +0 -1
  311. package/dist/hyper/HyperRoute.test.js +0 -83
  312. package/dist/hyper/html.d.ts +0 -11
  313. package/dist/hyper/index.d.ts +0 -6
  314. package/dist/hyper/jsx-runtime.d.ts +0 -7
  315. package/dist/index.d.ts +0 -8
  316. package/dist/inference_check.d.ts +0 -1
  317. package/dist/inference_check.js +0 -15
  318. package/dist/lint/plugin.d.ts +0 -86
  319. package/dist/lint/plugin.js +0 -341
  320. package/dist/middlewares/BasicAuthMiddleware.d.ts +0 -8
  321. package/dist/middlewares/BasicAuthMiddleware.js +0 -22
  322. package/dist/middlewares/index.d.ts +0 -1
  323. package/dist/middlewares/index.js +0 -1
  324. package/dist/node/Effectify.d.ts +0 -209
  325. package/dist/node/Effectify.js +0 -19
  326. package/dist/node/FileSystem.d.ts +0 -7
  327. package/dist/node/FileSystem.js +0 -420
  328. package/dist/node/NodeFileSystem.d.ts +0 -7
  329. package/dist/node/NodeUtils.d.ts +0 -2
  330. package/dist/node/PlatformError.d.ts +0 -46
  331. package/dist/node/PlatformError.js +0 -43
  332. package/dist/node/Utils.d.ts +0 -1
  333. package/dist/node/Utils.js +0 -19
  334. package/dist/repro_fail.d.ts +0 -1
  335. package/dist/repro_fail.js +0 -14
  336. package/dist/sql/bun/index.d.ts +0 -3
  337. package/dist/sql/mssql/docker.d.ts +0 -2
  338. package/dist/sql/mssql/index.d.ts +0 -21
  339. package/dist/testing/TestHttpClient.d.ts +0 -13
  340. package/dist/testing/TestHttpClient.js +0 -68
  341. package/dist/testing/TestLogger.d.ts +0 -13
  342. package/dist/testing/index.d.ts +0 -2
  343. package/dist/testing/utils.d.ts +0 -9
  344. package/dist/x/cloudflare/CloudflareTunnel.d.ts +0 -10
  345. package/dist/x/cloudflare/index.d.ts +0 -1
  346. package/dist/x/datastar/Datastar.d.ts +0 -6
  347. package/dist/x/datastar/Datastar.js +0 -47
  348. package/dist/x/datastar/index.d.ts +0 -1
  349. package/dist/x/datastar/index.js +0 -1
  350. package/dist/x/tailscale/TailscaleTunnel.d.ts +0 -15
  351. package/dist/x/tailscale/index.d.ts +0 -1
  352. package/dist/x/tailwind/TailwindPlugin.d.ts +0 -23
  353. package/dist/x/tailwind/compile.d.ts +0 -19
  354. package/dist/x/tailwind/plugin.d.ts +0 -2
  355. /package/src/{Sql.ts → sql/Sql.ts} +0 -0
@@ -1,62 +1,90 @@
1
- import * as Effect from "effect/Effect";
2
- import * as FiberRef from "effect/FiberRef";
3
- import * as GlobalValue from "effect/GlobalValue";
4
- import * as Option from "effect/Option";
5
- import * as Tracer from "effect/Tracer";
6
- export const currentTracerDisabledWhen = GlobalValue.globalValue(Symbol.for("effect-start/RouteHttp/tracerDisabledWhen"), () => FiberRef.unsafeMake(() => false));
7
- export const withTracerDisabledWhen = (effect, predicate) => Effect.locally(effect, currentTracerDisabledWhen, predicate);
8
- export const currentSpanNameGenerator = GlobalValue.globalValue(Symbol.for("effect-start/RouteHttp/spanNameGenerator"), () => FiberRef.unsafeMake((request) => `http.server ${request.method}`));
9
- export const withSpanNameGenerator = (effect, f) => Effect.locally(effect, currentSpanNameGenerator, f);
1
+ import * as Effect from "effect/Effect"
2
+ import * as FiberRef from "effect/FiberRef"
3
+ import * as GlobalValue from "effect/GlobalValue"
4
+ import * as Option from "effect/Option"
5
+ import * as Tracer from "effect/Tracer"
6
+
7
+ export const currentTracerDisabledWhen = GlobalValue.globalValue(
8
+ Symbol.for("effect-start/RouteHttp/tracerDisabledWhen"),
9
+ () => FiberRef.unsafeMake(() => false),
10
+ )
11
+
12
+ export const withTracerDisabledWhen = (
13
+ effect,
14
+ predicate,
15
+ ) => Effect.locally(effect, currentTracerDisabledWhen, predicate)
16
+
17
+ export const currentSpanNameGenerator = GlobalValue.globalValue(
18
+ Symbol.for("effect-start/RouteHttp/spanNameGenerator"),
19
+ () =>
20
+ FiberRef.unsafeMake((request) => `http.server ${request.method}`),
21
+ )
22
+
23
+ export const withSpanNameGenerator = (
24
+ effect,
25
+ f,
26
+ ) => Effect.locally(effect, currentSpanNameGenerator, f)
27
+
10
28
  const w3cTraceparent = (headers) => {
11
- const header = headers.get("traceparent");
12
- if (header === null)
13
- return Option.none();
14
- const parts = header.split("-");
15
- if (parts.length < 4)
16
- return Option.none();
17
- const [_version, traceId, spanId, flags] = parts;
18
- if (!traceId || !spanId)
19
- return Option.none();
20
- return Option.some(Tracer.externalSpan({
21
- spanId,
22
- traceId,
23
- sampled: flags === "01",
24
- }));
25
- };
29
+ const header = headers.get("traceparent")
30
+ if (header === null) return Option.none()
31
+
32
+ const parts = header.split("-")
33
+ if (parts.length < 4) return Option.none()
34
+
35
+ const [_version, traceId, spanId, flags] = parts
36
+ if (!traceId || !spanId) return Option.none()
37
+
38
+ return Option.some(
39
+ Tracer.externalSpan({
40
+ spanId,
41
+ traceId,
42
+ sampled: flags === "01",
43
+ }),
44
+ )
45
+ }
46
+
26
47
  const b3Single = (headers) => {
27
- const header = headers.get("b3");
28
- if (header === null)
29
- return Option.none();
30
- const parts = header.split("-");
31
- if (parts.length < 2)
32
- return Option.none();
33
- const [traceId, spanId, sampledStr] = parts;
34
- if (!traceId || !spanId)
35
- return Option.none();
36
- return Option.some(Tracer.externalSpan({
37
- spanId,
38
- traceId,
39
- sampled: sampledStr === "1",
40
- }));
41
- };
48
+ const header = headers.get("b3")
49
+ if (header === null) return Option.none()
50
+
51
+ const parts = header.split("-")
52
+ if (parts.length < 2) return Option.none()
53
+
54
+ const [traceId, spanId, sampledStr] = parts
55
+ if (!traceId || !spanId) return Option.none()
56
+
57
+ return Option.some(
58
+ Tracer.externalSpan({
59
+ spanId,
60
+ traceId,
61
+ sampled: sampledStr === "1",
62
+ }),
63
+ )
64
+ }
65
+
42
66
  const xb3 = (headers) => {
43
- const traceId = headers.get("x-b3-traceid");
44
- const spanId = headers.get("x-b3-spanid");
45
- if (traceId === null || spanId === null)
46
- return Option.none();
47
- const sampled = headers.get("x-b3-sampled");
48
- return Option.some(Tracer.externalSpan({
49
- spanId,
50
- traceId,
51
- sampled: sampled === "1",
52
- }));
53
- };
67
+ const traceId = headers.get("x-b3-traceid")
68
+ const spanId = headers.get("x-b3-spanid")
69
+ if (traceId === null || spanId === null) return Option.none()
70
+
71
+ const sampled = headers.get("x-b3-sampled")
72
+
73
+ return Option.some(
74
+ Tracer.externalSpan({
75
+ spanId,
76
+ traceId,
77
+ sampled: sampled === "1",
78
+ }),
79
+ )
80
+ }
81
+
54
82
  export const parentSpanFromHeaders = (headers) => {
55
- let span = w3cTraceparent(headers);
56
- if (span._tag === "Some")
57
- return span;
58
- span = b3Single(headers);
59
- if (span._tag === "Some")
60
- return span;
61
- return xb3(headers);
62
- };
83
+ let span = w3cTraceparent(headers)
84
+ if (span._tag === "Some") return span
85
+
86
+ span = b3Single(headers)
87
+ if (span._tag === "Some") return span
88
+
89
+ return xb3(headers)
90
+ }
@@ -1,63 +1,86 @@
1
- import * as Function from "effect/Function";
2
- import * as Route from "./Route.js";
3
- const RouteSetTypeId = Symbol.for("effect-start/RouteSet");
4
- export const use = makeMethodDescriber("*");
5
- export const get = makeMethodDescriber("GET");
6
- export const post = makeMethodDescriber("POST");
7
- export const put = makeMethodDescriber("PUT");
8
- export const del = makeMethodDescriber("DELETE");
9
- export const patch = makeMethodDescriber("PATCH");
10
- export const head = makeMethodDescriber("HEAD");
11
- export const options = makeMethodDescriber("OPTIONS");
12
- export const add = function (path, routes) {
13
- const baseItems = Route.isRouteSet(this) ? Route.items(this) : [];
14
- const routeSet = typeof routes === "function" ? routes(make([])) : routes;
15
- const routeItems = Route.items(routeSet);
16
- const newItems = routeItems.map((item) => {
17
- const itemDescriptor = Route.descriptor(item);
18
- const concatenatedPath = typeof itemDescriptor?.path === "string" ? path + itemDescriptor.path : path;
19
- const newDescriptor = { ...itemDescriptor, path: concatenatedPath };
20
- return Route.isRoute(item)
21
- ? Route.make(item.handler, newDescriptor)
22
- : Route.set(Route.items(item), newDescriptor);
23
- });
24
- return make([...baseItems, ...newItems]);
25
- };
1
+ import * as Function from "effect/Function"
2
+ import * as Route from "./Route.js"
3
+
4
+ const RouteSetTypeId = Symbol.for("effect-start/RouteSet")
5
+
6
+ // oxlint-disable-next-line import/first, typescript/consistent-type-imports -- typeof import() is not an import statement
7
+
8
+ export const use = makeMethodDescriber("*")
9
+ export const get = makeMethodDescriber("GET")
10
+ export const post = makeMethodDescriber("POST")
11
+ export const put = makeMethodDescriber("PUT")
12
+ export const del = makeMethodDescriber("DELETE")
13
+ export const patch = makeMethodDescriber("PATCH")
14
+ export const head = makeMethodDescriber("HEAD")
15
+ export const options = makeMethodDescriber("OPTIONS")
16
+
17
+ export const add = function (
18
+ path,
19
+ routes,
20
+ ) {
21
+ const baseItems = Route.isRouteSet(this) ? Route.items(this) : (/** @type {const} */ [])
22
+
23
+ const routeSet = typeof routes === "function" ? routes(make([])) : routes
24
+ const routeItems = Route.items(routeSet)
25
+ const newItems = routeItems.map((item) => {
26
+ const itemDescriptor = Route.descriptor(item)
27
+ const concatenatedPath =
28
+ typeof itemDescriptor?.path === "string" ? path + itemDescriptor.path : path
29
+ const newDescriptor = { ...itemDescriptor, path: concatenatedPath }
30
+ return Route.isRoute(item)
31
+ ? Route.make(item.handler, newDescriptor)
32
+ : Route.set(Route.items(item), newDescriptor)
33
+ })
34
+
35
+ return make([...baseItems, ...newItems])
36
+ }
37
+
26
38
  const Proto = Object.assign(Object.create(null), {
27
- [RouteSetTypeId]: RouteSetTypeId,
28
- *[Symbol.iterator]() {
29
- yield* Route.items(this);
30
- },
31
- use,
32
- get,
33
- post,
34
- put,
35
- del,
36
- patch,
37
- head,
38
- options,
39
- add,
40
- });
39
+ [RouteSetTypeId]: RouteSetTypeId,
40
+ *[Symbol.iterator]() {
41
+ yield* Route.items(this)
42
+ },
43
+ use,
44
+ get,
45
+ post,
46
+ put,
47
+ del,
48
+ patch,
49
+ head,
50
+ options,
51
+ add,
52
+ })
53
+
41
54
  function make(items) {
42
- return Object.assign(Object.create(Proto), {
43
- [Route.RouteItems]: items,
44
- [Route.RouteDescriptor]: {},
45
- });
55
+ return Object.assign(Object.create(Proto), {
56
+ [Route.RouteItems]: items,
57
+ [Route.RouteDescriptor]: {},
58
+ })
46
59
  }
60
+
47
61
  function makeMethodDescriber(method) {
48
- function describeMethod(...fs) {
49
- const baseItems = Route.isRouteSet(this) ? Route.items(this) : [];
50
- const methodSet = Route.set([], { method });
51
- const f = Function.flow(...fs);
52
- const result = f(methodSet);
53
- const resultItems = Route.items(result);
54
- // Items are already flat (only Routes), just merge method into each descriptor
55
- const flattenedItems = resultItems.map((item) => {
56
- const itemDescriptor = Route.descriptor(item);
57
- const newDescriptor = { method, ...itemDescriptor };
58
- return Route.make(item.handler, newDescriptor);
59
- });
60
- return make([...baseItems, ...flattenedItems]);
61
- }
62
- return describeMethod;
62
+ function describeMethod(
63
+ ...fs
64
+ ) {
65
+ const baseItems = Route.isRouteSet(this) ? Route.items(this) : (/** @type {const} */ [])
66
+
67
+ const methodSet = Route.set([], { method })
68
+ const f = Function.flow(...(fs))
69
+ const result = f(methodSet)
70
+ const resultItems = Route.items(result)
71
+
72
+ // Items are already flat (only Routes), just merge method into each descriptor
73
+ const flattenedItems = resultItems.map((item) => {
74
+ const itemDescriptor = Route.descriptor(item)
75
+ const newDescriptor = { method, ...itemDescriptor }
76
+ return Route.make(
77
+ (item).handler,
78
+ newDescriptor,
79
+ )
80
+ })
81
+
82
+ return make([...baseItems, ...flattenedItems])
83
+ }
84
+ return describeMethod
63
85
  }
86
+