@effect/platform 0.87.1 → 0.87.2

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 (43) hide show
  1. package/HttpLayerRouter/package.json +6 -0
  2. package/README.md +271 -0
  3. package/dist/cjs/HttpApiBuilder.js +15 -1
  4. package/dist/cjs/HttpApiBuilder.js.map +1 -1
  5. package/dist/cjs/HttpApiScalar.js +29 -11
  6. package/dist/cjs/HttpApiScalar.js.map +1 -1
  7. package/dist/cjs/HttpApiSwagger.js +32 -15
  8. package/dist/cjs/HttpApiSwagger.js.map +1 -1
  9. package/dist/cjs/HttpLayerRouter.js +494 -0
  10. package/dist/cjs/HttpLayerRouter.js.map +1 -0
  11. package/dist/cjs/index.js +3 -1
  12. package/dist/cjs/internal/httpRouter.js +3 -1
  13. package/dist/cjs/internal/httpRouter.js.map +1 -1
  14. package/dist/dts/HttpApiBuilder.d.ts +6 -0
  15. package/dist/dts/HttpApiBuilder.d.ts.map +1 -1
  16. package/dist/dts/HttpApiScalar.d.ts +14 -2
  17. package/dist/dts/HttpApiScalar.d.ts.map +1 -1
  18. package/dist/dts/HttpApiSwagger.d.ts +12 -2
  19. package/dist/dts/HttpApiSwagger.d.ts.map +1 -1
  20. package/dist/dts/HttpLayerRouter.d.ts +481 -0
  21. package/dist/dts/HttpLayerRouter.d.ts.map +1 -0
  22. package/dist/dts/index.d.ts +4 -0
  23. package/dist/dts/index.d.ts.map +1 -1
  24. package/dist/dts/internal/httpRouter.d.ts.map +1 -1
  25. package/dist/esm/HttpApiBuilder.js +14 -0
  26. package/dist/esm/HttpApiBuilder.js.map +1 -1
  27. package/dist/esm/HttpApiScalar.js +28 -10
  28. package/dist/esm/HttpApiScalar.js.map +1 -1
  29. package/dist/esm/HttpApiSwagger.js +31 -14
  30. package/dist/esm/HttpApiSwagger.js.map +1 -1
  31. package/dist/esm/HttpLayerRouter.js +468 -0
  32. package/dist/esm/HttpLayerRouter.js.map +1 -0
  33. package/dist/esm/index.js +4 -0
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/internal/httpRouter.js +3 -1
  36. package/dist/esm/internal/httpRouter.js.map +1 -1
  37. package/package.json +10 -2
  38. package/src/HttpApiBuilder.ts +30 -0
  39. package/src/HttpApiScalar.ts +79 -41
  40. package/src/HttpApiSwagger.ts +49 -18
  41. package/src/HttpLayerRouter.ts +920 -0
  42. package/src/index.ts +5 -0
  43. package/src/internal/httpRouter.ts +4 -1
