effect-start 0.23.0 → 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 (356) 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 +24 -22
  123. package/src/StartApp.ts +11 -0
  124. package/src/bun/BunServer.ts +89 -16
  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/src/x/tailscale/TailscaleTunnel.ts +7 -5
  132. package/dist/BlobStore.d.ts +0 -80
  133. package/dist/BlobStore.js +0 -19
  134. package/dist/ChildProcess.d.ts +0 -60
  135. package/dist/Commander.d.ts +0 -100
  136. package/dist/ContentNegotiation.d.ts +0 -12
  137. package/dist/Cookies.d.ts +0 -47
  138. package/dist/Development.d.ts +0 -39
  139. package/dist/Effectify.d.ts +0 -209
  140. package/dist/Entity.d.ts +0 -47
  141. package/dist/FilePathPattern.d.ts +0 -29
  142. package/dist/FileRouter.d.ts +0 -56
  143. package/dist/FileRouterCodegen.d.ts +0 -18
  144. package/dist/FileRouterPattern.d.ts +0 -9
  145. package/dist/FileRouterPattern.js +0 -35
  146. package/dist/FileSystem.d.ts +0 -158
  147. package/dist/Http.d.ts +0 -37
  148. package/dist/HttpAppExtra.d.ts +0 -7
  149. package/dist/HttpAppExtra.js +0 -320
  150. package/dist/HttpUtils.d.ts +0 -3
  151. package/dist/HttpUtils.js +0 -11
  152. package/dist/PathPattern.d.ts +0 -134
  153. package/dist/PlatformError.d.ts +0 -38
  154. package/dist/PlatformRuntime.d.ts +0 -27
  155. package/dist/Route.d.ts +0 -97
  156. package/dist/RouteBody.d.ts +0 -47
  157. package/dist/RouteError.d.ts +0 -98
  158. package/dist/RouteHook.d.ts +0 -12
  159. package/dist/RouteHttp.d.ts +0 -21
  160. package/dist/RouteHttpTracer.d.ts +0 -10
  161. package/dist/RouteMount.d.ts +0 -86
  162. package/dist/RouteSchema.d.ts +0 -86
  163. package/dist/RouteSse.d.ts +0 -21
  164. package/dist/RouteTree.d.ts +0 -57
  165. package/dist/RouteTrie.d.ts +0 -20
  166. package/dist/RouterPattern.d.ts +0 -118
  167. package/dist/RouterPattern.js +0 -269
  168. package/dist/SchemaExtra.d.ts +0 -7
  169. package/dist/Socket.d.ts +0 -27
  170. package/dist/Sql.d.ts +0 -34
  171. package/dist/Sql.js +0 -5
  172. package/dist/SqlIntrospect.d.ts +0 -91
  173. package/dist/Start.d.ts +0 -44
  174. package/dist/StartApp.d.ts +0 -19
  175. package/dist/StreamExtra.d.ts +0 -28
  176. package/dist/System.d.ts +0 -7
  177. package/dist/TuplePathPattern.d.ts +0 -9
  178. package/dist/Unique.d.ts +0 -50
  179. package/dist/Values.d.ts +0 -27
  180. package/dist/bun/BunBlobStoreDisk.d.ts +0 -6
  181. package/dist/bun/BunBlobStoreDisk.js +0 -116
  182. package/dist/bun/BunBlobStoreS3.d.ts +0 -11
  183. package/dist/bun/BunBlobStoreS3.js +0 -89
  184. package/dist/bun/BunBlobWatcherDisk.d.ts +0 -6
  185. package/dist/bun/BunBlobWatcherDisk.js +0 -60
  186. package/dist/bun/BunBlobWatcherQueue.d.ts +0 -6
  187. package/dist/bun/BunBlobWatcherQueue.js +0 -17
  188. package/dist/bun/BunBundle.d.ts +0 -11
  189. package/dist/bun/BunChildProcessSpawner.d.ts +0 -3
  190. package/dist/bun/BunHttpServer.d.ts +0 -44
  191. package/dist/bun/BunHttpServer.js +0 -186
  192. package/dist/bun/BunHttpServer_web.d.ts +0 -60
  193. package/dist/bun/BunHttpServer_web.js +0 -252
  194. package/dist/bun/BunImportTrackerPlugin.d.ts +0 -13
  195. package/dist/bun/BunPlatformHttpServer.d.ts +0 -10
  196. package/dist/bun/BunPlatformHttpServer.js +0 -53
  197. package/dist/bun/BunRoute.d.ts +0 -48
  198. package/dist/bun/BunRuntime.d.ts +0 -2
  199. package/dist/bun/BunServer.d.ts +0 -40
  200. package/dist/bun/BunServerRequest.d.ts +0 -60
  201. package/dist/bun/BunServerRequest.js +0 -252
  202. package/dist/bun/BunSql.d.ts +0 -4
  203. package/dist/bun/BunSql.js +0 -81
  204. package/dist/bun/BunVirtualFilesPlugin.d.ts +0 -4
  205. package/dist/bun/_BunEnhancedResolve.d.ts +0 -45
  206. package/dist/bun/index.d.ts +0 -5
  207. package/dist/bundler/Bundle.d.ts +0 -61
  208. package/dist/bundler/BundleFiles.d.ts +0 -13
  209. package/dist/bundler/BundleHttp.d.ts +0 -45
  210. package/dist/bundler/BundleHttp.js +0 -176
  211. package/dist/bundler/BundleRoute.d.ts +0 -27
  212. package/dist/client/Overlay.d.ts +0 -2
  213. package/dist/client/ScrollState.d.ts +0 -6
  214. package/dist/client/index.d.ts +0 -6
  215. package/dist/console/Console.d.ts +0 -6
  216. package/dist/console/ConsoleErrors.d.ts +0 -3
  217. package/dist/console/ConsoleLogger.d.ts +0 -3
  218. package/dist/console/ConsoleMetrics.d.ts +0 -3
  219. package/dist/console/ConsoleProcess.d.ts +0 -3
  220. package/dist/console/ConsoleStore.d.ts +0 -144
  221. package/dist/console/ConsoleTracer.d.ts +0 -3
  222. package/dist/console/Simulation.d.ts +0 -2
  223. package/dist/console/index.d.ts +0 -3
  224. package/dist/console/routes/errors/route.d.ts +0 -10
  225. package/dist/console/routes/errors/route.js +0 -47
  226. package/dist/console/routes/fiberDetail.d.ts +0 -16
  227. package/dist/console/routes/fiberDetail.js +0 -38
  228. package/dist/console/routes/fibers/route.d.ts +0 -10
  229. package/dist/console/routes/fibers/route.js +0 -19
  230. package/dist/console/routes/git/route.d.ts +0 -11
  231. package/dist/console/routes/git/route.js +0 -33
  232. package/dist/console/routes/layout.d.ts +0 -9
  233. package/dist/console/routes/layout.js +0 -3
  234. package/dist/console/routes/logs/route.d.ts +0 -10
  235. package/dist/console/routes/logs/route.js +0 -32
  236. package/dist/console/routes/metrics/route.d.ts +0 -10
  237. package/dist/console/routes/metrics/route.js +0 -17
  238. package/dist/console/routes/route.d.ts +0 -6
  239. package/dist/console/routes/route.js +0 -5
  240. package/dist/console/routes/routes/route.d.ts +0 -6
  241. package/dist/console/routes/routes/route.js +0 -20
  242. package/dist/console/routes/services/route.d.ts +0 -6
  243. package/dist/console/routes/services/route.js +0 -12
  244. package/dist/console/routes/system/route.d.ts +0 -10
  245. package/dist/console/routes/system/route.js +0 -18
  246. package/dist/console/routes/traceDetail.d.ts +0 -16
  247. package/dist/console/routes/traceDetail.js +0 -14
  248. package/dist/console/routes/traces/route.d.ts +0 -10
  249. package/dist/console/routes/traces/route.js +0 -39
  250. package/dist/console/routes/tree.d.ts +0 -153
  251. package/dist/console/ui/Errors.d.ts +0 -4
  252. package/dist/console/ui/Errors.js +0 -15
  253. package/dist/console/ui/Fibers.d.ts +0 -24
  254. package/dist/console/ui/Fibers.js +0 -121
  255. package/dist/console/ui/Git.d.ts +0 -20
  256. package/dist/console/ui/Git.js +0 -95
  257. package/dist/console/ui/Logs.d.ts +0 -4
  258. package/dist/console/ui/Logs.js +0 -25
  259. package/dist/console/ui/Metrics.d.ts +0 -4
  260. package/dist/console/ui/Metrics.js +0 -26
  261. package/dist/console/ui/Routes.d.ts +0 -8
  262. package/dist/console/ui/Routes.js +0 -70
  263. package/dist/console/ui/Services.d.ts +0 -10
  264. package/dist/console/ui/Services.js +0 -246
  265. package/dist/console/ui/Shell.d.ts +0 -10
  266. package/dist/console/ui/Shell.js +0 -7
  267. package/dist/console/ui/System.d.ts +0 -4
  268. package/dist/console/ui/System.js +0 -35
  269. package/dist/console/ui/Traces.d.ts +0 -12
  270. package/dist/console/ui/Traces.js +0 -179
  271. package/dist/datastar/actions/fetch.d.ts +0 -30
  272. package/dist/datastar/actions/peek.d.ts +0 -1
  273. package/dist/datastar/actions/setAll.d.ts +0 -1
  274. package/dist/datastar/actions/toggleAll.d.ts +0 -1
  275. package/dist/datastar/attributes/attr.d.ts +0 -1
  276. package/dist/datastar/attributes/bind.d.ts +0 -1
  277. package/dist/datastar/attributes/class.d.ts +0 -1
  278. package/dist/datastar/attributes/computed.d.ts +0 -1
  279. package/dist/datastar/attributes/effect.d.ts +0 -1
  280. package/dist/datastar/attributes/indicator.d.ts +0 -1
  281. package/dist/datastar/attributes/init.d.ts +0 -1
  282. package/dist/datastar/attributes/jsonSignals.d.ts +0 -1
  283. package/dist/datastar/attributes/on.d.ts +0 -1
  284. package/dist/datastar/attributes/onIntersect.d.ts +0 -1
  285. package/dist/datastar/attributes/onInterval.d.ts +0 -1
  286. package/dist/datastar/attributes/onSignalPatch.d.ts +0 -1
  287. package/dist/datastar/attributes/ref.d.ts +0 -1
  288. package/dist/datastar/attributes/show.d.ts +0 -1
  289. package/dist/datastar/attributes/signals.d.ts +0 -1
  290. package/dist/datastar/attributes/style.d.ts +0 -1
  291. package/dist/datastar/attributes/text.d.ts +0 -1
  292. package/dist/datastar/engine.d.ts +0 -162
  293. package/dist/datastar/happydom.d.ts +0 -1
  294. package/dist/datastar/happydom.js +0 -8
  295. package/dist/datastar/index.d.ts +0 -24
  296. package/dist/datastar/load.d.ts +0 -24
  297. package/dist/datastar/load.js +0 -24
  298. package/dist/datastar/utils.d.ts +0 -51
  299. package/dist/datastar/watchers/patchElements.d.ts +0 -1
  300. package/dist/datastar/watchers/patchSignals.d.ts +0 -1
  301. package/dist/experimental/EncryptedCookies.d.ts +0 -48
  302. package/dist/experimental/SseHttpResponse.d.ts +0 -7
  303. package/dist/experimental/SseHttpResponse.js +0 -28
  304. package/dist/experimental/index.d.ts +0 -1
  305. package/dist/hyper/Hyper.d.ts +0 -25
  306. package/dist/hyper/HyperHtml.d.ts +0 -23
  307. package/dist/hyper/HyperHtml.test.d.ts +0 -1
  308. package/dist/hyper/HyperHtml.test.js +0 -197
  309. package/dist/hyper/HyperNode.d.ts +0 -14
  310. package/dist/hyper/HyperRoute.d.ts +0 -8
  311. package/dist/hyper/HyperRoute.test.d.ts +0 -1
  312. package/dist/hyper/HyperRoute.test.js +0 -83
  313. package/dist/hyper/html.d.ts +0 -11
  314. package/dist/hyper/index.d.ts +0 -6
  315. package/dist/hyper/jsx-runtime.d.ts +0 -7
  316. package/dist/index.d.ts +0 -8
  317. package/dist/inference_check.d.ts +0 -1
  318. package/dist/inference_check.js +0 -15
  319. package/dist/lint/plugin.d.ts +0 -86
  320. package/dist/lint/plugin.js +0 -341
  321. package/dist/middlewares/BasicAuthMiddleware.d.ts +0 -8
  322. package/dist/middlewares/BasicAuthMiddleware.js +0 -22
  323. package/dist/middlewares/index.d.ts +0 -1
  324. package/dist/middlewares/index.js +0 -1
  325. package/dist/node/Effectify.d.ts +0 -209
  326. package/dist/node/Effectify.js +0 -19
  327. package/dist/node/FileSystem.d.ts +0 -7
  328. package/dist/node/FileSystem.js +0 -420
  329. package/dist/node/NodeFileSystem.d.ts +0 -7
  330. package/dist/node/NodeUtils.d.ts +0 -2
  331. package/dist/node/PlatformError.d.ts +0 -46
  332. package/dist/node/PlatformError.js +0 -43
  333. package/dist/node/Utils.d.ts +0 -1
  334. package/dist/node/Utils.js +0 -19
  335. package/dist/repro_fail.d.ts +0 -1
  336. package/dist/repro_fail.js +0 -14
  337. package/dist/sql/bun/index.d.ts +0 -3
  338. package/dist/sql/mssql/docker.d.ts +0 -2
  339. package/dist/sql/mssql/index.d.ts +0 -21
  340. package/dist/testing/TestHttpClient.d.ts +0 -13
  341. package/dist/testing/TestHttpClient.js +0 -68
  342. package/dist/testing/TestLogger.d.ts +0 -13
  343. package/dist/testing/index.d.ts +0 -2
  344. package/dist/testing/utils.d.ts +0 -9
  345. package/dist/x/cloudflare/CloudflareTunnel.d.ts +0 -10
  346. package/dist/x/cloudflare/index.d.ts +0 -1
  347. package/dist/x/datastar/Datastar.d.ts +0 -6
  348. package/dist/x/datastar/Datastar.js +0 -47
  349. package/dist/x/datastar/index.d.ts +0 -1
  350. package/dist/x/datastar/index.js +0 -1
  351. package/dist/x/tailscale/TailscaleTunnel.d.ts +0 -15
  352. package/dist/x/tailscale/index.d.ts +0 -1
  353. package/dist/x/tailwind/TailwindPlugin.d.ts +0 -23
  354. package/dist/x/tailwind/compile.d.ts +0 -19
  355. package/dist/x/tailwind/plugin.d.ts +0 -2
  356. /package/src/{Sql.ts → sql/Sql.ts} +0 -0
