@effect/platform 0.35.0 → 0.37.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.
@@ -6,7 +6,7 @@ import * as Effectable from "effect/Effectable";
6
6
  import { dual } from "effect/Function";
7
7
  import * as Inspectable from "effect/Inspectable";
8
8
  import * as Option from "effect/Option";
9
- import FindMyWay from "find-my-way";
9
+ import * as FindMyWay from "find-my-way-ts";
10
10
  import * as Error from "../../Http/ServerError.js";
11
11
  import * as ServerRequest from "../../Http/ServerRequest.js";
12
12
  /** @internal */
@@ -72,17 +72,14 @@ class RouterImpl extends Effectable.StructuralClass {
72
72
  }
73
73
  }
74
74
  const toHttpApp = self => {
75
- const router = FindMyWay();
75
+ const router = FindMyWay.make();
76
76
  const mounts = Chunk.toReadonlyArray(self.mounts);
77
77
  const mountsLen = mounts.length;
78
78
  Chunk.forEach(self.routes, route => {
79
- function fn() {
80
- return route;
81
- }
82
79
  if (route.method === "*") {
83
- router.all(route.path, fn);
80
+ router.all(route.path, route);
84
81
  } else {
85
- router.on(route.method, route.path, fn);
82
+ router.on(route.method, route.path, route);
86
83
  }
87
84
  });
88
85
  return Effect.flatMap(ServerRequest.ServerRequest, request => {
@@ -95,15 +92,15 @@ const toHttpApp = self => {
95
92
  }
96
93
  }
97
94
  let result = router.find(request.method, request.url);
98
- if (result === null && request.method === "HEAD") {
95
+ if (result === undefined && request.method === "HEAD") {
99
96
  result = router.find("GET", request.url);
100
97
  }
101
- if (result === null) {
98
+ if (result === undefined) {
102
99
  return Effect.fail(Error.RouteNotFound({
103
100
  request
104
101
  }));
105
102
  }
106
- const route = result.handler();
103
+ const route = result.handler;
107
104
  if (route.prefix._tag === "Some") {
108
105
  request = sliceRequestUrl(request, route.prefix.value);
109
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","names":["Schema","Chunk","Context","Effect","Effectable","dual","Inspectable","Option","FindMyWay","Error","ServerRequest","TypeId","Symbol","for","RouteTypeId","RouteContextTypeId","RouteContext","Tag","params","map","_","searchParams","schemaParams","schema","parse","flatMap","schemaPathParams","schemaSearchParams","RouterImpl","StructuralClass","routes","mounts","constructor","httpApp","commit","undefined","toHttpApp","toJSON","_id","toString","format","NodeInspectSymbol","self","router","toReadonlyArray","mountsLen","length","forEach","route","fn","method","all","path","on","request","i","app","url","startsWith","provideService","sliceRequestUrl","result","find","fail","RouteNotFound","handler","prefix","_tag","value","mapInputContext","context","add","RouteContextImpl","prefexLen","modify","slice","RouteImpl","none","empty","fromIterable","makeRoute","concat","that","appendAll","removeTrailingSlash","endsWith","prefixAll","orElse","some","mount","mountApp","append","get","post","put","patch","del","head","options","use","f","catchAll","catchAllCause","catchTag","k","catchTags","cases","tag","service","provideServiceEffect","effect"],"sources":["../../../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"router.js","names":["Schema","Chunk","Context","Effect","Effectable","dual","Inspectable","Option","FindMyWay","Error","ServerRequest","TypeId","Symbol","for","RouteTypeId","RouteContextTypeId","RouteContext","Tag","params","map","_","searchParams","schemaParams","schema","parse","flatMap","schemaPathParams","schemaSearchParams","RouterImpl","StructuralClass","routes","mounts","constructor","httpApp","commit","undefined","toHttpApp","toJSON","_id","toString","format","NodeInspectSymbol","self","router","make","toReadonlyArray","mountsLen","length","forEach","route","method","all","path","on","request","i","app","url","startsWith","provideService","sliceRequestUrl","result","find","fail","RouteNotFound","handler","prefix","_tag","value","mapInputContext","context","add","RouteContextImpl","prefexLen","modify","slice","RouteImpl","none","empty","fromIterable","makeRoute","concat","that","appendAll","removeTrailingSlash","endsWith","prefixAll","orElse","some","mount","mountApp","append","get","post","put","patch","del","head","options","use","f","catchAll","catchAllCause","catchTag","k","catchTags","cases","tag","service","provideServiceEffect","effect"],"sources":["../../../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as Context from "effect/Context";
2
2
  import * as Effect from "effect/Effect";
3
3
  import { dual } from "effect/Function";
4
+ import * as Layer from "effect/Layer";
4
5
  /** @internal */
5
6
  export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/Server");
6
7
  /** @internal */
@@ -13,5 +14,7 @@ export const isServer = u => typeof u === "object" && u !== null && TypeId in u;
13
14
  /** @internal */
14
15
  export const make = options => Object.assign(Object.create(serverProto), options);
15
16
  /** @internal */
16
- export const serve = /*#__PURE__*/dual(args => Effect.isEffect(args[0]), (httpApp, middleware) => Effect.flatMap(serverTag, server => server.serve(httpApp, middleware)));
17
+ export const serve = /*#__PURE__*/dual(args => Effect.isEffect(args[0]), (httpApp, middleware) => Layer.scopedDiscard(Effect.flatMap(serverTag, server => server.serve(httpApp, middleware))));
18
+ /** @internal */
19
+ export const serveEffect = /*#__PURE__*/dual(args => Effect.isEffect(args[0]), (httpApp, middleware) => Effect.flatMap(serverTag, server => server.serve(httpApp, middleware)));
17
20
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","names":["Context","Effect","dual","TypeId","Symbol","for","serverTag","Tag","serverProto","isServer","u","make","options","Object","assign","create","serve","args","isEffect","httpApp","middleware","flatMap","server"],"sources":["../../../../src/internal/http/server.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AAQtC;AACA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,8BAA8B,CAAkB;AAEhG;AACA,OAAO,MAAMC,SAAS,gBAAGN,OAAO,CAACO,GAAG,CAAgBJ,MAAM,CAAC;AAE3D,MAAMK,WAAW,GAAG;EAClB,CAACL,MAAM,GAAGA;CACX;AAED;AACA,OAAO,MAAMM,QAAQ,GAAIC,CAAU,IAAyB,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAIP,MAAM,IAAIO,CAAC;AAE9G;AACA,OAAO,MAAMC,IAAI,GACfC,OAMC,IACiBC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAACP,WAAW,CAAC,EAAEI,OAAO,CAAC;AAEtE;AACA,OAAO,MAAMI,KAAK,gBAAGd,IAAI,CA+BtBe,IAAI,IAAKhB,MAAM,CAACiB,QAAQ,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACjC,CACCE,OAA0B,EAC1BC,UAAoD,KAMpDnB,MAAM,CAACoB,OAAO,CACZf,SAAS,EACRgB,MAAM,IAAKA,MAAM,CAACN,KAAK,CAACG,OAAO,EAAEC,UAAU,CAAC,CACtC,CACZ"}
1
+ {"version":3,"file":"server.js","names":["Context","Effect","dual","Layer","TypeId","Symbol","for","serverTag","Tag","serverProto","isServer","u","make","options","Object","assign","create","serve","args","isEffect","httpApp","middleware","scopedDiscard","flatMap","server","serveEffect"],"sources":["../../../../src/internal/http/server.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAOrC;AACA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,8BAA8B,CAAkB;AAEhG;AACA,OAAO,MAAMC,SAAS,gBAAGP,OAAO,CAACQ,GAAG,CAAgBJ,MAAM,CAAC;AAE3D,MAAMK,WAAW,GAAG;EAClB,CAACL,MAAM,GAAGA;CACX;AAED;AACA,OAAO,MAAMM,QAAQ,GAAIC,CAAU,IAAyB,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAIP,MAAM,IAAIO,CAAC;AAE9G;AACA,OAAO,MAAMC,IAAI,GACfC,OAMC,IACiBC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAACP,WAAW,CAAC,EAAEI,OAAO,CAAC;AAEtE;AACA,OAAO,MAAMI,KAAK,gBAAGf,IAAI,CA+BtBgB,IAAI,IAAKjB,MAAM,CAACkB,QAAQ,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EAClC,CACEE,OAA0B,EAC1BC,UAAqD,KAMrDlB,KAAK,CAACmB,aAAa,CACjBrB,MAAM,CAACsB,OAAO,CACZhB,SAAS,EACRiB,MAAM,IAAKA,MAAM,CAACP,KAAK,CAACG,OAAO,EAAEC,UAAW,CAAC,CAC/C,CACK,CACX;AAED;AACA,OAAO,MAAMI,WAAW,gBAAGvB,IAAI,CA+B5BgB,IAAI,IAAKjB,MAAM,CAACkB,QAAQ,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACjC,CACCE,OAA0B,EAC1BC,UAAoD,KAMpDpB,MAAM,CAACsB,OAAO,CACZhB,SAAS,EACRiB,MAAM,IAAKA,MAAM,CAACP,KAAK,CAACG,OAAO,EAAEC,UAAU,CAAC,CACtC,CACZ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.35.0",
3
+ "version": "0.37.0",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -10,7 +10,7 @@
10
10
  "sideEffects": [],
11
11
  "author": "Effect contributors",
12
12
  "dependencies": {
13
- "find-my-way": "^7.7.0",
13
+ "find-my-way-ts": "^0.1.0",
14
14
  "multipasta": "^0.1.19",
15
15
  "path-browserify": "^1.0.1"
16
16
  },
@@ -59,6 +59,12 @@ export const RouteTypeId: unique symbol = internal.RouteTypeId
59
59
  */
60
60
  export type RouteTypeId = typeof RouteTypeId
61
61
 
62
+ /**
63
+ * @since 1.0.0
64
+ * @category models
65
+ */
66
+ export type PathInput = `/${string}` | "*"
67
+
62
68
  /**
63
69
  * @since 1.0.0
64
70
  * @category models
@@ -66,7 +72,7 @@ export type RouteTypeId = typeof RouteTypeId
66
72
  export interface Route<R, E> {
67
73
  readonly [RouteTypeId]: RouteTypeId
68
74
  readonly method: Method.Method | "*"
69
- readonly path: string
75
+ readonly path: PathInput
70
76
  readonly handler: Route.Handler<R, E>
71
77
  readonly prefix: Option.Option<string>
72
78
  }
@@ -177,8 +183,9 @@ export const fromIterable: <R, E>(
177
183
  */
178
184
  export const makeRoute: <R, E>(
179
185
  method: Method.Method,
180
- path: string,
181
- handler: Route.Handler<R, E>
186
+ path: PathInput,
187
+ handler: Route.Handler<R, E>,
188
+ prefix?: Option.Option<string>
182
189
  ) => Route<R, E> = internal.makeRoute
183
190
 
184
191
  /**
@@ -186,8 +193,8 @@ export const makeRoute: <R, E>(
186
193
  * @category combinators
187
194
  */
188
195
  export const prefixAll: {
189
- (prefix: string): <R, E>(self: Router<R, E>) => Router<R, E>
190
- <R, E>(self: Router<R, E>, prefix: string): Router<R, E>
196
+ (prefix: PathInput): <R, E>(self: Router<R, E>) => Router<R, E>
197
+ <R, E>(self: Router<R, E>, prefix: PathInput): Router<R, E>
191
198
  } = internal.prefixAll
192
199
 
193
200
  /**
@@ -209,8 +216,8 @@ export const concat: {
209
216
  * @category routing
210
217
  */
211
218
  export const mount: {
212
- <R1, E1>(path: string, that: Router<R1, E1>): <R, E>(self: Router<R, E>) => Router<R1 | R, E1 | E>
213
- <R, E, R1, E1>(self: Router<R, E>, path: string, that: Router<R1, E1>): Router<R | R1, E | E1>
219
+ <R1, E1>(path: `/${string}`, that: Router<R1, E1>): <R, E>(self: Router<R, E>) => Router<R1 | R, E1 | E>
220
+ <R, E, R1, E1>(self: Router<R, E>, path: `/${string}`, that: Router<R1, E1>): Router<R | R1, E | E1>
214
221
  } = internal.mount
215
222
 
216
223
  /**
@@ -219,7 +226,7 @@ export const mount: {
219
226
  */
220
227
  export const mountApp: {
221
228
  <R1, E1>(
222
- path: string,
229
+ path: `/${string}`,
223
230
  that: App.Default<R1, E1>
224
231
  ): <R, E>(
225
232
  self: Router<R, E>
@@ -229,7 +236,7 @@ export const mountApp: {
229
236
  >
230
237
  <R, E, R1, E1>(
231
238
  self: Router<R, E>,
232
- path: string,
239
+ path: `/${string}`,
233
240
  that: App.Default<R1, E1>
234
241
  ): Router<
235
242
  Exclude<R, RouteContext | ServerRequest.ServerRequest> | Exclude<R1, RouteContext | ServerRequest.ServerRequest>,
@@ -245,7 +252,7 @@ export const route: (
245
252
  method: Method.Method | "*"
246
253
  ) => {
247
254
  <R1, E1>(
248
- path: string,
255
+ path: PathInput,
249
256
  handler: Route.Handler<R1, E1>
250
257
  ): <R, E>(
251
258
  self: Router<R, E>
@@ -255,7 +262,7 @@ export const route: (
255
262
  >
256
263
  <R, E, R1, E1>(
257
264
  self: Router<R, E>,
258
- path: string,
265
+ path: PathInput,
259
266
  handler: Route.Handler<R1, E1>
260
267
  ): Router<
261
268
  Exclude<R, RouteContext | ServerRequest.ServerRequest> | Exclude<R1, RouteContext | ServerRequest.ServerRequest>,
@@ -269,7 +276,7 @@ export const route: (
269
276
  */
270
277
  export const all: {
271
278
  <R1, E1>(
272
- path: string,
279
+ path: PathInput,
273
280
  handler: Route.Handler<R1, E1>
274
281
  ): <R, E>(
275
282
  self: Router<R, E>
@@ -279,7 +286,7 @@ export const all: {
279
286
  >
280
287
  <R, E, R1, E1>(
281
288
  self: Router<R, E>,
282
- path: string,
289
+ path: PathInput,
283
290
  handler: Route.Handler<R1, E1>
284
291
  ): Router<
285
292
  Exclude<R, RouteContext | ServerRequest.ServerRequest> | Exclude<R1, RouteContext | ServerRequest.ServerRequest>,
@@ -293,7 +300,7 @@ export const all: {
293
300
  */
294
301
  export const get: {
295
302
  <R1, E1>(
296
- path: string,
303
+ path: PathInput,
297
304
  handler: Route.Handler<R1, E1>
298
305
  ): <R, E>(
299
306
  self: Router<R, E>
@@ -303,7 +310,7 @@ export const get: {
303
310
  >
304
311
  <R, E, R1, E1>(
305
312
  self: Router<R, E>,
306
- path: string,
313
+ path: PathInput,
307
314
  handler: Route.Handler<R1, E1>
308
315
  ): Router<
309
316
  Exclude<R, RouteContext | ServerRequest.ServerRequest> | Exclude<R1, RouteContext | ServerRequest.ServerRequest>,
@@ -317,7 +324,7 @@ export const get: {
317
324
  */
318
325
  export const post: {
319
326
  <R1, E1>(
320
- path: string,
327
+ path: PathInput,
321
328
  handler: Route.Handler<R1, E1>
322
329
  ): <R, E>(
323
330
  self: Router<R, E>
@@ -327,7 +334,7 @@ export const post: {
327
334
  >
328
335
  <R, E, R1, E1>(
329
336
  self: Router<R, E>,
330
- path: string,
337
+ path: PathInput,
331
338
  handler: Route.Handler<R1, E1>
332
339
  ): Router<
333
340
  Exclude<R, RouteContext | ServerRequest.ServerRequest> | Exclude<R1, RouteContext | ServerRequest.ServerRequest>,
@@ -341,7 +348,7 @@ export const post: {
341
348
  */
342
349
  export const patch: {
343
350
  <R1, E1>(
344
- path: string,
351
+ path: PathInput,
345
352
  handler: Route.Handler<R1, E1>
346
353
  ): <R, E>(
347
354
  self: Router<R, E>
@@ -351,7 +358,7 @@ export const patch: {
351
358
  >
352
359
  <R, E, R1, E1>(
353
360
  self: Router<R, E>,
354
- path: string,
361
+ path: PathInput,
355
362
  handler: Route.Handler<R1, E1>
356
363
  ): Router<
357
364
  Exclude<R, RouteContext | ServerRequest.ServerRequest> | Exclude<R1, RouteContext | ServerRequest.ServerRequest>,
@@ -365,7 +372,7 @@ export const patch: {
365
372
  */
366
373
  export const put: {
367
374
  <R1, E1>(
368
- path: string,
375
+ path: PathInput,
369
376
  handler: Route.Handler<R1, E1>
370
377
  ): <R, E>(
371
378
  self: Router<R, E>
@@ -375,7 +382,7 @@ export const put: {
375
382
  >
376
383
  <R, E, R1, E1>(
377
384
  self: Router<R, E>,
378
- path: string,
385
+ path: PathInput,
379
386
  handler: Route.Handler<R1, E1>
380
387
  ): Router<
381
388
  Exclude<R, RouteContext | ServerRequest.ServerRequest> | Exclude<R1, RouteContext | ServerRequest.ServerRequest>,
@@ -389,7 +396,7 @@ export const put: {
389
396
  */
390
397
  export const del: {
391
398
  <R1, E1>(
392
- path: string,
399
+ path: PathInput,
393
400
  handler: Route.Handler<R1, E1>
394
401
  ): <R, E>(
395
402
  self: Router<R, E>
@@ -399,7 +406,7 @@ export const del: {
399
406
  >
400
407
  <R, E, R1, E1>(
401
408
  self: Router<R, E>,
402
- path: string,
409
+ path: PathInput,
403
410
  handler: Route.Handler<R1, E1>
404
411
  ): Router<
405
412
  Exclude<R, RouteContext | ServerRequest.ServerRequest> | Exclude<R1, RouteContext | ServerRequest.ServerRequest>,
@@ -413,7 +420,7 @@ export const del: {
413
420
  */
414
421
  export const head: {
415
422
  <R1, E1>(
416
- path: string,
423
+ path: PathInput,
417
424
  handler: Route.Handler<R1, E1>
418
425
  ): <R, E>(
419
426
  self: Router<R, E>
@@ -423,7 +430,7 @@ export const head: {
423
430
  >
424
431
  <R, E, R1, E1>(
425
432
  self: Router<R, E>,
426
- path: string,
433
+ path: PathInput,
427
434
  handler: Route.Handler<R1, E1>
428
435
  ): Router<
429
436
  Exclude<R, RouteContext | ServerRequest.ServerRequest> | Exclude<R1, RouteContext | ServerRequest.ServerRequest>,
@@ -437,7 +444,7 @@ export const head: {
437
444
  */
438
445
  export const options: {
439
446
  <R1, E1>(
440
- path: string,
447
+ path: PathInput,
441
448
  handler: Route.Handler<R1, E1>
442
449
  ): <R, E>(
443
450
  self: Router<R, E>
@@ -447,7 +454,7 @@ export const options: {
447
454
  >
448
455
  <R, E, R1, E1>(
449
456
  self: Router<R, E>,
450
- path: string,
457
+ path: PathInput,
451
458
  handler: Route.Handler<R1, E1>
452
459
  ): Router<
453
460
  Exclude<R, RouteContext | ServerRequest.ServerRequest> | Exclude<R1, RouteContext | ServerRequest.ServerRequest>,
@@ -3,11 +3,11 @@
3
3
  */
4
4
  import type * as Context from "effect/Context"
5
5
  import type * as Effect from "effect/Effect"
6
+ import type * as Layer from "effect/Layer"
6
7
  import type * as Scope from "effect/Scope"
7
8
  import * as internal from "../internal/http/server.js"
8
9
  import type * as App from "./App.js"
9
10
  import type * as Middleware from "./Middleware.js"
10
- import type * as Error from "./ServerError.js"
11
11
  import type * as ServerRequest from "./ServerRequest.js"
12
12
 
13
13
  /**
@@ -31,16 +31,16 @@ export interface Server {
31
31
  readonly serve: {
32
32
  <R, E>(httpApp: App.Default<R, E>): Effect.Effect<
33
33
  Exclude<R, ServerRequest.ServerRequest> | Scope.Scope,
34
- Error.ServeError,
35
- never
34
+ never,
35
+ void
36
36
  >
37
37
  <R, E, App extends App.Default<any, any>>(
38
38
  httpApp: App.Default<R, E>,
39
39
  middleware: Middleware.Middleware.Applied<R, E, App>
40
40
  ): Effect.Effect<
41
41
  Exclude<Effect.Effect.Context<App>, ServerRequest.ServerRequest> | Scope.Scope,
42
- Error.ServeError,
43
- never
42
+ never,
43
+ void
44
44
  >
45
45
  }
46
46
  readonly address: Address
@@ -94,7 +94,7 @@ export const make: (
94
94
  readonly serve: (
95
95
  httpApp: App.Default<never, unknown>,
96
96
  middleware?: Middleware.Middleware
97
- ) => Effect.Effect<Scope.Scope, Error.ServeError, never>
97
+ ) => Effect.Effect<Scope.Scope, never, void>
98
98
  readonly address: Address
99
99
  }
100
100
  ) => Server = internal.make
@@ -104,31 +104,41 @@ export const make: (
104
104
  * @category accessors
105
105
  */
106
106
  export const serve: {
107
+ (): <R, E>(httpApp: App.Default<R, E>) => Layer.Layer<Server | Exclude<R, ServerRequest.ServerRequest>, never, never>
108
+ <R, E, App extends App.Default<any, any>>(
109
+ middleware: Middleware.Middleware.Applied<R, E, App>
110
+ ): (
111
+ httpApp: App.Default<R, E>
112
+ ) => Layer.Layer<Server | Exclude<Effect.Effect.Context<App>, ServerRequest.ServerRequest>, never, never>
113
+ <R, E>(httpApp: App.Default<R, E>): Layer.Layer<Server | Exclude<R, ServerRequest.ServerRequest>, never, never>
114
+ <R, E, App extends App.Default<any, any>>(
115
+ httpApp: App.Default<R, E>,
116
+ middleware: Middleware.Middleware.Applied<R, E, App>
117
+ ): Layer.Layer<Server | Exclude<Effect.Effect.Context<App>, ServerRequest.ServerRequest>, never, never>
118
+ } = internal.serve
119
+
120
+ /**
121
+ * @since 1.0.0
122
+ * @category accessors
123
+ */
124
+ export const serveEffect: {
107
125
  (): <R, E>(
108
126
  httpApp: App.Default<R, E>
109
- ) => Effect.Effect<
110
- Server | Scope.Scope | Exclude<R, ServerRequest.ServerRequest>,
111
- Error.ServeError,
112
- never
113
- >
127
+ ) => Effect.Effect<Scope.Scope | Server | Exclude<R, ServerRequest.ServerRequest>, never, void>
114
128
  <R, E, App extends App.Default<any, any>>(
115
129
  middleware: Middleware.Middleware.Applied<R, E, App>
116
130
  ): (
117
131
  httpApp: App.Default<R, E>
118
132
  ) => Effect.Effect<
119
- Server | Scope.Scope | Exclude<Effect.Effect.Context<App>, ServerRequest.ServerRequest>,
120
- Error.ServeError,
121
- never
133
+ Scope.Scope | Server | Exclude<Effect.Effect.Context<App>, ServerRequest.ServerRequest>,
134
+ never,
135
+ void
122
136
  >
123
137
  <R, E>(
124
138
  httpApp: App.Default<R, E>
125
- ): Effect.Effect<Server | Scope.Scope | Exclude<R, ServerRequest.ServerRequest>, Error.ServeError, never>
139
+ ): Effect.Effect<Scope.Scope | Server | Exclude<R, ServerRequest.ServerRequest>, never, void>
126
140
  <R, E, App extends App.Default<any, any>>(
127
141
  httpApp: App.Default<R, E>,
128
142
  middleware: Middleware.Middleware.Applied<R, E, App>
129
- ): Effect.Effect<
130
- Server | Scope.Scope | Exclude<Effect.Effect.Context<App>, ServerRequest.ServerRequest>,
131
- Error.ServeError,
132
- never
133
- >
134
- } = internal.serve
143
+ ): Effect.Effect<Scope.Scope | Server | Exclude<Effect.Effect.Context<App>, ServerRequest.ServerRequest>, never, void>
144
+ } = internal.serveEffect
@@ -7,8 +7,7 @@ import * as Effectable from "effect/Effectable"
7
7
  import { dual } from "effect/Function"
8
8
  import * as Inspectable from "effect/Inspectable"
9
9
  import * as Option from "effect/Option"
10
- import type { HTTPMethod } from "find-my-way"
11
- import FindMyWay from "find-my-way"
10
+ import * as FindMyWay from "find-my-way-ts"
12
11
  import type * as App from "../../Http/App.js"
13
12
  import type * as Method from "../../Http/Method.js"
14
13
  import type * as Router from "../../Http/Router.js"
@@ -95,17 +94,14 @@ class RouterImpl<R, E> extends Effectable.StructuralClass<
95
94
  const toHttpApp = <R, E>(
96
95
  self: Router.Router<R, E>
97
96
  ): App.Default<Router.Router.ExcludeProvided<R>, E | Error.RouteNotFound> => {
98
- const router = FindMyWay()
97
+ const router = FindMyWay.make<Router.Route<R, E>>()
99
98
  const mounts = Chunk.toReadonlyArray(self.mounts)
100
99
  const mountsLen = mounts.length
101
100
  Chunk.forEach(self.routes, (route) => {
102
- function fn() {
103
- return route
104
- }
105
101
  if (route.method === "*") {
106
- router.all(route.path, fn)
102
+ router.all(route.path, route)
107
103
  } else {
108
- router.on(route.method, route.path, fn)
104
+ router.on(route.method, route.path, route)
109
105
  }
110
106
  })
111
107
  return Effect.flatMap(
@@ -124,14 +120,14 @@ const toHttpApp = <R, E>(
124
120
  }
125
121
  }
126
122
 
127
- let result = router.find(request.method as HTTPMethod, request.url)
128
- if (result === null && request.method === "HEAD") {
123
+ let result = router.find(request.method, request.url)
124
+ if (result === undefined && request.method === "HEAD") {
129
125
  result = router.find("GET", request.url)
130
126
  }
131
- if (result === null) {
127
+ if (result === undefined) {
132
128
  return Effect.fail(Error.RouteNotFound({ request }))
133
129
  }
134
- const route = (result.handler as any)() as Router.Route<R, E>
130
+ const route = result.handler
135
131
  if (route.prefix._tag === "Some") {
136
132
  request = sliceRequestUrl(request, route.prefix.value)
137
133
  }
@@ -157,7 +153,7 @@ class RouteImpl<R, E> implements Router.Route<R, E> {
157
153
  readonly [RouteTypeId]: Router.RouteTypeId
158
154
  constructor(
159
155
  readonly method: Method.Method | "*",
160
- readonly path: string,
156
+ readonly path: Router.PathInput,
161
157
  readonly handler: Router.Route.Handler<R, E>,
162
158
  readonly prefix = Option.none<string>()
163
159
  ) {
@@ -186,7 +182,7 @@ export const fromIterable = <R, E>(
186
182
  /** @internal */
187
183
  export const makeRoute = <R, E>(
188
184
  method: Method.Method,
189
- path: string,
185
+ path: Router.PathInput,
190
186
  handler: Router.Route.Handler<R, E>,
191
187
  prefix: Option.Option<string> = Option.none()
192
188
  ): Router.Route<R, E> => new RouteImpl(method, path, handler, prefix)
@@ -197,12 +193,14 @@ export const concat = dual<
197
193
  <R, E, R1, E1>(self: Router.Router<R, E>, that: Router.Router<R1, E1>) => Router.Router<R | R1, E | E1>
198
194
  >(2, (self, that) => new RouterImpl(Chunk.appendAll(self.routes, that.routes) as any, self.mounts))
199
195
 
200
- const removeTrailingSlash = (path: string) => (path.endsWith("/") ? path.slice(0, -1) : path)
196
+ const removeTrailingSlash = (
197
+ path: Router.PathInput
198
+ ): Router.PathInput => (path.endsWith("/") ? path.slice(0, -1) : path) as any
201
199
 
202
200
  /** @internal */
203
201
  export const prefixAll = dual<
204
- (prefix: string) => <R, E>(self: Router.Router<R, E>) => Router.Router<R, E>,
205
- <R, E>(self: Router.Router<R, E>, prefix: string) => Router.Router<R, E>
202
+ (prefix: Router.PathInput) => <R, E>(self: Router.Router<R, E>) => Router.Router<R, E>,
203
+ <R, E>(self: Router.Router<R, E>, prefix: Router.PathInput) => Router.Router<R, E>
206
204
  >(
207
205
  2,
208
206
  (self, prefix) => {
@@ -211,7 +209,7 @@ export const prefixAll = dual<
211
209
  Chunk.map(self.routes, (route) =>
212
210
  new RouteImpl(
213
211
  route.method,
214
- route.path === "/" ? prefix : prefix + route.path,
212
+ route.path === "/" ? prefix : prefix + route.path as Router.PathInput,
215
213
  route.handler,
216
214
  Option.orElse(
217
215
  Option.map(route.prefix, (_) => prefix + _),
@@ -226,12 +224,12 @@ export const prefixAll = dual<
226
224
  /** @internal */
227
225
  export const mount = dual<
228
226
  <R1, E1>(
229
- path: string,
227
+ path: `/${string}`,
230
228
  that: Router.Router<R1, E1>
231
229
  ) => <R, E>(self: Router.Router<R, E>) => Router.Router<R | R1, E | E1>,
232
230
  <R, E, R1, E1>(
233
231
  self: Router.Router<R, E>,
234
- path: string,
232
+ path: `/${string}`,
235
233
  that: Router.Router<R1, E1>
236
234
  ) => Router.Router<R | R1, E | E1>
237
235
  >(
@@ -242,14 +240,14 @@ export const mount = dual<
242
240
  /** @internal */
243
241
  export const mountApp = dual<
244
242
  <R1, E1>(
245
- path: string,
243
+ path: `/${string}`,
246
244
  that: App.Default<R1, E1>
247
245
  ) => <R, E>(
248
246
  self: Router.Router<R, E>
249
247
  ) => Router.Router<Router.Router.ExcludeProvided<R | R1>, E | E1>,
250
248
  <R, E, R1, E1>(
251
249
  self: Router.Router<R, E>,
252
- path: string,
250
+ path: `/${string}`,
253
251
  that: App.Default<R1, E1>
254
252
  ) => Router.Router<Router.Router.ExcludeProvided<R | R1>, E | E1>
255
253
  >(
@@ -261,27 +259,27 @@ export const mountApp = dual<
261
259
  /** @internal */
262
260
  export const route = (method: Method.Method | "*"): {
263
261
  <R1, E1>(
264
- path: string,
262
+ path: Router.PathInput,
265
263
  handler: Router.Route.Handler<R1, E1>
266
264
  ): <R, E>(
267
265
  self: Router.Router<R, E>
268
266
  ) => Router.Router<Router.Router.ExcludeProvided<R | R1>, E1 | E>
269
267
  <R, E, R1, E1>(
270
268
  self: Router.Router<R, E>,
271
- path: string,
269
+ path: Router.PathInput,
272
270
  handler: Router.Route.Handler<R1, E1>
273
271
  ): Router.Router<Router.Router.ExcludeProvided<R | R1>, E1 | E>
274
272
  } =>
275
273
  dual<
276
274
  <R1, E1>(
277
- path: string,
275
+ path: Router.PathInput,
278
276
  handler: Router.Route.Handler<R1, E1>
279
277
  ) => <R, E>(
280
278
  self: Router.Router<R, E>
281
279
  ) => Router.Router<Router.Router.ExcludeProvided<R | R1>, E | E1>,
282
280
  <R, E, R1, E1>(
283
281
  self: Router.Router<R, E>,
284
- path: string,
282
+ path: Router.PathInput,
285
283
  handler: Router.Route.Handler<R1, E1>
286
284
  ) => Router.Router<Router.Router.ExcludeProvided<R | R1>, E | E1>
287
285
  >(3, (self, path, handler) =>