@@ -0,0 +1,481 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as HttpServerRequest from "@effect/platform/HttpServerRequest";
5
+ import * as HttpServerResponse from "@effect/platform/HttpServerResponse";
6
+ import * as Context from "effect/Context";
7
+ import * as Effect from "effect/Effect";
8
+ import * as Layer from "effect/Layer";
9
+ import * as Option from "effect/Option";
10
+ import * as Scope from "effect/Scope";
11
+ import * as FindMyWay from "find-my-way-ts";
12
+ import * as HttpApi from "./HttpApi.js";
13
+ import type * as HttpApiGroup from "./HttpApiGroup.js";
14
+ import type * as HttpMethod from "./HttpMethod.js";
15
+ import { RouteContext } from "./HttpRouter.js";
16
+ import * as HttpServer from "./HttpServer.js";
17
+ import * as HttpServerError from "./HttpServerError.js";
18
+ /**
19
+ * @since 1.0.0
20
+ * @category Re-exports
21
+ */
22
+ export * as FindMyWay from "find-my-way-ts";
23
+ /**
24
+ * @since 1.0.0
25
+ * @category HttpRouter
26
+ */
27
+ export declare const TypeId: unique symbol;
28
+ /**
29
+ * @since 1.0.0
30
+ * @category HttpRouter
31
+ */
32
+ export type TypeId = typeof TypeId;
33
+ /**
34
+ * @since 1.0.0
35
+ * @category HttpRouter
36
+ */
37
+ export interface HttpRouter {
38
+ readonly [TypeId]: TypeId;
39
+ readonly prefixed: (prefix: string) => HttpRouter;
40
+ readonly add: <E, R>(method: "*" | "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS", path: PathInput, handler: Effect.Effect<HttpServerResponse.HttpServerResponse, E, R> | ((request: HttpServerRequest.HttpServerRequest) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>), options?: {
41
+ readonly uninterruptible?: boolean | undefined;
42
+ } | undefined) => Effect.Effect<void, never, Type.From<"Requires", Exclude<R, Provided>> | Type.From<"Error", E>>;
43
+ readonly addAll: <const Routes extends ReadonlyArray<Route<any, any>>>(routes: Routes) => Effect.Effect<void, never, Type.From<"Requires", Exclude<Route.Context<Routes[number]>, Provided>> | Type.From<"Error", Route.Error<Routes[number]>>>;
44
+ readonly asHttpEffect: () => Effect.Effect<HttpServerResponse.HttpServerResponse, unknown, HttpServerRequest.HttpServerRequest | Scope.Scope>;
45
+ }
46
+ /**
47
+ * @since 1.0.0
48
+ * @category HttpRouter
49
+ */
50
+ export declare const HttpRouter: Context.Tag<HttpRouter, HttpRouter>;
51
+ /**
52
+ * @since 1.0.0
53
+ * @category HttpRouter
54
+ */
55
+ export declare const make: Effect.Effect<HttpRouter, never, never>;
56
+ declare const RouterConfig_base: Context.ReferenceClass<RouterConfig, "@effect/platform/HttpLayerRouter/RouterConfig", Partial<FindMyWay.RouterConfig>>;
57
+ /**
58
+ * @since 1.0.0
59
+ * @category Configuration
60
+ */
61
+ export declare class RouterConfig extends RouterConfig_base {
62
+ }
63
+ export {
64
+ /**
65
+ * @since 1.0.0
66
+ * @category Route context
67
+ */
68
+ params,
69
+ /**
70
+ * @since 1.0.0
71
+ * @category Route context
72
+ */
73
+ RouteContext,
74
+ /**
75
+ * @since 1.0.0
76
+ * @category Route context
77
+ */
78
+ schemaJson,
79
+ /**
80
+ * @since 1.0.0
81
+ * @category Route context
82
+ */
83
+ schemaNoBody,
84
+ /**
85
+ * @since 1.0.0
86
+ * @category Route context
87
+ */
88
+ schemaParams,
89
+ /**
90
+ * @since 1.0.0
91
+ * @category Route context
92
+ */
93
+ schemaPathParams } from "./HttpRouter.js";
94
+ /**
95
+ * A helper function that is the equivalent of:
96
+ *
97
+ * ```ts
98
+ * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
99
+ * import * as Effect from "effect/Effect"
100
+ * import * as Layer from "effect/Layer"
101
+ *
102
+ * const MyRoute = Layer.scopedDiscard(Effect.gen(function*() {
103
+ * const router = yield* HttpLayerRouter.HttpRouter
104
+ *
105
+ * // then use `router.add` to add a route
106
+ * }))
107
+ * ```
108
+ *
109
+ * @since 1.0.0
110
+ * @category HttpRouter
111
+ */
112
+ export declare const use: <A, E, R>(f: (router: HttpRouter) => Effect.Effect<A, E, R>) => Layer.Layer<never, E, HttpRouter | Exclude<R, Scope.Scope>>;
113
+ /**
114
+ * @since 1.0.0
115
+ * @category HttpRouter
116
+ */
117
+ export declare const layer: Layer.Layer<HttpRouter>;
118
+ /**
119
+ * @since 1.0.0
120
+ * @category HttpRouter
121
+ */
122
+ export declare const toHttpEffect: <A, E, R>(appLayer: Layer.Layer<A, E, R>) => Effect.Effect<Effect.Effect<HttpServerResponse.HttpServerResponse, Type.Only<"Error", R> | HttpServerError.RouteNotFound, Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R>>, E, Exclude<Type.Without<R>, HttpRouter> | Scope.Scope>;
123
+ /**
124
+ * @since 1.0.0
125
+ * @category Route
126
+ */
127
+ export declare const RouteTypeId: unique symbol;
128
+ /**
129
+ * @since 1.0.0
130
+ * @category Route
131
+ */
132
+ export type RouteTypeId = typeof RouteTypeId;
133
+ /**
134
+ * @since 1.0.0
135
+ * @category Route
136
+ */
137
+ export interface Route<E = never, R = never> {
138
+ readonly [RouteTypeId]: RouteTypeId;
139
+ readonly method: HttpMethod.HttpMethod | "*";
140
+ readonly path: PathInput;
141
+ readonly handler: Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>;
142
+ readonly uninterruptible: boolean;
143
+ readonly prefix: Option.Option<string>;
144
+ }
145
+ /**
146
+ * @since 1.0.0
147
+ * @category Route
148
+ */
149
+ export declare namespace Route {
150
+ /**
151
+ * @since 1.0.0
152
+ * @category Route
153
+ */
154
+ type Error<R extends Route<any, any>> = R extends Route<infer E, infer _R> ? E : never;
155
+ /**
156
+ * @since 1.0.0
157
+ * @category Route
158
+ */
159
+ type Context<T extends Route<any, any>> = T extends Route<infer _E, infer R> ? R : never;
160
+ }
161
+ /**
162
+ * @since 1.0.0
163
+ * @category Route
164
+ */
165
+ export declare const route: <E, R>(method: "*" | "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS", path: PathInput, handler: Effect.Effect<HttpServerResponse.HttpServerResponse, E, R> | ((request: HttpServerRequest.HttpServerRequest) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>), options?: {
166
+ readonly uninterruptible?: boolean | undefined;
167
+ }) => Route<E, Exclude<R, Provided>>;
168
+ /**
169
+ * @since 1.0.0
170
+ * @category PathInput
171
+ */
172
+ export type PathInput = `/${string}` | "*";
173
+ /**
174
+ * @since 1.0.0
175
+ * @category PathInput
176
+ */
177
+ export declare const prefixPath: {
178
+ /**
179
+ * @since 1.0.0
180
+ * @category PathInput
181
+ */
182
+ (prefix: string): (self: string) => string;
183
+ /**
184
+ * @since 1.0.0
185
+ * @category PathInput
186
+ */
187
+ (self: string, prefix: string): string;
188
+ };
189
+ /**
190
+ * @since 1.0.0
191
+ * @category Route
192
+ */
193
+ export declare const prefixRoute: {
194
+ /**
195
+ * @since 1.0.0
196
+ * @category Route
197
+ */
198
+ (prefix: string): <E, R>(self: Route<E, R>) => Route<E, R>;
199
+ /**
200
+ * @since 1.0.0
201
+ * @category Route
202
+ */
203
+ <E, R>(self: Route<E, R>, prefix: string): Route<E, R>;
204
+ };
205
+ /**
206
+ * Represents a request-level dependency, that needs to be provided by
207
+ * middleware.
208
+ *
209
+ * @since 1.0.0
210
+ * @category Request types
211
+ */
212
+ export interface Type<Kind extends string, T> {
213
+ readonly _: unique symbol;
214
+ readonly kind: Kind;
215
+ readonly type: T;
216
+ }
217
+ /**
218
+ * @since 1.0.0
219
+ * @category Request types
220
+ */
221
+ export declare namespace Type {
222
+ /**
223
+ * @since 1.0.0
224
+ * @category Request types
225
+ */
226
+ type From<Kind extends string, R> = R extends infer T ? Type<Kind, T> : never;
227
+ /**
228
+ * @since 1.0.0
229
+ * @category Request types
230
+ */
231
+ type Only<Kind extends string, A> = A extends Type<Kind, infer T> ? T : never;
232
+ /**
233
+ * @since 1.0.0
234
+ * @category Request types
235
+ */
236
+ type Without<A> = A extends Type<infer _Kind, infer _> ? never : A;
237
+ }
238
+ /**
239
+ * Services provided by the HTTP router, which are available in the
240
+ * request context.
241
+ *
242
+ * @since 1.0.0
243
+ * @category Request types
244
+ */
245
+ export type Provided = HttpServerRequest.HttpServerRequest | Scope.Scope | HttpServerRequest.ParsedSearchParams | RouteContext;
246
+ /**
247
+ * @since 1.0.0
248
+ * @category Middleware
249
+ */
250
+ export declare const MiddlewareTypeId: unique symbol;
251
+ /**
252
+ * @since 1.0.0
253
+ * @category Middleware
254
+ */
255
+ export type MiddlewareTypeId = typeof MiddlewareTypeId;
256
+ /**
257
+ * @since 1.0.0
258
+ * @category Middleware
259
+ */
260
+ export interface Middleware<Config extends {
261
+ provides: any;
262
+ handles: any;
263
+ error: any;
264
+ requires: any;
265
+ layerError: any;
266
+ layerRequires: any;
267
+ }> {
268
+ readonly [MiddlewareTypeId]: Config;
269
+ readonly layer: [Config["requires"]] extends [never] ? Layer.Layer<Type.From<"Requires", Config["provides"]>, Config["layerError"], Config["layerRequires"] | Type.From<"Requires", Config["requires"]>> : "Need to .provide(middleware) that satisfy the missing request dependencies";
270
+ readonly combine: <Config2 extends {
271
+ provides: any;
272
+ handles: any;
273
+ error: any;
274
+ requires: any;
275
+ layerError: any;
276
+ layerRequires: any;
277
+ }>(other: Middleware<Config2>) => Middleware<{
278
+ provides: Config2["provides"] | Config["provides"];
279
+ handles: Config2["handles"] | Config["handles"];
280
+ error: Config2["error"] | Exclude<Config["error"], Config2["handles"]>;
281
+ requires: Exclude<Config["requires"], Config2["provides"]> | Config2["requires"];
282
+ layerError: Config["layerError"] | Config2["layerError"];
283
+ layerRequires: Config["layerRequires"] | Config2["layerRequires"];
284
+ }>;
285
+ }
286
+ /**
287
+ * Create a middleware layer that can be used to modify requests and responses.
288
+ *
289
+ * ```ts
290
+ * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
291
+ * import * as HttpMiddleware from "@effect/platform/HttpMiddleware"
292
+ * import * as HttpServerResponse from "@effect/platform/HttpServerResponse"
293
+ * import * as Context from "effect/Context"
294
+ * import * as Effect from "effect/Effect"
295
+ * import * as Layer from "effect/Layer"
296
+ *
297
+ * // Here we are defining a CORS middleware
298
+ * const CorsMiddleware = HttpLayerRouter.middleware(HttpMiddleware.cors()).layer
299
+ * // You can also use HttpLayerRouter.cors() to create a CORS middleware
300
+ *
301
+ * class CurrentSession extends Context.Tag("CurrentSession")<CurrentSession, {
302
+ * readonly token: string
303
+ * }>() {}
304
+ *
305
+ * // You can create middleware that provides a service to the HTTP requests.
306
+ * const SessionMiddleware = HttpLayerRouter.middleware<{
307
+ * provides: CurrentSession
308
+ * }>()(
309
+ * Effect.gen(function*() {
310
+ * yield* Effect.log("SessionMiddleware initialized")
311
+ *
312
+ * return (httpEffect) =>
313
+ * Effect.provideService(httpEffect, CurrentSession, {
314
+ * token: "dummy-token"
315
+ * })
316
+ * })
317
+ * ).layer
318
+ *
319
+ * Effect.gen(function*() {
320
+ * const router = yield* HttpLayerRouter.HttpRouter
321
+ * yield* router.add(
322
+ * "GET",
323
+ * "/hello",
324
+ * Effect.gen(function*() {
325
+ * // Requests can now access the current session
326
+ * const session = yield* CurrentSession
327
+ * return HttpServerResponse.text(`Hello, World! Your token is ${session.token}`)
328
+ * })
329
+ * )
330
+ * }).pipe(
331
+ * Layer.effectDiscard,
332
+ * // Provide the SessionMiddleware & CorsMiddleware to some routes
333
+ * Layer.provide([SessionMiddleware, CorsMiddleware])
334
+ * )
335
+ * ```
336
+ *
337
+ * @since 1.0.0
338
+ * @category Middleware
339
+ */
340
+ export declare const middleware: middleware.Make<never, never> & (<Config extends {
341
+ provides?: any;
342
+ handles?: any;
343
+ } = {}>() => middleware.Make<Config extends {
344
+ provides: infer R;
345
+ } ? R : never, Config extends {
346
+ handles: infer E;
347
+ } ? E : never>);
348
+ /**
349
+ * @since 1.0.0
350
+ * @category Middleware
351
+ */
352
+ export declare namespace middleware {
353
+ /**
354
+ * @since 1.0.0
355
+ * @category Middleware
356
+ */
357
+ type Make<Provides = never, Handles = never> = {
358
+ <E, R, EX, RX>(middleware: Effect.Effect<(effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Handles, Provides>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>, EX, RX>): Middleware<{
359
+ provides: Provides;
360
+ handles: Handles;
361
+ error: E;
362
+ requires: Exclude<R, Provided>;
363
+ layerError: EX;
364
+ layerRequires: Exclude<RX, Scope.Scope>;
365
+ }>;
366
+ <E, R>(middleware: (effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Handles, Provides>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>): Middleware<{
367
+ provides: Provides;
368
+ handles: Handles;
369
+ error: E;
370
+ requires: Exclude<R, Provided>;
371
+ layerError: never;
372
+ layerRequires: never;
373
+ }>;
374
+ };
375
+ /**
376
+ * @since 1.0.0
377
+ * @category Middleware
378
+ */
379
+ type Fn = (effect: Effect.Effect<HttpServerResponse.HttpServerResponse>) => Effect.Effect<HttpServerResponse.HttpServerResponse>;
380
+ }
381
+ /**
382
+ * A middleware that applies CORS headers to the HTTP response.
383
+ *
384
+ * @since 1.0.0
385
+ * @category Middleware
386
+ */
387
+ export declare const cors: (options?: {
388
+ readonly allowedOrigins?: ReadonlyArray<string> | undefined;
389
+ readonly allowedMethods?: ReadonlyArray<string> | undefined;
390
+ readonly allowedHeaders?: ReadonlyArray<string> | undefined;
391
+ readonly exposedHeaders?: ReadonlyArray<string> | undefined;
392
+ readonly maxAge?: number | undefined;
393
+ readonly credentials?: boolean | undefined;
394
+ } | undefined) => Layer.Layer<never>;
395
+ /**
396
+ * ```ts
397
+ * import * as NodeHttpServer from "@effect/platform-node/NodeHttpServer"
398
+ * import * as NodeRuntime from "@effect/platform-node/NodeRuntime"
399
+ * import * as HttpApi from "@effect/platform/HttpApi"
400
+ * import * as HttpApiBuilder from "@effect/platform/HttpApiBuilder"
401
+ * import * as HttpApiEndpoint from "@effect/platform/HttpApiEndpoint"
402
+ * import * as HttpApiGroup from "@effect/platform/HttpApiGroup"
403
+ * import * as HttpApiScalar from "@effect/platform/HttpApiScalar"
404
+ * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
405
+ * import * as HttpMiddleware from "@effect/platform/HttpMiddleware"
406
+ * import * as Effect from "effect/Effect"
407
+ * import * as Layer from "effect/Layer"
408
+ * import { createServer } from "http"
409
+ *
410
+ * // First, we define our HttpApi
411
+ * class MyApi extends HttpApi.make("api").add(
412
+ * HttpApiGroup.make("users").add(
413
+ * HttpApiEndpoint.get("me", "/me")
414
+ * ).prefix("/users")
415
+ * ) {}
416
+ *
417
+ * // Implement the handlers for the API
418
+ * const UsersApiLayer = HttpApiBuilder.group(MyApi, "users", (handers) => handers.handle("me", () => Effect.void))
419
+ *
420
+ * // Use `HttpLayerRouter.addHttpApi` to register the API with the router
421
+ * const HttpApiRoutes = HttpLayerRouter.addHttpApi(MyApi, {
422
+ * openapiPath: "/docs/openapi.json"
423
+ * }).pipe(
424
+ * // Provide the api handlers layer
425
+ * Layer.provide(UsersApiLayer)
426
+ * )
427
+ *
428
+ * // Create a /docs route for the API documentation
429
+ * const DocsRoute = HttpApiScalar.layerHttpLayerRouter({
430
+ * api: MyApi,
431
+ * path: "/docs"
432
+ * })
433
+ *
434
+ * const CorsMiddleware = HttpLayerRouter.middleware(HttpMiddleware.cors())
435
+ * // You can also use HttpLayerRouter.cors() to create a CORS middleware
436
+ *
437
+ * // Finally, we merge all routes and serve them using the Node HTTP server
438
+ * const AllRoutes = Layer.mergeAll(
439
+ * HttpApiRoutes,
440
+ * DocsRoute
441
+ * ).pipe(
442
+ * Layer.provide(CorsMiddleware.layer)
443
+ * )
444
+ *
445
+ * HttpLayerRouter.serve(AllRoutes).pipe(
446
+ * Layer.provide(NodeHttpServer.layer(createServer, { port: 3000 })),
447
+ * Layer.launch,
448
+ * NodeRuntime.runMain
449
+ * )
450
+ * ```
451
+ *
452
+ * @since 1.0.0
453
+ * @category HttpApi
454
+ */
455
+ export declare const addHttpApi: <Id extends string, Groups extends HttpApiGroup.HttpApiGroup.Any, E, R>(api: HttpApi.HttpApi<Id, Groups, E, R>, options?: {
456
+ readonly openapiPath?: `/${string}` | undefined;
457
+ }) => Layer.Layer<HttpApi.Api, never, HttpRouter | HttpApiGroup.HttpApiGroup.ToService<Id, Groups> | R | HttpApiGroup.HttpApiGroup.ErrorContext<Groups>>;
458
+ /**
459
+ * Serves the provided application layer as an HTTP server.
460
+ *
461
+ * @since 1.0.0
462
+ * @category Server
463
+ */
464
+ export declare const serve: <A, E, R, HE, HR = Type.Only<"Requires", R>>(appLayer: Layer.Layer<A, E, R>, options?: {
465
+ readonly routerConfig?: Partial<FindMyWay.RouterConfig> | undefined;
466
+ readonly disableLogger?: boolean | undefined;
467
+ readonly disableListenLog?: boolean;
468
+ /**
469
+ * Middleware to apply to the HTTP server.
470
+ *
471
+ * NOTE: This middleware is applied to the entire HTTP server chain,
472
+ * including the sending of the response. This means that modifications
473
+ * to the response **WILL NOT** be reflected in the final response sent to the
474
+ * client.
475
+ *
476
+ * Use HttpLayerRouter.middleware to create middleware that can modify the
477
+ * response.
478
+ */
479
+ readonly middleware?: (effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Type.Only<"Error", R> | HttpServerError.RouteNotFound, Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, HE, HR>;
480
+ }) => Layer.Layer<never, E, HttpServer.HttpServer | Exclude<Type.Without<R> | Exclude<HR, Provided>, HttpRouter>>;
481
+ //# sourceMappingURL=HttpLayerRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpLayerRouter.d.ts","sourceRoot":"","sources":["../../src/HttpLayerRouter.ts"],"names":[],"mappings":"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"}
@@ -110,6 +110,10 @@ export * as HttpClientResponse from "./HttpClientResponse.js";
110
110
  * @since 1.0.0
111
111
  */
112
112
  export * as HttpIncomingMessage from "./HttpIncomingMessage.js";
113
+ /**
114
+ * @since 1.0.0
115
+ */
116
+ export * as HttpLayerRouter from "./HttpLayerRouter.js";
113
117
  /**
114
118
  * @since 1.0.0
115
119
  * @category models
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"httpRouter.d.ts","sourceRoot":"","sources":["../../../src/internal/httpRouter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAiBzC,OAAO,KAAK,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAsqB/C,eAAO,MAAM,cAAc,IACxB,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OACzB,CAAC,WACG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAC5B,CAAC,CAAC,EAAE,CAAC,EACR,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAC1B,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAC/D,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAC9B,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,OACxB,CAAC,WACG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAK+C,CAAA"}
1
+ {"version":3,"file":"httpRouter.d.ts","sourceRoot":"","sources":["../../../src/internal/httpRouter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAiBzC,OAAO,KAAK,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAyqB/C,eAAO,MAAM,cAAc,IACxB,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OACzB,CAAC,WACG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAC5B,CAAC,CAAC,EAAE,CAAC,EACR,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAC1B,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAC/D,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAC9B,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,OACxB,CAAC,WACG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAK+C,CAAA"}
@@ -81,6 +81,20 @@ export const httpApp = /*#__PURE__*/Effect.gen(function* () {
81
81
  onSuccess: Effect.succeed
82
82
  })));
83
83
  });
84
+ /**
85
+ * @since 1.0.0
86
+ * @category constructors
87
+ */
88
+ export const buildMiddleware = /*#__PURE__*/Effect.fnUntraced(function* (api) {
89
+ const context = yield* Effect.context();
90
+ const middlewareMap = makeMiddlewareMap(api.middlewares, context);
91
+ const errorSchema = makeErrorSchema(api);
92
+ const encodeError = Schema.encodeUnknown(errorSchema);
93
+ return effect => Effect.catchAllCause(applyMiddleware(middlewareMap, effect), cause => Effect.matchEffect(Effect.provide(encodeError(Cause.squash(cause)), context), {
94
+ onFailure: () => Effect.failCause(cause),
95
+ onSuccess: Effect.succeed
96
+ }));
97
+ });
84
98
  /**
85
99
  * Construct an http web handler from an `HttpApi` instance.
86
100
  *