@@ -1,24 +1,25 @@
1
- import "./actions/peek.js";
2
- import "./actions/setAll.js";
3
- import "./actions/toggleAll.js";
4
- import "./actions/fetch.js";
5
- import "./attributes/attr.js";
6
- import "./attributes/bind.js";
7
- import "./attributes/class.js";
8
- import "./attributes/computed.js";
9
- import "./attributes/effect.js";
10
- import "./attributes/indicator.js";
11
- import "./attributes/init.js";
12
- import "./attributes/jsonSignals.js";
13
- import "./attributes/on.js";
14
- import "./attributes/onIntersect.js";
15
- import "./attributes/onInterval.js";
16
- import "./attributes/onSignalPatch.js";
17
- import "./attributes/ref.js";
18
- import "./attributes/show.js";
19
- import "./attributes/signals.js";
20
- import "./attributes/style.js";
21
- import "./attributes/text.js";
22
- import "./watchers/patchElements.js";
23
- import "./watchers/patchSignals.js";
24
- export * from "./engine.js";
1
+ import "./actions/peek.js"
2
+ import "./actions/setAll.js"
3
+ import "./actions/toggleAll.js"
4
+ import "./actions/fetch.js"
5
+ import "./attributes/attr.js"
6
+ import "./attributes/bind.js"
7
+ import "./attributes/class.js"
8
+ import "./attributes/computed.js"
9
+ import "./attributes/effect.js"
10
+ import "./attributes/indicator.js"
11
+ import "./attributes/init.js"
12
+ import "./attributes/jsonSignals.js"
13
+ import "./attributes/on.js"
14
+ import "./attributes/onIntersect.js"
15
+ import "./attributes/onInterval.js"
16
+ import "./attributes/onSignalPatch.js"
17
+ import "./attributes/ref.js"
18
+ import "./attributes/show.js"
19
+ import "./attributes/signals.js"
20
+ import "./attributes/style.js"
21
+ import "./attributes/text.js"
22
+ import "./watchers/patchElements.js"
23
+ import "./watchers/patchSignals.js"
24
+
25
+ export * from "./engine.js"
@@ -1,202 +1,250 @@
1
+
1
2
  /*********
2
3
  * dom.ts
3
4
  *********/
