effect-start 0.18.0 → 0.19.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 (80) hide show
  1. package/dist/Development.d.ts +7 -2
  2. package/dist/Development.js +12 -6
  3. package/dist/PlatformRuntime.d.ts +4 -0
  4. package/dist/PlatformRuntime.js +9 -0
  5. package/dist/Route.d.ts +6 -2
  6. package/dist/Route.js +22 -0
  7. package/dist/RouteHttp.d.ts +1 -1
  8. package/dist/RouteHttp.js +12 -19
  9. package/dist/RouteMount.d.ts +2 -1
  10. package/dist/Start.d.ts +1 -5
  11. package/dist/Start.js +1 -8
  12. package/dist/Unique.d.ts +50 -0
  13. package/dist/Unique.js +187 -0
  14. package/dist/bun/BunHttpServer.js +5 -6
  15. package/dist/bun/BunRoute.d.ts +1 -1
  16. package/dist/bun/BunRoute.js +2 -2
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.js +1 -0
  19. package/dist/node/Effectify.d.ts +209 -0
  20. package/dist/node/Effectify.js +19 -0
  21. package/dist/node/FileSystem.d.ts +3 -5
  22. package/dist/node/FileSystem.js +42 -62
  23. package/dist/node/PlatformError.d.ts +46 -0
  24. package/dist/node/PlatformError.js +43 -0
  25. package/dist/testing/TestLogger.js +1 -1
  26. package/package.json +8 -1
  27. package/src/Development.ts +13 -18
  28. package/src/PlatformRuntime.ts +11 -0
  29. package/src/Route.ts +31 -2
  30. package/src/RouteHttp.ts +15 -31
  31. package/src/RouteMount.ts +1 -1
  32. package/src/Start.ts +1 -15
  33. package/src/Unique.ts +232 -0
  34. package/src/bun/BunHttpServer.ts +6 -9
  35. package/src/bun/BunRoute.ts +3 -3
  36. package/src/index.ts +1 -0
  37. package/src/node/Effectify.ts +262 -0
  38. package/src/node/FileSystem.ts +59 -97
  39. package/src/node/PlatformError.ts +102 -0
  40. package/src/testing/TestLogger.ts +1 -1
  41. package/dist/Random.d.ts +0 -5
  42. package/dist/Random.js +0 -49
  43. package/src/Commander.test.ts +0 -1639
  44. package/src/ContentNegotiation.test.ts +0 -603
  45. package/src/Development.test.ts +0 -119
  46. package/src/Entity.test.ts +0 -592
  47. package/src/FileRouterPattern.test.ts +0 -147
  48. package/src/FileRouter_files.test.ts +0 -64
  49. package/src/FileRouter_path.test.ts +0 -145
  50. package/src/FileRouter_tree.test.ts +0 -132
  51. package/src/Http.test.ts +0 -319
  52. package/src/HttpAppExtra.test.ts +0 -103
  53. package/src/HttpUtils.test.ts +0 -85
  54. package/src/PathPattern.test.ts +0 -648
  55. package/src/Random.ts +0 -59
  56. package/src/RouteBody.test.ts +0 -232
  57. package/src/RouteHook.test.ts +0 -40
  58. package/src/RouteHttp.test.ts +0 -2909
  59. package/src/RouteMount.test.ts +0 -481
  60. package/src/RouteSchema.test.ts +0 -427
  61. package/src/RouteSse.test.ts +0 -249
  62. package/src/RouteTree.test.ts +0 -494
  63. package/src/RouteTrie.test.ts +0 -322
  64. package/src/RouterPattern.test.ts +0 -676
  65. package/src/Values.test.ts +0 -263
  66. package/src/bun/BunBundle.test.ts +0 -268
  67. package/src/bun/BunBundle_imports.test.ts +0 -48
  68. package/src/bun/BunHttpServer.test.ts +0 -251
  69. package/src/bun/BunImportTrackerPlugin.test.ts +0 -77
  70. package/src/bun/BunRoute.test.ts +0 -162
  71. package/src/bundler/BundleHttp.test.ts +0 -132
  72. package/src/effect/HttpRouter.test.ts +0 -548
  73. package/src/experimental/EncryptedCookies.test.ts +0 -488
  74. package/src/hyper/HyperHtml.test.ts +0 -209
  75. package/src/hyper/HyperRoute.test.tsx +0 -197
  76. package/src/middlewares/BasicAuthMiddleware.test.ts +0 -84
  77. package/src/testing/TestHttpClient.test.ts +0 -83
  78. package/src/testing/TestLogger.test.ts +0 -51
  79. package/src/x/datastar/Datastar.test.ts +0 -266
  80. package/src/x/tailwind/TailwindPlugin.test.ts +0 -333
