effect-start 0.21.0 → 0.22.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.
- package/README.md +1 -4
- package/dist/Cookies.js +392 -0
- package/dist/FileSystem.js +131 -0
- package/dist/Socket.js +37 -0
- package/package.json +35 -36
- package/src/Commander.ts +73 -130
- package/src/ContentNegotiation.ts +64 -95
- package/src/Cookies.ts +36 -57
- package/src/Development.ts +47 -62
- package/src/Effectify.ts +222 -206
- package/src/Entity.ts +59 -86
- package/src/FilePathPattern.ts +5 -5
- package/src/FileRouter.ts +37 -62
- package/src/FileRouterCodegen.ts +63 -55
- package/src/FileSystem.ts +46 -59
- package/src/Http.ts +17 -50
- package/src/PathPattern.ts +33 -41
- package/src/PlatformError.ts +29 -50
- package/src/PlatformRuntime.ts +39 -47
- package/src/Route.ts +68 -187
- package/src/RouteBody.ts +45 -161
- package/src/RouteHook.ts +22 -45
- package/src/RouteHttp.ts +88 -142
- package/src/RouteHttpTracer.ts +25 -26
- package/src/RouteMount.ts +100 -238
- package/src/RouteSchema.ts +67 -201
- package/src/RouteSse.ts +28 -82
- package/src/RouteTree.ts +31 -79
- package/src/RouteTrie.ts +13 -32
- package/src/SchemaExtra.ts +3 -5
- package/src/Socket.ts +5 -2
- package/src/Start.ts +20 -21
- package/src/StreamExtra.ts +93 -96
- package/src/TuplePathPattern.ts +54 -43
- package/src/Unique.ts +9 -15
- package/src/Values.ts +26 -30
- package/src/bun/BunBundle.ts +27 -73
- package/src/bun/BunImportTrackerPlugin.ts +67 -65
- package/src/bun/BunRoute.ts +12 -31
- package/src/bun/BunRuntime.ts +3 -10
- package/src/bun/BunServer.ts +55 -91
- package/src/bun/BunVirtualFilesPlugin.ts +1 -4
- package/src/bun/_BunEnhancedResolve.ts +17 -42
- package/src/bun/_empty.html +0 -1
- package/src/bundler/Bundle.ts +20 -36
- package/src/bundler/BundleFiles.ts +35 -55
- package/src/client/Overlay.ts +1 -2
- package/src/client/ScrollState.ts +5 -9
- package/src/client/index.ts +10 -13
- package/src/datastar/actions/fetch.ts +29 -48
- package/src/datastar/actions/peek.ts +1 -5
- package/src/datastar/actions/setAll.ts +2 -2
- package/src/datastar/actions/toggleAll.ts +2 -2
- package/src/datastar/attributes/attr.ts +17 -18
- package/src/datastar/attributes/bind.ts +41 -61
- package/src/datastar/attributes/class.ts +2 -5
- package/src/datastar/attributes/computed.ts +2 -10
- package/src/datastar/attributes/effect.ts +1 -2
- package/src/datastar/attributes/indicator.ts +2 -8
- package/src/datastar/attributes/init.ts +2 -10
- package/src/datastar/attributes/jsonSignals.ts +1 -6
- package/src/datastar/attributes/on.ts +4 -13
- package/src/datastar/attributes/onIntersect.ts +10 -22
- package/src/datastar/attributes/onInterval.ts +2 -10
- package/src/datastar/attributes/onSignalPatch.ts +18 -28
- package/src/datastar/attributes/ref.ts +1 -2
- package/src/datastar/attributes/show.ts +1 -2
- package/src/datastar/attributes/signals.ts +1 -5
- package/src/datastar/attributes/style.ts +6 -12
- package/src/datastar/attributes/text.ts +1 -2
- package/src/datastar/engine.ts +102 -158
- package/src/datastar/index.ts +2 -2
- package/src/datastar/utils.ts +16 -51
- package/src/datastar/watchers/patchElements.ts +35 -93
- package/src/datastar/watchers/patchSignals.ts +1 -2
- package/src/experimental/EncryptedCookies.ts +79 -142
- package/src/hyper/Hyper.ts +14 -33
- package/src/hyper/HyperHtml.ts +9 -10
- package/src/hyper/HyperNode.ts +2 -7
- package/src/hyper/HyperRoute.ts +2 -5
- package/src/hyper/jsx-runtime.ts +2 -10
- package/src/hyper/jsx.d.ts +171 -440
- package/src/lint/plugin.js +276 -0
- package/src/node/NodeFileSystem.ts +138 -186
- package/src/node/NodeUtils.ts +1 -3
- package/src/testing/TestLogger.ts +9 -22
- package/src/testing/utils.ts +30 -31
- package/src/x/cloudflare/CloudflareTunnel.ts +37 -54
- package/src/x/datastar/Datastar.ts +3 -10
- package/src/x/datastar/index.ts +1 -3
- package/src/x/datastar/jsx-datastar.d.ts +1 -4
- package/src/x/tailwind/TailwindPlugin.ts +119 -112
- package/src/x/tailwind/compile.ts +10 -33
- package/src/x/tailwind/plugin.ts +2 -2
package/src/RouteMount.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import * as Function from "effect/Function"
|
|
2
|
-
import * as Types from "effect/Types"
|
|
3
|
-
import * as Http from "./Http.ts"
|
|
4
|
-
import * as PathPattern from "./PathPattern.ts"
|
|
2
|
+
import type * as Types from "effect/Types"
|
|
3
|
+
import type * as Http from "./Http.ts"
|
|
4
|
+
import type * as PathPattern from "./PathPattern.ts"
|
|
5
5
|
import * as Route from "./Route.ts"
|
|
6
|
-
import * as RouteBody from "./RouteBody.ts"
|
|
6
|
+
import type * as RouteBody from "./RouteBody.ts"
|
|
7
7
|
|
|
8
8
|
const RouteSetTypeId: unique symbol = Symbol.for("effect-start/RouteSet")
|
|
9
9
|
|
|
10
|
+
// oxlint-disable-next-line import/first, typescript/consistent-type-imports -- typeof import() is not an import statement
|
|
10
11
|
type Module = typeof import("./RouteMount.ts")
|
|
11
12
|
|
|
12
|
-
export type Self =
|
|
13
|
-
| RouteMount.Builder
|
|
14
|
-
| Module
|
|
13
|
+
export type Self = RouteMount.Builder | Module
|
|
15
14
|
|
|
16
15
|
export const use = makeMethodDescriber("*")
|
|
17
16
|
export const get = makeMethodDescriber("GET")
|
|
@@ -22,94 +21,65 @@ export const patch = makeMethodDescriber("PATCH")
|
|
|
22
21
|
export const head = makeMethodDescriber("HEAD")
|
|
23
22
|
export const options = makeMethodDescriber("OPTIONS")
|
|
24
23
|
|
|
25
|
-
export const add: RouteMount.Add = function(
|
|
24
|
+
export const add: RouteMount.Add = function (
|
|
26
25
|
this: Self,
|
|
27
26
|
path: string,
|
|
28
|
-
routes:
|
|
29
|
-
| Route.RouteSet.Any
|
|
30
|
-
| ((
|
|
31
|
-
self: RouteMount.Builder<{}, []>,
|
|
32
|
-
) => Route.RouteSet.Any),
|
|
27
|
+
routes: Route.RouteSet.Any | ((self: RouteMount.Builder<{}, []>) => Route.RouteSet.Any),
|
|
33
28
|
) {
|
|
34
|
-
const baseItems = Route.isRouteSet(this)
|
|
35
|
-
? Route.items(this)
|
|
36
|
-
: [] as const
|
|
29
|
+
const baseItems = Route.isRouteSet(this) ? Route.items(this) : ([] as const)
|
|
37
30
|
|
|
38
|
-
const routeSet = typeof routes === "function"
|
|
39
|
-
? routes(make<{}, []>([]))
|
|
40
|
-
: routes
|
|
31
|
+
const routeSet = typeof routes === "function" ? routes(make<{}, []>([])) : routes
|
|
41
32
|
const routeItems = Route.items(routeSet)
|
|
42
33
|
const newItems = routeItems.map((item) => {
|
|
43
34
|
const itemDescriptor = Route.descriptor(item) as { path?: string }
|
|
44
|
-
const concatenatedPath =
|
|
45
|
-
? path + itemDescriptor.path
|
|
46
|
-
: path
|
|
35
|
+
const concatenatedPath =
|
|
36
|
+
typeof itemDescriptor?.path === "string" ? path + itemDescriptor.path : path
|
|
47
37
|
const newDescriptor = { ...itemDescriptor, path: concatenatedPath }
|
|
48
38
|
return Route.isRoute(item)
|
|
49
|
-
? Route.make(
|
|
50
|
-
item.handler as Route.Route.Handler<any, any, any, any>,
|
|
51
|
-
newDescriptor,
|
|
52
|
-
)
|
|
39
|
+
? Route.make(item.handler as Route.Route.Handler<any, any, any, any>, newDescriptor)
|
|
53
40
|
: Route.set(Route.items(item), newDescriptor)
|
|
54
41
|
})
|
|
55
42
|
|
|
56
|
-
return make([
|
|
57
|
-
...baseItems,
|
|
58
|
-
...newItems,
|
|
59
|
-
] as any)
|
|
43
|
+
return make([...baseItems, ...newItems] as any)
|
|
60
44
|
}
|
|
61
45
|
|
|
62
|
-
const Proto = Object.assign(
|
|
63
|
-
|
|
64
|
-
{
|
|
65
|
-
|
|
66
|
-
*[Symbol.iterator](this: Route.RouteSet.Any) {
|
|
67
|
-
yield* Route.items(this)
|
|
68
|
-
},
|
|
69
|
-
use,
|
|
70
|
-
get,
|
|
71
|
-
post,
|
|
72
|
-
put,
|
|
73
|
-
del,
|
|
74
|
-
patch,
|
|
75
|
-
head,
|
|
76
|
-
options,
|
|
77
|
-
add,
|
|
46
|
+
const Proto = Object.assign(Object.create(null), {
|
|
47
|
+
[RouteSetTypeId]: RouteSetTypeId,
|
|
48
|
+
*[Symbol.iterator](this: Route.RouteSet.Any) {
|
|
49
|
+
yield* Route.items(this)
|
|
78
50
|
},
|
|
79
|
-
|
|
51
|
+
use,
|
|
52
|
+
get,
|
|
53
|
+
post,
|
|
54
|
+
put,
|
|
55
|
+
del,
|
|
56
|
+
patch,
|
|
57
|
+
head,
|
|
58
|
+
options,
|
|
59
|
+
add,
|
|
60
|
+
})
|
|
80
61
|
|
|
81
62
|
function make<
|
|
82
63
|
D extends {} = {},
|
|
83
64
|
I extends Route.Route.Tuple<{
|
|
84
65
|
method: string
|
|
85
66
|
}> = [],
|
|
86
|
-
>(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
{
|
|
92
|
-
[Route.RouteItems]: items,
|
|
93
|
-
[Route.RouteDescriptor]: {},
|
|
94
|
-
},
|
|
95
|
-
)
|
|
67
|
+
>(items: I): RouteMount.Builder<D, I> {
|
|
68
|
+
return Object.assign(Object.create(Proto), {
|
|
69
|
+
[Route.RouteItems]: items,
|
|
70
|
+
[Route.RouteDescriptor]: {},
|
|
71
|
+
})
|
|
96
72
|
}
|
|
97
73
|
|
|
98
|
-
function makeMethodDescriber<M extends RouteMount.Method>(
|
|
99
|
-
method: M,
|
|
100
|
-
): RouteMount.Describer<M> {
|
|
74
|
+
function makeMethodDescriber<M extends RouteMount.Method>(method: M): RouteMount.Describer<M> {
|
|
101
75
|
function describeMethod(
|
|
102
76
|
this: Self,
|
|
103
|
-
...fs: (
|
|
77
|
+
...fs: Array<(self: Route.RouteSet.Any) => Route.RouteSet.Any>
|
|
104
78
|
): Route.RouteSet.Any {
|
|
105
|
-
const baseItems = Route.isRouteSet(this)
|
|
106
|
-
? Route.items(this)
|
|
107
|
-
: [] as const
|
|
79
|
+
const baseItems = Route.isRouteSet(this) ? Route.items(this) : ([] as const)
|
|
108
80
|
|
|
109
81
|
const methodSet = Route.set<{ method: M }, []>([], { method })
|
|
110
|
-
const f = Function.flow(
|
|
111
|
-
...fs as [(_: Route.RouteSet.Any) => Route.RouteSet.Any],
|
|
112
|
-
)
|
|
82
|
+
const f = Function.flow(...(fs as [(_: Route.RouteSet.Any) => Route.RouteSet.Any]))
|
|
113
83
|
const result = f(methodSet)
|
|
114
84
|
const resultItems = Route.items(result)
|
|
115
85
|
|
|
@@ -118,22 +88,12 @@ function makeMethodDescriber<M extends RouteMount.Method>(
|
|
|
118
88
|
const itemDescriptor = Route.descriptor(item)
|
|
119
89
|
const newDescriptor = { method, ...itemDescriptor }
|
|
120
90
|
return Route.make(
|
|
121
|
-
(item as Route.Route.Route).handler as Route.Route.Handler<
|
|
122
|
-
any,
|
|
123
|
-
any,
|
|
124
|
-
any,
|
|
125
|
-
any
|
|
126
|
-
>,
|
|
91
|
+
(item as Route.Route.Route).handler as Route.Route.Handler<any, any, any, any>,
|
|
127
92
|
newDescriptor,
|
|
128
93
|
)
|
|
129
94
|
})
|
|
130
95
|
|
|
131
|
-
return make(
|
|
132
|
-
[
|
|
133
|
-
...baseItems,
|
|
134
|
-
...flattenedItems,
|
|
135
|
-
] as any,
|
|
136
|
-
)
|
|
96
|
+
return make([...baseItems, ...flattenedItems] as any)
|
|
137
97
|
}
|
|
138
98
|
return describeMethod as RouteMount.Describer<M>
|
|
139
99
|
}
|
|
@@ -151,87 +111,56 @@ export type MountedRoute = Route.Route.Route<
|
|
|
151
111
|
>
|
|
152
112
|
|
|
153
113
|
export namespace RouteMount {
|
|
154
|
-
export type Method =
|
|
155
|
-
| "*"
|
|
156
|
-
| Http.Method
|
|
157
|
-
|
|
158
|
-
export type MountSet = Route.RouteSet.RouteSet<
|
|
159
|
-
{ method: Method },
|
|
160
|
-
{},
|
|
161
|
-
Route.Route.Tuple
|
|
162
|
-
>
|
|
114
|
+
export type Method = "*" | Http.Method
|
|
163
115
|
|
|
164
|
-
export
|
|
165
|
-
D extends {} = {},
|
|
166
|
-
I extends Route.Route.Tuple = [],
|
|
167
|
-
> extends Route.RouteSet.RouteSet<D, {}, I>, Module {
|
|
168
|
-
}
|
|
116
|
+
export type MountSet = Route.RouteSet.RouteSet<{ method: Method }, {}, Route.Route.Tuple>
|
|
169
117
|
|
|
170
|
-
export
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
> = Route.RouteSet.RouteSet<
|
|
174
|
-
{ method: M },
|
|
175
|
-
B,
|
|
176
|
-
[]
|
|
177
|
-
>
|
|
118
|
+
export interface Builder<D extends {} = {}, I extends Route.Route.Tuple = []>
|
|
119
|
+
extends Route.RouteSet.RouteSet<D, {}, I>, Module {}
|
|
120
|
+
|
|
121
|
+
export type EmptySet<M extends Method, B = {}> = Route.RouteSet.RouteSet<{ method: M }, B, []>
|
|
178
122
|
|
|
179
123
|
export type Items<S> = S extends Builder<any, infer I> ? I : []
|
|
180
124
|
|
|
181
|
-
export type BuilderBindings<S> =
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
infer B,
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
>
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
A,
|
|
210
|
-
E,
|
|
211
|
-
R
|
|
212
|
-
>
|
|
213
|
-
: Route.Route.Route<D & { path: Prefix }, B, A, E, R>
|
|
214
|
-
: T
|
|
215
|
-
|
|
216
|
-
export type PrefixPath<
|
|
217
|
-
Prefix extends string,
|
|
218
|
-
I extends Route.Route.Tuple,
|
|
219
|
-
> = {
|
|
125
|
+
export type BuilderBindings<S> =
|
|
126
|
+
S extends Builder<any, infer I>
|
|
127
|
+
? Types.Simplify<WildcardBindings<I>> & { request: Request }
|
|
128
|
+
: { request: Request }
|
|
129
|
+
|
|
130
|
+
type WildcardBindingsItem<T> =
|
|
131
|
+
T extends Route.Route.Route<{ method: "*" }, infer B, any, any, any> ? B : {}
|
|
132
|
+
|
|
133
|
+
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (
|
|
134
|
+
k: infer I,
|
|
135
|
+
) => void
|
|
136
|
+
? I
|
|
137
|
+
: never
|
|
138
|
+
|
|
139
|
+
export type WildcardBindings<I extends Route.Route.Tuple> = UnionToIntersection<
|
|
140
|
+
{
|
|
141
|
+
[K in keyof I]: WildcardBindingsItem<I[K]>
|
|
142
|
+
}[number]
|
|
143
|
+
>
|
|
144
|
+
|
|
145
|
+
type PrefixPathItem<Prefix extends string, T> =
|
|
146
|
+
T extends Route.Route.Route<infer D, infer B, infer A, infer E, infer R>
|
|
147
|
+
? D extends { path: infer P extends string }
|
|
148
|
+
? Route.Route.Route<Omit<D, "path"> & { path: `${Prefix}${P}` }, B, A, E, R>
|
|
149
|
+
: Route.Route.Route<D & { path: Prefix }, B, A, E, R>
|
|
150
|
+
: T
|
|
151
|
+
|
|
152
|
+
export type PrefixPath<Prefix extends string, I extends Route.Route.Tuple> = {
|
|
220
153
|
[K in keyof I]: PrefixPathItem<Prefix, I[K]>
|
|
221
|
-
} extends infer R extends Route.Route.Tuple
|
|
154
|
+
} extends infer R extends Route.Route.Tuple
|
|
155
|
+
? R
|
|
156
|
+
: never
|
|
222
157
|
|
|
223
158
|
export interface Add {
|
|
224
159
|
<S extends Self, P extends string, R extends Route.RouteSet.Any>(
|
|
225
160
|
this: S,
|
|
226
161
|
path: P,
|
|
227
162
|
routes: R,
|
|
228
|
-
): Builder<
|
|
229
|
-
{},
|
|
230
|
-
[
|
|
231
|
-
...Items<S>,
|
|
232
|
-
...PrefixPath<P, Route.RouteSet.Items<R>>,
|
|
233
|
-
]
|
|
234
|
-
>
|
|
163
|
+
): Builder<{}, [...Items<S>, ...PrefixPath<P, Route.RouteSet.Items<R>>]>
|
|
235
164
|
|
|
236
165
|
<S extends Self, P extends string, R extends Route.RouteSet.Any>(
|
|
237
166
|
this: S,
|
|
@@ -241,63 +170,38 @@ export namespace RouteMount {
|
|
|
241
170
|
* nested routes can type-infer outer context when mounting.
|
|
242
171
|
*/
|
|
243
172
|
routes: (self: Builder<{}, []>) => R,
|
|
244
|
-
): Builder<
|
|
245
|
-
{},
|
|
246
|
-
[
|
|
247
|
-
...Items<S>,
|
|
248
|
-
...PrefixPath<P, Route.RouteSet.Items<R>>,
|
|
249
|
-
]
|
|
250
|
-
>
|
|
173
|
+
): Builder<{}, [...Items<S>, ...PrefixPath<P, Route.RouteSet.Items<R>>]>
|
|
251
174
|
}
|
|
252
175
|
|
|
253
176
|
// Flatten items: merge method into descriptor and accumulate bindings through the chain
|
|
254
177
|
// `request` is omitted from bindings since it's implicit (always available)
|
|
255
|
-
export type FlattenItems<
|
|
256
|
-
M extends Method,
|
|
257
|
-
B,
|
|
258
|
-
I extends Route.Route.Tuple,
|
|
259
|
-
> = I extends [
|
|
178
|
+
export type FlattenItems<M extends Method, B, I extends Route.Route.Tuple> = I extends [
|
|
260
179
|
Route.Route.Route<infer D, infer RB, infer A, infer E, infer R>,
|
|
261
180
|
...infer Tail extends Route.Route.Tuple,
|
|
262
|
-
]
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
181
|
+
]
|
|
182
|
+
? [
|
|
183
|
+
Route.Route.Route<
|
|
184
|
+
Types.Simplify<{ method: M } & D> & {},
|
|
185
|
+
Types.Simplify<Omit<B & RB, "request">>,
|
|
186
|
+
A,
|
|
187
|
+
E,
|
|
188
|
+
R
|
|
189
|
+
>,
|
|
190
|
+
...FlattenItems<M, Types.Simplify<B & RB>, Tail>,
|
|
191
|
+
]
|
|
272
192
|
: []
|
|
273
193
|
|
|
274
194
|
export interface Describer<M extends Method> {
|
|
275
195
|
<S extends Self, A extends Route.RouteSet.Any>(
|
|
276
196
|
this: S,
|
|
277
197
|
ab: (a: EmptySet<M, BuilderBindings<S>>) => A,
|
|
278
|
-
): Builder<
|
|
279
|
-
{},
|
|
280
|
-
[
|
|
281
|
-
...Items<S>,
|
|
282
|
-
...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<A>>,
|
|
283
|
-
]
|
|
284
|
-
>
|
|
198
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<A>>]>
|
|
285
199
|
|
|
286
|
-
<
|
|
287
|
-
S extends Self,
|
|
288
|
-
A extends Route.RouteSet.Any,
|
|
289
|
-
B extends Route.RouteSet.Any,
|
|
290
|
-
>(
|
|
200
|
+
<S extends Self, A extends Route.RouteSet.Any, B extends Route.RouteSet.Any>(
|
|
291
201
|
this: S,
|
|
292
202
|
ab: (a: EmptySet<M, BuilderBindings<S>>) => A,
|
|
293
203
|
bc: (b: A) => B,
|
|
294
|
-
): Builder<
|
|
295
|
-
{},
|
|
296
|
-
[
|
|
297
|
-
...Items<S>,
|
|
298
|
-
...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<B>>,
|
|
299
|
-
]
|
|
300
|
-
>
|
|
204
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<B>>]>
|
|
301
205
|
|
|
302
206
|
<
|
|
303
207
|
S extends Self,
|
|
@@ -309,13 +213,7 @@ export namespace RouteMount {
|
|
|
309
213
|
ab: (a: EmptySet<M, BuilderBindings<S>>) => A,
|
|
310
214
|
bc: (b: A) => B,
|
|
311
215
|
cd: (c: B) => C,
|
|
312
|
-
): Builder<
|
|
313
|
-
{},
|
|
314
|
-
[
|
|
315
|
-
...Items<S>,
|
|
316
|
-
...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<C>>,
|
|
317
|
-
]
|
|
318
|
-
>
|
|
216
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<C>>]>
|
|
319
217
|
|
|
320
218
|
<
|
|
321
219
|
S extends Self,
|
|
@@ -329,13 +227,7 @@ export namespace RouteMount {
|
|
|
329
227
|
bc: (b: A) => B,
|
|
330
228
|
cd: (c: B) => C,
|
|
331
229
|
de: (d: C) => D,
|
|
332
|
-
): Builder<
|
|
333
|
-
{},
|
|
334
|
-
[
|
|
335
|
-
...Items<S>,
|
|
336
|
-
...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<D>>,
|
|
337
|
-
]
|
|
338
|
-
>
|
|
230
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<D>>]>
|
|
339
231
|
|
|
340
232
|
<
|
|
341
233
|
S extends Self,
|
|
@@ -351,13 +243,7 @@ export namespace RouteMount {
|
|
|
351
243
|
cd: (c: B) => C,
|
|
352
244
|
de: (d: C) => D,
|
|
353
245
|
ef: (e: D) => E,
|
|
354
|
-
): Builder<
|
|
355
|
-
{},
|
|
356
|
-
[
|
|
357
|
-
...Items<S>,
|
|
358
|
-
...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<E>>,
|
|
359
|
-
]
|
|
360
|
-
>
|
|
246
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<E>>]>
|
|
361
247
|
|
|
362
248
|
<
|
|
363
249
|
S extends Self,
|
|
@@ -375,13 +261,7 @@ export namespace RouteMount {
|
|
|
375
261
|
de: (d: C) => D,
|
|
376
262
|
ef: (e: D) => E,
|
|
377
263
|
fg: (f: E) => F,
|
|
378
|
-
): Builder<
|
|
379
|
-
{},
|
|
380
|
-
[
|
|
381
|
-
...Items<S>,
|
|
382
|
-
...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<F>>,
|
|
383
|
-
]
|
|
384
|
-
>
|
|
264
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<F>>]>
|
|
385
265
|
|
|
386
266
|
<
|
|
387
267
|
S extends Self,
|
|
@@ -401,13 +281,7 @@ export namespace RouteMount {
|
|
|
401
281
|
ef: (e: D) => E,
|
|
402
282
|
fg: (f: E) => F,
|
|
403
283
|
gh: (g: F) => G,
|
|
404
|
-
): Builder<
|
|
405
|
-
{},
|
|
406
|
-
[
|
|
407
|
-
...Items<S>,
|
|
408
|
-
...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<G>>,
|
|
409
|
-
]
|
|
410
|
-
>
|
|
284
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<G>>]>
|
|
411
285
|
|
|
412
286
|
<
|
|
413
287
|
S extends Self,
|
|
@@ -429,13 +303,7 @@ export namespace RouteMount {
|
|
|
429
303
|
fg: (f: E) => F,
|
|
430
304
|
gh: (g: F) => G,
|
|
431
305
|
hi: (h: G) => H,
|
|
432
|
-
): Builder<
|
|
433
|
-
{},
|
|
434
|
-
[
|
|
435
|
-
...Items<S>,
|
|
436
|
-
...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<H>>,
|
|
437
|
-
]
|
|
438
|
-
>
|
|
306
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<H>>]>
|
|
439
307
|
|
|
440
308
|
<
|
|
441
309
|
S extends Self,
|
|
@@ -459,12 +327,6 @@ export namespace RouteMount {
|
|
|
459
327
|
gh: (g: F) => G,
|
|
460
328
|
hi: (h: G) => H,
|
|
461
329
|
ij: (i: H) => I,
|
|
462
|
-
): Builder<
|
|
463
|
-
{},
|
|
464
|
-
[
|
|
465
|
-
...Items<S>,
|
|
466
|
-
...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<I>>,
|
|
467
|
-
]
|
|
468
|
-
>
|
|
330
|
+
): Builder<{}, [...Items<S>, ...FlattenItems<M, BuilderBindings<S>, Route.RouteSet.Items<I>>]>
|
|
469
331
|
}
|
|
470
332
|
}
|