4
- export const isHTMLOrSVG = (el) => el instanceof HTMLElement || el instanceof SVGElement || el instanceof MathMLElement;
5
+ export const isHTMLOrSVG = (el) =>
6
+ el instanceof HTMLElement || el instanceof SVGElement || el instanceof MathMLElement
7
+
5
8
  /*********
6
9
  * math.ts
7
10
  *********/
8
11
  export const clamp = (value, min, max) => {
9
- return Math.max(min, Math.min(max, value));
10
- };
12
+ return Math.max(min, Math.min(max, value))
13
+ }
14
+
11
15
  export const lerp = (min, max, t, clamped = true) => {
12
- const v = min + (max - min) * t;
13
- return clamped ? clamp(v, min, max) : v;
14
- };
16
+ const v = min + (max - min) * t
17
+ return clamped ? clamp(v, min, max) : v
18
+ }
19
+
15
20
  export const inverseLerp = (min, max, value, clamped = true) => {
16
- if (value < min)
17
- return 0;
18
- if (value > max)
19
- return 1;
20
- const v = (value - min) / (max - min);
21
- return clamped ? clamp(v, min, max) : v;
22
- };
23
- export const fit = (value, inMin, inMax, outMin, outMax, clamped = true, rounded = false) => {
24
- const t = inverseLerp(inMin, inMax, value, clamped);
25
- const fitted = lerp(outMin, outMax, t, clamped);
26
- return rounded ? Math.round(fitted) : fitted;
27
- };
21
+ if (value < min) return 0
22
+ if (value > max) return 1
23
+ const v = (value - min) / (max - min)
24
+ return clamped ? clamp(v, min, max) : v
25
+ }
26
+
27
+ export const fit = (
28
+ value,
29
+ inMin,
30
+ inMax,
31
+ outMin,
32
+ outMax,
33
+ clamped = true,
34
+ rounded = false,
35
+ ) => {
36
+ const t = inverseLerp(inMin, inMax, value, clamped)
37
+ const fitted = lerp(outMin, outMax, t, clamped)
38
+ return rounded ? Math.round(fitted) : fitted
39
+ }
40
+
28
41
  /*********
29
42
  * text.ts
30
43
  *********/