@@ -0,0 +1,262 @@
1
+ /*
2
+ * Adapted from @effect/platform
3
+ */
4
+ import * as Effect from "effect/Effect"
5
+
6
+ interface Callback<E, A> {
7
+ (err: E, a?: A): void
8
+ }
9
+
10
+ type ArgsWithCallback<Args extends Array<any>, E, A> = [...args: Args, cb: Callback<E, A>]
11
+
12
+ type WithoutNull<A> = unknown extends A ? void : Exclude<A, null | undefined>
13
+
14
+ type Effectify<T, E> = T extends {
15
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
16
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
17
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
18
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
19
+ (...args: ArgsWithCallback<infer Args5, infer _E5, infer A5>): infer _R5
20
+ (...args: ArgsWithCallback<infer Args6, infer _E6, infer A6>): infer _R6
21
+ (...args: ArgsWithCallback<infer Args7, infer _E7, infer A7>): infer _R7
22
+ (...args: ArgsWithCallback<infer Args8, infer _E8, infer A8>): infer _R8
23
+ (...args: ArgsWithCallback<infer Args9, infer _E9, infer A9>): infer _R9
24
+ (...args: ArgsWithCallback<infer Args10, infer _E10, infer A10>): infer _R10
25
+ } ? {
26
+ (...args: Args1): Effect.Effect<WithoutNull<A1>, E>
27
+ (...args: Args2): Effect.Effect<WithoutNull<A2>, E>
28
+ (...args: Args3): Effect.Effect<WithoutNull<A3>, E>
29
+ (...args: Args4): Effect.Effect<WithoutNull<A4>, E>
30
+ (...args: Args5): Effect.Effect<WithoutNull<A5>, E>
31
+ (...args: Args6): Effect.Effect<WithoutNull<A6>, E>
32
+ (...args: Args7): Effect.Effect<WithoutNull<A7>, E>
33
+ (...args: Args8): Effect.Effect<WithoutNull<A8>, E>
34
+ (...args: Args9): Effect.Effect<WithoutNull<A9>, E>
35
+ (...args: Args10): Effect.Effect<WithoutNull<A10>, E>
36
+ }
37
+ : T extends {
38
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
39
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
40
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
41
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
42
+ (...args: ArgsWithCallback<infer Args5, infer _E5, infer A5>): infer _R5
43
+ (...args: ArgsWithCallback<infer Args6, infer _E6, infer A6>): infer _R6
44
+ (...args: ArgsWithCallback<infer Args7, infer _E7, infer A7>): infer _R7
45
+ (...args: ArgsWithCallback<infer Args8, infer _E8, infer A8>): infer _R8
46
+ (...args: ArgsWithCallback<infer Args9, infer _E9, infer A9>): infer _R9
47
+ } ? {
48
+ (...args: Args1): Effect.Effect<WithoutNull<A1>, E>
49
+ (...args: Args2): Effect.Effect<WithoutNull<A2>, E>
50
+ (...args: Args3): Effect.Effect<WithoutNull<A3>, E>
51
+ (...args: Args4): Effect.Effect<WithoutNull<A4>, E>
52
+ (...args: Args5): Effect.Effect<WithoutNull<A5>, E>
53
+ (...args: Args6): Effect.Effect<WithoutNull<A6>, E>
54
+ (...args: Args7): Effect.Effect<WithoutNull<A7>, E>
55
+ (...args: Args8): Effect.Effect<WithoutNull<A8>, E>
56
+ (...args: Args9): Effect.Effect<WithoutNull<A9>, E>
57
+ }
58
+ : T extends {
59
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
60
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
61
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
62
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
63
+ (...args: ArgsWithCallback<infer Args5, infer _E5, infer A5>): infer _R5
64
+ (...args: ArgsWithCallback<infer Args6, infer _E6, infer A6>): infer _R6
65
+ (...args: ArgsWithCallback<infer Args7, infer _E7, infer A7>): infer _R7
66
+ (...args: ArgsWithCallback<infer Args8, infer _E8, infer A8>): infer _R8
67
+ } ? {
68
+ (...args: Args1): Effect.Effect<WithoutNull<A1>, E>
69
+ (...args: Args2): Effect.Effect<WithoutNull<A2>, E>
70
+ (...args: Args3): Effect.Effect<WithoutNull<A3>, E>
71
+ (...args: Args4): Effect.Effect<WithoutNull<A4>, E>
72
+ (...args: Args5): Effect.Effect<WithoutNull<A5>, E>
73
+ (...args: Args6): Effect.Effect<WithoutNull<A6>, E>
74
+ (...args: Args7): Effect.Effect<WithoutNull<A7>, E>
75
+ (...args: Args8): Effect.Effect<WithoutNull<A8>, E>
76
+ }
77
+ : T extends {
78
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
79
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
80
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
81
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
82
+ (...args: ArgsWithCallback<infer Args5, infer _E5, infer A5>): infer _R5
83
+ (...args: ArgsWithCallback<infer Args6, infer _E6, infer A6>): infer _R6
84
+ (...args: ArgsWithCallback<infer Args7, infer _E7, infer A7>): infer _R7
85
+ } ? {
86
+ (...args: Args1): Effect.Effect<WithoutNull<A1>, E>
87
+ (...args: Args2): Effect.Effect<WithoutNull<A2>, E>
88
+ (...args: Args3): Effect.Effect<WithoutNull<A3>, E>
89
+ (...args: Args4): Effect.Effect<WithoutNull<A4>, E>
90
+ (...args: Args5): Effect.Effect<WithoutNull<A5>, E>
91
+ (...args: Args6): Effect.Effect<WithoutNull<A6>, E>
92
+ (...args: Args7): Effect.Effect<WithoutNull<A7>, E>
93
+ }
94
+ : T extends {
95
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
96
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
97
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
98
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
99
+ (...args: ArgsWithCallback<infer Args5, infer _E5, infer A5>): infer _R5
100
+ (...args: ArgsWithCallback<infer Args6, infer _E6, infer A6>): infer _R6
101
+ } ? {
102
+ (...args: Args1): Effect.Effect<WithoutNull<A1>, E>
103
+ (...args: Args2): Effect.Effect<WithoutNull<A2>, E>
104
+ (...args: Args3): Effect.Effect<WithoutNull<A3>, E>
105
+ (...args: Args4): Effect.Effect<WithoutNull<A4>, E>
106
+ (...args: Args5): Effect.Effect<WithoutNull<A5>, E>
107
+ (...args: Args6): Effect.Effect<WithoutNull<A6>, E>
108
+ }
109
+ : T extends {
110
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
111
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
112
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
113
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
114
+ (...args: ArgsWithCallback<infer Args5, infer _E5, infer A5>): infer _R5
115
+ } ? {
116
+ (...args: Args1): Effect.Effect<WithoutNull<A1>, E>
117
+ (...args: Args2): Effect.Effect<WithoutNull<A2>, E>
118
+ (...args: Args3): Effect.Effect<WithoutNull<A3>, E>
119
+ (...args: Args4): Effect.Effect<WithoutNull<A4>, E>
120
+ (...args: Args5): Effect.Effect<WithoutNull<A5>, E>
121
+ }
122
+ : T extends {
123
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
124
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
125
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
126
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
127
+ } ? {
128
+ (...args: Args1): Effect.Effect<WithoutNull<A1>, E>
129
+ (...args: Args2): Effect.Effect<WithoutNull<A2>, E>
130
+ (...args: Args3): Effect.Effect<WithoutNull<A3>, E>
131
+ (...args: Args4): Effect.Effect<WithoutNull<A4>, E>
132
+ }
133
+ : T extends {
134
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
135
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
136
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
137
+ } ? {
138
+ (...args: Args1): Effect.Effect<WithoutNull<A1>, E>
139
+ (...args: Args2): Effect.Effect<WithoutNull<A2>, E>
140
+ (...args: Args3): Effect.Effect<WithoutNull<A3>, E>
141
+ }
142
+ : T extends {
143
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
144
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
145
+ } ? {
146
+ (...args: Args1): Effect.Effect<WithoutNull<A1>, E>
147
+ (...args: Args2): Effect.Effect<WithoutNull<A2>, E>
148
+ }
149
+ : T extends {
150
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
151
+ } ? {
152
+ (...args: Args1): Effect.Effect<WithoutNull<A1>, E>
153
+ }
154
+ : never
155
+
156
+ type EffectifyError<T> = T extends {
157
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
158
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
159
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
160
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
161
+ (...args: ArgsWithCallback<infer _Args5, infer E5, infer _A5>): infer _R5
162
+ (...args: ArgsWithCallback<infer _Args6, infer E6, infer _A6>): infer _R6
163
+ (...args: ArgsWithCallback<infer _Args7, infer E7, infer _A7>): infer _R7
164
+ (...args: ArgsWithCallback<infer _Args8, infer E8, infer _A8>): infer _R8
165
+ (...args: ArgsWithCallback<infer _Args9, infer E9, infer _A9>): infer _R9
166
+ (...args: ArgsWithCallback<infer _Args10, infer E10, infer _A10>): infer _R10
167
+ } ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10>
168
+ : T extends {
169
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
170
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
171
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
172
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
173
+ (...args: ArgsWithCallback<infer _Args5, infer E5, infer _A5>): infer _R5
174
+ (...args: ArgsWithCallback<infer _Args6, infer E6, infer _A6>): infer _R6
175
+ (...args: ArgsWithCallback<infer _Args7, infer E7, infer _A7>): infer _R7
176
+ (...args: ArgsWithCallback<infer _Args8, infer E8, infer _A8>): infer _R8
177
+ (...args: ArgsWithCallback<infer _Args9, infer E9, infer _A9>): infer _R9
178
+ } ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9>
179
+ : T extends {
180
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
181
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
182
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
183
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
184
+ (...args: ArgsWithCallback<infer _Args5, infer E5, infer _A5>): infer _R5
185
+ (...args: ArgsWithCallback<infer _Args6, infer E6, infer _A6>): infer _R6
186
+ (...args: ArgsWithCallback<infer _Args7, infer E7, infer _A7>): infer _R7
187
+ (...args: ArgsWithCallback<infer _Args8, infer E8, infer _A8>): infer _R8
188
+ } ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8>
189
+ : T extends {
190
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
191
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
192
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
193
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
194
+ (...args: ArgsWithCallback<infer _Args5, infer E5, infer _A5>): infer _R5
195
+ (...args: ArgsWithCallback<infer _Args6, infer E6, infer _A6>): infer _R6
196
+ (...args: ArgsWithCallback<infer _Args7, infer E7, infer _A7>): infer _R7
197
+ } ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6 | E7>
198
+ : T extends {
199
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
200
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
201
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
202
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
203
+ (...args: ArgsWithCallback<infer _Args5, infer E5, infer _A5>): infer _R5
204
+ (...args: ArgsWithCallback<infer _Args6, infer E6, infer _A6>): infer _R6
205
+ } ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6>
206
+ : T extends {
207
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
208
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
209
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
210
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
211
+ (...args: ArgsWithCallback<infer _Args5, infer E5, infer _A5>): infer _R5
212
+ } ? NonNullable<E1 | E2 | E3 | E4 | E5>
213
+ : T extends {
214
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
215
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
216
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
217
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
218
+ } ? NonNullable<E1 | E2 | E3 | E4>
219
+ : T extends {
220
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
221
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
222
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
223
+ } ? NonNullable<E1 | E2 | E3>
224
+ : T extends {
225
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
226
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
227
+ } ? NonNullable<E1 | E2>
228
+ : T extends {
229
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
230
+ } ? NonNullable<E1>
231
+ : never
232
+
233
+ export const effectify: {
234
+ <F extends (...args: Array<any>) => any>(fn: F): Effectify<F, EffectifyError<F>>
235
+ <F extends (...args: Array<any>) => any, E>(
236
+ fn: F,
237
+ onError: (error: EffectifyError<F>, args: Parameters<F>) => E,
238
+ ): Effectify<F, E>
239
+ <F extends (...args: Array<any>) => any, E, E2>(
240
+ fn: F,
241
+ onError: (error: EffectifyError<F>, args: Parameters<F>) => E,
242
+ onSyncError: (error: unknown, args: Parameters<F>) => E2,
243
+ ): Effectify<F, E | E2>
244
+ } = ((
245
+ fn: Function,
246
+ onError?: (e: any, args: any) => any,
247
+ onSyncError?: (e: any, args: any) => any,
248
+ ) =>
249
+ (...args: Array<any>) =>
250
+ Effect.async<any, any>((resume) => {
251
+ try {
252
+ fn(...args, (err: any, result: any) => {
253
+ if (err) {
254
+ resume(Effect.fail(onError ? onError(err, args) : err))
255
+ } else {
256
+ resume(Effect.succeed(result))
257
+ }
258
+ })
259
+ } catch (err) {
260
+ resume(onSyncError ? Effect.fail(onSyncError(err, args)) : Effect.die(err))
261
+ }
262
+ })) as any