31
- export const kebab = (str) => str
44
+ export const kebab = (str) =>
45
+ str
32
46
  .replace(/([a-z0-9])([A-Z])/g, "$1-$2")
33
47
  .replace(/([a-z])([0-9]+)/gi, "$1-$2")
34
48
  .replace(/([0-9]+)([a-z])/gi, "$1-$2")
35
49
  .replace(/[\s_]+/g, "-")
36
- .toLowerCase();
37
- export const camel = (str) => kebab(str).replace(/-./g, (x) => x[1].toUpperCase());
38
- export const snake = (str) => kebab(str).replace(/-/g, "_");
39
- export const pascal = (str) => camel(str).replace(/(^.|(?<=\.).)/g, (x) => x[0].toUpperCase());
40
- export const title = (str) => str.replace(/\b\w/g, (char) => char.toUpperCase());
50
+ .toLowerCase()
51
+
52
+ export const camel = (str) => kebab(str).replace(/-./g, (x) => x[1].toUpperCase())
53
+
54
+ export const snake = (str) => kebab(str).replace(/-/g, "_")
55
+
56
+ export const pascal = (str) =>
57
+ camel(str).replace(/(^.|(?<=\.).)/g, (x) => x[0].toUpperCase())
58
+
59
+ export const title = (str) => str.replace(/\b\w/g, (char) => char.toUpperCase())
60
+
41
61
  export const jsStrToObject = (raw) => {
42
- try {
43
- return JSON.parse(raw);
44
- }
45
- catch {
46
- return Function(`return (${raw})`)();
47
- }
48
- };
62
+ try {
63
+ return JSON.parse(raw)
64
+ } catch {
65
+ return Function(`return (${raw})`)()
66
+ }
67
+ }
68
+
49
69
  const caseFns = {
50
- camel: (str) => str.replace(/-[a-z]/g, (x) => x[1].toUpperCase()),
51
- snake: (str) => str.replace(/-/g, "_"),
52
- pascal: (str) => str[0].toUpperCase() + caseFns.camel(str.slice(1)),
53
- };
70
+ camel: (str) => str.replace(/-[a-z]/g, (x) => x[1].toUpperCase()),
71
+ snake: (str) => str.replace(/-/g, "_"),
72
+ pascal: (str) => str[0].toUpperCase() + caseFns.camel(str.slice(1)),
73
+ }
74
+
54
75
  export const modifyCasing = (str, mods, defaultCase = "camel") => {
55
- for (const c of mods.get("case") || [defaultCase]) {
56
- str = caseFns[c]?.(str) || str;
57
- }
58
- return str;
59
- };
60
- export const aliasify = (name) => `data-${name}`;
76
+ for (const c of mods.get("case") || [defaultCase]) {
77
+ str = caseFns[c]?.(str) || str
78
+ }
79
+ return str
80
+ }
81
+
82
+ export const aliasify = (name) => `data-${name}`
83
+
61
84
  /*********
62
85
  * tags.ts
63
86
  *********/
64
87
  export const tagToMs = (args) => {
65
- if (!args || args.size <= 0)
66
- return 0;
67
- for (const arg of args) {
68
- if (arg.endsWith("ms")) {
69
- return +arg.replace("ms", "");
70
- }
71
- if (arg.endsWith("s")) {
72
- return +arg.replace("s", "") * 1000;
73
- }
74
- try {
75
- return Number.parseFloat(arg);
76
- }
77
- catch (_) { }
88
+ if (!args || args.size <= 0) return 0
89
+ for (const arg of args) {
90
+ if (arg.endsWith("ms")) {
91
+ return +arg.replace("ms", "")
92
+ }
93
+ if (arg.endsWith("s")) {
94
+ return +arg.replace("s", "") * 1000
78
95
  }
79
- return 0;
80
- };
96
+ try {
97
+ return Number.parseFloat(arg)
98
+ } catch (_) {}
99
+ }
100
+ return 0
101
+ }
102
+
81
103
  export const tagHas = (tags, tag, defaultValue = false) => {
82
- if (!tags)
83
- return defaultValue;
84
- return tags.has(tag.toLowerCase());
85
- };
104
+ if (!tags) return defaultValue
105
+ return tags.has(tag.toLowerCase())
106
+ }
107
+
86
108
  export const tagFirst = (tags, defaultValue = "") => {
87
- if (tags && tags.size > 0) {
88
- for (const tag of tags) {
89
- return tag;
90
- }
109
+ if (tags && tags.size > 0) {
110
+ for (const tag of tags) {
111
+ return tag
91
112
  }
92
- return defaultValue;
93
- };
113
+ }
114
+ return defaultValue
115
+ }
116
+
94
117
  /*********
95
118
  * polyfills.ts
96
119
  *********/
97
- export const hasOwn =
98
- // @ts-ignore
99
- Object.hasOwn ?? Object.prototype.hasOwnProperty.call;
120
+ export const hasOwn =
121
+ // @ts-ignore
122
+ Object.hasOwn ?? Object.prototype.hasOwnProperty.call
123
+
100
124
  /*********
101
125
  * paths.ts
102
126
  *********/
103
- export const isPojo = (obj) => obj !== null &&
104
- typeof obj === "object" &&
105
- (Object.getPrototypeOf(obj) === Object.prototype || Object.getPrototypeOf(obj) === null);
127
+ export const isPojo = (obj) =>
128
+ obj !== null &&
129
+ typeof obj === "object" &&
130
+ (Object.getPrototypeOf(obj) === Object.prototype || Object.getPrototypeOf(obj) === null)
131
+
106
132
  export const isEmpty = (obj) => {
107
- for (const prop in obj) {
108
- if (hasOwn(obj, prop)) {
109
- return false;
110
- }
133
+ for (const prop in obj) {
134
+ if (hasOwn(obj, prop)) {
135
+ return false
111
136
  }
112
- return true;
113
- };
137
+ }
138
+ return true
139
+ }
140
+
114
141
  export const updateLeaves = (obj, fn) => {
115
- for (const key in obj) {
116
- const val = obj[key];
117
- if (isPojo(val) || Array.isArray(val)) {
118
- updateLeaves(val, fn);
119
- }
120
- else {
121
- obj[key] = fn(val);
122
- }
142
+ for (const key in obj) {
143
+ const val = obj[key]
144
+ if (isPojo(val) || Array.isArray(val)) {
145
+ updateLeaves(val, fn)
146
+ } else {
147
+ obj[key] = fn(val)
123
148
  }
124
- };
149
+ }
150
+ }
151
+
125
152
  export const pathToObj = (paths) => {
126
- const result = {};
127
- for (const [path, value] of paths) {
128
- const keys = path.split(".");
129
- const lastKey = keys.pop();
130
- const obj = keys.reduce((acc, key) => (acc[key] ??= {}), result);
131
- obj[lastKey] = value;
132
- }
133
- return result;
134
- };
153
+ const result = {}
154
+ for (const [path, value] of paths) {
155
+ const keys = path.split(".")
156
+ const lastKey = keys.pop()
157
+ const obj = keys.reduce((acc, key) => (acc[key] ??= {}), result)
158
+ obj[lastKey] = value
159
+ }
160
+ return result
161
+ }
162
+
135
163
  /*********
136
164
  * timing.ts
137
165
  *********/
138
166
  export const delay = (callback, wait) => {
139
- return (...args) => {
140
- setTimeout(() => {
141
- callback(...args);
142
- }, wait);
143
- };
144
- };
145
- export const throttle = (callback, wait, leading = true, trailing = false, debounce = false) => {
146
- let lastArgs = null;
147
- let timer = 0;
148
- return (...args) => {
149
- if (leading && !timer) {
150
- callback(...args);
151
- lastArgs = null;
152
- }
153
- else {
154
- lastArgs = args;
155
- }
156
- if (!timer || debounce) {
157
- if (timer) {
158
- clearTimeout(timer);
159
- }
160
- timer = setTimeout(() => {
161
- if (trailing && lastArgs !== null) {
162
- callback(...lastArgs);
163
- }
164
- lastArgs = null;
165
- timer = 0;
166
- }, wait);
167
- }
168
- };
169
- };
170
- export const modifyTiming = (callback, mods) => {
171
- const delayArgs = mods.get("delay");
172
- if (delayArgs) {
173
- const wait = tagToMs(delayArgs);
174
- callback = delay(callback, wait);
175
- }
176
- const debounceArgs = mods.get("debounce");
177
- if (debounceArgs) {
178
- const wait = tagToMs(debounceArgs);
179
- const leading = tagHas(debounceArgs, "leading", false);
180
- const trailing = !tagHas(debounceArgs, "notrailing", false);
181
- callback = throttle(callback, wait, leading, trailing, true);
167
+ return (...args) => {
168
+ setTimeout(() => {
169
+ callback(...args)
170
+ }, wait)
171
+ }
172
+ }
173
+
174
+ export const throttle = (
175
+ callback,
176
+ wait,
177
+ leading = true,
178
+ trailing = false,
179
+ debounce = false,
180
+ ) => {
181
+ let lastArgs = null
182
+ let timer = 0
183
+
184
+ return (...args) => {
185
+ if (leading && !timer) {
186
+ callback(...args)
187
+ lastArgs = null
188
+ } else {
189
+ lastArgs = args
182
190
  }
183
- const throttleArgs = mods.get("throttle");
184
- if (throttleArgs) {
185
- const wait = tagToMs(throttleArgs);
186
- const leading = !tagHas(throttleArgs, "noleading", false);
187
- const trailing = tagHas(throttleArgs, "trailing", false);
188
- callback = throttle(callback, wait, leading, trailing);
191
+ if (!timer || debounce) {
192
+ if (timer) {
193
+ clearTimeout(timer)
194
+ }
195
+ timer = setTimeout(() => {
196
+ if (trailing && lastArgs !== null) {
197
+ callback(...lastArgs)
198
+ }
199
+ lastArgs = null
200
+ timer = 0
201
+ }, wait)
189
202
  }
190
- return callback;
191
- };
203
+ }
204
+ }
205
+
206
+ export const modifyTiming = (
207
+ callback,
208
+ mods,
209
+ ) => {
210
+ const delayArgs = mods.get("delay")
211
+ if (delayArgs) {
212
+ const wait = tagToMs(delayArgs)
213
+ callback = delay(callback, wait)
214
+ }
215
+
216
+ const debounceArgs = mods.get("debounce")
217
+ if (debounceArgs) {
218
+ const wait = tagToMs(debounceArgs)
219
+ const leading = tagHas(debounceArgs, "leading", false)
220
+ const trailing = !tagHas(debounceArgs, "notrailing", false)
221
+ callback = throttle(callback, wait, leading, trailing, true)
222
+ }
223
+
224
+ const throttleArgs = mods.get("throttle")
225
+ if (throttleArgs) {
226
+ const wait = tagToMs(throttleArgs)
227
+ const leading = !tagHas(throttleArgs, "noleading", false)
228
+ const trailing = tagHas(throttleArgs, "trailing", false)
229
+ callback = throttle(callback, wait, leading, trailing)
230
+ }
231
+
232
+ return callback
233
+ }
234
+
192
235
  /*********
193
236
  * view-transitions.ts
194
237
  *********/
195
- export const supportsViewTransitions = !!document.startViewTransition;
196
- export const modifyViewTransition = (callback, mods) => {
197
- if (mods.has("viewtransition") && supportsViewTransitions) {
198
- const cb = callback;
199
- callback = (...args) => document.startViewTransition(() => cb(...args));
200
- }
201
- return callback;
202
- };
238
+ export const supportsViewTransitions = !!document.startViewTransition
239
+
240
+ export const modifyViewTransition = (
241
+ callback,
242
+ mods,
243
+ ) => {
244
+ if (mods.has("viewtransition") && supportsViewTransitions) {
245
+ const cb = callback
246
+ callback = (...args) => document.startViewTransition(() => cb(...args))
247
+ }
248
+
249
+ return callback
250
+ }