@effect/platform 0.87.7 → 0.87.9

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 CHANGED
@@ -4918,8 +4918,11 @@ const SessionMiddleware = HttpLayerRouter.middleware<{
4918
4918
  })
4919
4919
  )
4920
4920
 
4921
- // And here is a CORS middleware that modifies the HTTP response
4922
- const CorsMiddleware = HttpLayerRouter.middleware(HttpMiddleware.cors())
4921
+ // And here is an example of global middleware, that modifies the HTTP response.
4922
+ // Global middleware directly returns a `Layer`.
4923
+ const CorsMiddleware = HttpLayerRouter.middleware(HttpMiddleware.cors(), {
4924
+ global: true
4925
+ })
4923
4926
  // You can also use `HttpLayerRouter.cors()` to create a CORS middleware
4924
4927
 
4925
4928
  const HelloRoute = HttpLayerRouter.add(
@@ -4936,7 +4939,7 @@ const HelloRoute = HttpLayerRouter.add(
4936
4939
  // We can provide the `SessionMiddleware.layer` to the `HelloRoute` layer
4937
4940
  Layer.provide(SessionMiddleware.layer),
4938
4941
  // And we can also provide the `CorsMiddleware` layer to handle CORS
4939
- Layer.provide(CorsMiddleware.layer)
4942
+ Layer.provide(CorsMiddleware)
4940
4943
  )
4941
4944
  ```
4942
4945
 
@@ -5095,3 +5098,36 @@ HttpLayerRouter.serve(RpcRoute).pipe(
5095
5098
  NodeRuntime.runMain
5096
5099
  )
5097
5100
  ```
5101
+
5102
+ ## Create a web handler
5103
+
5104
+ ```ts
5105
+ import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
5106
+ import * as HttpServerResponse from "@effect/platform/HttpServerResponse"
5107
+ import * as Effect from "effect/Effect"
5108
+
5109
+ const HelloRoute = HttpLayerRouter.use(
5110
+ Effect.fn(function*(router) {
5111
+ yield* router.add(
5112
+ "GET",
5113
+ "/hello",
5114
+ HttpServerResponse.text("Hellow, World!")
5115
+ )
5116
+ })
5117
+ )
5118
+
5119
+ const { dispose, handler } = HttpLayerRouter.toWebHandler(HelloRoute)
5120
+
5121
+ // When the process is interrupted, we want to clean up resources
5122
+ process.on("SIGINT", () => {
5123
+ dispose()
5124
+ .then(() => {
5125
+ process.exit(0)
5126
+ }, () => {
5127
+ process.exit(1)
5128
+ })
5129
+ })
5130
+
5131
+ // Use the handler in your server setup
5132
+ export { handler }
5133
+ ```
@@ -42,7 +42,7 @@ Object.defineProperty(exports, "schemaPathParams", {
42
42
  return _HttpRouter.schemaPathParams;
43
43
  }
44
44
  });
45
- exports.use = exports.toHttpEffect = exports.serve = void 0;
45
+ exports.use = exports.toWebHandler = exports.toHttpEffect = exports.serve = void 0;
46
46
  var HttpServerRequest = _interopRequireWildcard(require("@effect/platform/HttpServerRequest"));
47
47
  var HttpServerResponse = _interopRequireWildcard(require("@effect/platform/HttpServerResponse"));
48
48
  var Arr = _interopRequireWildcard(require("effect/Array"));
@@ -51,6 +51,7 @@ var Effect = _interopRequireWildcard(require("effect/Effect"));
51
51
  var FiberRef = _interopRequireWildcard(require("effect/FiberRef"));
52
52
  var _Function = require("effect/Function");
53
53
  var Layer = _interopRequireWildcard(require("effect/Layer"));
54
+ var ManagedRuntime = _interopRequireWildcard(require("effect/ManagedRuntime"));
54
55
  var Option = _interopRequireWildcard(require("effect/Option"));
55
56
  var Scope = _interopRequireWildcard(require("effect/Scope"));
56
57
  var Tracer = _interopRequireWildcard(require("effect/Tracer"));
@@ -58,6 +59,7 @@ var FindMyWay = _interopRequireWildcard(require("find-my-way-ts"));
58
59
  var _FindMyWay = FindMyWay;
59
60
  exports.FindMyWay = FindMyWay;
60
61
  var HttpApiBuilder = _interopRequireWildcard(require("./HttpApiBuilder.js"));
62
+ var HttpApp = _interopRequireWildcard(require("./HttpApp.js"));
61
63
  var HttpMiddleware = _interopRequireWildcard(require("./HttpMiddleware.js"));
62
64
  var _HttpRouter = require("./HttpRouter.js");
63
65
  var HttpServer = _interopRequireWildcard(require("./HttpServer.js"));
@@ -89,6 +91,7 @@ const HttpRouter = exports.HttpRouter = /*#__PURE__*/Context.GenericTag("@effect
89
91
  */
90
92
  const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
91
93
  const router = FindMyWay.make(yield* RouterConfig);
94
+ const middleware = new Set();
92
95
  const addAll = routes => Effect.contextWith(context => {
93
96
  const middleware = getMiddleware(context);
94
97
  const applyMiddleware = effect => {
@@ -113,8 +116,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
113
116
  [TypeId]: TypeId,
114
117
  prefixed(prefix) {
115
118
  return HttpRouter.of({
116
- [TypeId]: TypeId,
117
- asHttpEffect: this.asHttpEffect,
119
+ ...this,
118
120
  prefixed: newPrefix => this.prefixed(prefixPath(prefix, newPrefix)),
119
121
  addAll: routes => addAll(routes.map(prefixRoute(prefix))),
120
122
  add: (method, path, handler, options) => addAll([makeRoute({
@@ -128,8 +130,11 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
128
130
  },
129
131
  addAll,
130
132
  add: (method, path, handler, options) => addAll([route(method, path, handler, options)]),
133
+ addGlobalMiddleware: middleware_ => Effect.sync(() => {
134
+ middleware.add(middleware_);
135
+ }),
131
136
  asHttpEffect() {
132
- return Effect.withFiberRuntime(fiber => {
137
+ let handler = Effect.withFiberRuntime(fiber => {
133
138
  const contextMap = new Map(fiber.currentContext.unsafeMap);
134
139
  const request = contextMap.get(HttpServerRequest.HttpServerRequest.key);
135
140
  let result = router.find(request.method, request.url);
@@ -157,6 +162,11 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
157
162
  }
158
163
  return Effect.locally(route.uninterruptible ? route.handler : Effect.interruptible(route.handler), FiberRef.currentContext, Context.unsafeMake(contextMap));
159
164
  });
165
+ if (middleware.size === 0) return handler;
166
+ for (const fn of Arr.reverse(middleware)) {
167
+ handler = fn(handler);
168
+ }
169
+ return handler;
160
170
  }
161
171
  });
162
172
  });
@@ -302,6 +312,11 @@ const MiddlewareTypeId = exports.MiddlewareTypeId = /*#__PURE__*/Symbol.for("@ef
302
312
  /**
303
313
  * Create a middleware layer that can be used to modify requests and responses.
304
314
  *
315
+ * By default, the middleware only affects the routes that it is provided to.
316
+ *
317
+ * If you want to create a middleware that applies globally to all routes, pass
318
+ * the `global` option as `true`.
319
+ *
305
320
  * ```ts
306
321
  * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
307
322
  * import * as HttpMiddleware from "@effect/platform/HttpMiddleware"
@@ -357,10 +372,14 @@ const middleware = function () {
357
372
  if (arguments.length === 0) {
358
373
  return makeMiddleware;
359
374
  }
360
- return makeMiddleware(arguments[0]);
375
+ return makeMiddleware(arguments[0], arguments[1]);
361
376
  };
362
377
  exports.middleware = middleware;
363
- const makeMiddleware = middleware => new MiddlewareImpl(Effect.isEffect(middleware) ? Layer.scopedContext(Effect.map(middleware, fn => Context.unsafeMake(new Map([[fnContextKey, fn]])))) : Layer.succeedContext(Context.unsafeMake(new Map([[fnContextKey, middleware]]))));
378
+ const makeMiddleware = (middleware, options) => options?.global ? Layer.scopedDiscard(Effect.gen(function* () {
379
+ const router = yield* HttpRouter;
380
+ const fn = Effect.isEffect(middleware) ? yield* middleware : middleware;
381
+ yield* router.addGlobalMiddleware(fn);
382
+ })) : new MiddlewareImpl(Effect.isEffect(middleware) ? Layer.scopedContext(Effect.map(middleware, fn => Context.unsafeMake(new Map([[fnContextKey, fn]])))) : Layer.succeedContext(Context.unsafeMake(new Map([[fnContextKey, middleware]]))));
364
383
  let middlewareId = 0;
365
384
  const fnContextKey = "@effect/platform/HttpLayerRouter/MiddlewareFn";
366
385
  class MiddlewareImpl {
@@ -425,7 +444,9 @@ const getMiddleware = context => {
425
444
  * @since 1.0.0
426
445
  * @category Middleware
427
446
  */
428
- const cors = options => middleware(HttpMiddleware.cors(options)).layer;
447
+ const cors = options => middleware(HttpMiddleware.cors(options), {
448
+ global: true
449
+ });
429
450
  /**
430
451
  * A middleware that disables the logger for some routes.
431
452
  *
@@ -509,9 +530,13 @@ const addHttpApi = (api, options) => {
509
530
  const ApiMiddleware = middleware(HttpApiBuilder.buildMiddleware(api)).layer;
510
531
  return HttpApiBuilder.Router.unwrap(Effect.fnUntraced(function* (router_) {
511
532
  const router = yield* HttpRouter;
533
+ const context = yield* Effect.context();
512
534
  const routes = Arr.empty();
513
535
  for (const route of router_.routes) {
514
- routes.push(makeRoute(route));
536
+ routes.push(makeRoute({
537
+ ...route,
538
+ handler: Effect.provide(route.handler, context)
539
+ }));
515
540
  }
516
541
  yield* router.addAll(routes);
517
542
  if (options?.openapiPath) {
@@ -539,5 +564,37 @@ const serve = (appLayer, options) => {
539
564
  return middleware ? HttpServer.serve(handler, middleware) : HttpServer.serve(handler);
540
565
  }).pipe(Layer.unwrapScoped, Layer.provide(appLayer), Layer.provide(RouterLayer), options?.disableListenLog ? _Function.identity : HttpServer.withLogAddress);
541
566
  };
567
+ /**
568
+ * @since 1.0.0
569
+ * @category Server
570
+ */
542
571
  exports.serve = serve;
572
+ const toWebHandler = (appLayer, options) => {
573
+ let middleware = options?.middleware;
574
+ if (options?.disableLogger !== true) {
575
+ middleware = middleware ? (0, _Function.compose)(middleware, HttpMiddleware.logger) : HttpMiddleware.logger;
576
+ }
577
+ const RouterLayer = options?.routerConfig ? Layer.provide(layer, Layer.succeed(RouterConfig, options.routerConfig)) : layer;
578
+ const runtime = ManagedRuntime.make(Layer.provideMerge(appLayer, RouterLayer), options?.memoMap);
579
+ let handlerCached;
580
+ const handlerPromise = Effect.gen(function* () {
581
+ const router = yield* HttpRouter;
582
+ const effect = router.asHttpEffect();
583
+ const rt = yield* runtime.runtimeEffect;
584
+ const handler = HttpApp.toWebHandlerRuntime(rt)(effect, middleware);
585
+ handlerCached = handler;
586
+ return handler;
587
+ }).pipe(runtime.runPromise);
588
+ function handler(request, context) {
589
+ if (handlerCached !== undefined) {
590
+ return handlerCached(request, context);
591
+ }
592
+ return handlerPromise.then(handler => handler(request, context));
593
+ }
594
+ return {
595
+ handler,
596
+ dispose: runtime.dispose
597
+ };
598
+ };
599
+ exports.toWebHandler = toWebHandler;
543
600
  //# sourceMappingURL=HttpLayerRouter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpLayerRouter.js","names":["HttpServerRequest","_interopRequireWildcard","require","HttpServerResponse","Arr","Context","Effect","FiberRef","_Function","Layer","Option","Scope","Tracer","FindMyWay","_FindMyWay","exports","HttpApiBuilder","HttpMiddleware","_HttpRouter","HttpServer","HttpServerError","OpenApi","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TypeId","Symbol","for","HttpRouter","GenericTag","make","gen","router","RouterConfig","addAll","routes","contextWith","context","middleware","getMiddleware","applyMiddleware","effect","length","route","makeRoute","handler","method","all","path","on","of","prefixed","prefix","asHttpEffect","newPrefix","prefixPath","map","prefixRoute","add","options","isEffect","flatMap","uninterruptible","some","withFiberRuntime","fiber","contextMap","Map","currentContext","unsafeMap","request","key","result","find","url","undefined","fail","RouteNotFound","_tag","sliceRequestUrl","value","ParsedSearchParams","searchParams","RouteContext","RouteContextTypeId","params","span","ParentSpan","attribute","locally","interruptible","unsafeMake","prefexLen","modify","slice","Reference","defaultValue","constant","use","scopedDiscard","toAdd","layer","toHttpEffect","appLayer","scope","memoMap","CurrentMemoMap","buildWithMemoMap","provideMerge","RouteTypeId","none","removeTrailingSlash","endsWith","dual","self","match","onNone","onSome","existingPrefix","MiddlewareTypeId","arguments","makeMiddleware","MiddlewareImpl","scopedContext","fn","fnContextKey","succeedContext","middlewareId","layerFn","dependencies","constructor","contextKey","stack","depsContext","push","pipe","provide","combine","other","middlewareCache","arr","topLevel","empty","maxLength","startsWith","Set","fromIterable","reverse","cors","disableLogger","withLoggerDisabled","addHttpApi","api","ApiMiddleware","buildMiddleware","Router","unwrap","fnUntraced","router_","openapiPath","spec","fromApi","succeed","unsafeJson","effectDiscard","serve","compose","logger","RouterLayer","routerConfig","unwrapScoped","disableListenLog","identity","withLogAddress"],"sources":["../../src/HttpLayerRouter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"HttpLayerRouter.js","names":["HttpServerRequest","_interopRequireWildcard","require","HttpServerResponse","Arr","Context","Effect","FiberRef","_Function","Layer","ManagedRuntime","Option","Scope","Tracer","FindMyWay","_FindMyWay","exports","HttpApiBuilder","HttpApp","HttpMiddleware","_HttpRouter","HttpServer","HttpServerError","OpenApi","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TypeId","Symbol","for","HttpRouter","GenericTag","make","gen","router","RouterConfig","middleware","Set","addAll","routes","contextWith","context","getMiddleware","applyMiddleware","effect","length","route","makeRoute","handler","method","all","path","on","of","prefixed","prefix","newPrefix","prefixPath","map","prefixRoute","add","options","isEffect","flatMap","uninterruptible","some","addGlobalMiddleware","middleware_","sync","asHttpEffect","withFiberRuntime","fiber","contextMap","Map","currentContext","unsafeMap","request","key","result","find","url","undefined","fail","RouteNotFound","_tag","sliceRequestUrl","value","ParsedSearchParams","searchParams","RouteContext","RouteContextTypeId","params","span","ParentSpan","attribute","locally","interruptible","unsafeMake","size","fn","reverse","prefexLen","modify","slice","Reference","defaultValue","constant","use","scopedDiscard","toAdd","layer","toHttpEffect","appLayer","scope","memoMap","CurrentMemoMap","buildWithMemoMap","provideMerge","RouteTypeId","none","removeTrailingSlash","endsWith","dual","self","match","onNone","onSome","existingPrefix","MiddlewareTypeId","arguments","makeMiddleware","global","MiddlewareImpl","scopedContext","fnContextKey","succeedContext","middlewareId","layerFn","dependencies","constructor","contextKey","stack","depsContext","push","pipe","provide","combine","other","middlewareCache","arr","topLevel","empty","maxLength","startsWith","fromIterable","cors","disableLogger","withLoggerDisabled","addHttpApi","api","ApiMiddleware","buildMiddleware","Router","unwrap","fnUntraced","router_","openapiPath","spec","fromApi","succeed","unsafeJson","effectDiscard","serve","compose","logger","RouterLayer","routerConfig","unwrapScoped","disableListenLog","identity","withLogAddress","toWebHandler","runtime","handlerCached","handlerPromise","rt","runtimeEffect","toWebHandlerRuntime","runPromise","then","dispose"],"sources":["../../src/HttpLayerRouter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -10,12 +10,16 @@ import * as Option from "effect/Option";
10
10
  import * as Scope from "effect/Scope";
11
11
  import type * as Types from "effect/Types";
12
12
  import * as FindMyWay from "find-my-way-ts";
13
+ import type * as Etag from "./Etag.js";
14
+ import type { FileSystem } from "./FileSystem.js";
13
15
  import type * as HttpApi from "./HttpApi.js";
14
16
  import type * as HttpApiGroup from "./HttpApiGroup.js";
15
17
  import type * as HttpMethod from "./HttpMethod.js";
18
+ import type { HttpPlatform } from "./HttpPlatform.js";
16
19
  import { RouteContext } from "./HttpRouter.js";
17
20
  import * as HttpServer from "./HttpServer.js";
18
21
  import * as HttpServerError from "./HttpServerError.js";
22
+ import type { Path } from "./Path.js";
19
23
  /**
20
24
  * @since 1.0.0
21
25
  * @category Re-exports
@@ -42,6 +46,7 @@ export interface HttpRouter {
42
46
  readonly uninterruptible?: boolean | undefined;
43
47
  } | undefined) => Effect.Effect<void, never, Type.From<"Requires", Exclude<R, Provided>> | Type.From<"Error", E>>;
44
48
  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]>>>;
49
+ readonly addGlobalMiddleware: <E, R>(middleware: ((effect: Effect.Effect<HttpServerResponse.HttpServerResponse, unhandled>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>) & (unhandled extends E ? unknown : "You cannot handle any errors")) => Effect.Effect<void, never, Type.From<"GlobalRequires", Exclude<R, GlobalProvided>> | Type.From<"GlobalError", Exclude<E, unhandled>>>;
45
50
  readonly asHttpEffect: () => Effect.Effect<HttpServerResponse.HttpServerResponse, unknown, HttpServerRequest.HttpServerRequest | Scope.Scope>;
46
51
  }
47
52
  /**
@@ -154,7 +159,7 @@ export declare const layer: Layer.Layer<HttpRouter>;
154
159
  * @since 1.0.0
155
160
  * @category HttpRouter
156
161
  */
157
- 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>>, Type.Without<E>, Exclude<Type.Without<R>, HttpRouter> | Scope.Scope>;
162
+ export declare const toHttpEffect: <A, E, R>(appLayer: Layer.Layer<A, E, R>) => Effect.Effect<Effect.Effect<HttpServerResponse.HttpServerResponse, Type.Only<"Error", R> | Type.Only<"GlobalRequires", R> | HttpServerError.RouteNotFound, Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>>, Type.Without<E>, Exclude<Type.Without<R>, HttpRouter> | Scope.Scope>;
158
163
  /**
159
164
  * @since 1.0.0
160
165
  * @category Route
@@ -278,6 +283,13 @@ export declare namespace Type {
278
283
  * @category Request types
279
284
  */
280
285
  export type Provided = HttpServerRequest.HttpServerRequest | Scope.Scope | HttpServerRequest.ParsedSearchParams | RouteContext;
286
+ /**
287
+ * Services provided to global middleware.
288
+ *
289
+ * @since 1.0.0
290
+ * @category Request types
291
+ */
292
+ export type GlobalProvided = HttpServerRequest.HttpServerRequest | Scope.Scope;
281
293
  /**
282
294
  * @since 1.0.0
283
295
  * @category Middleware
@@ -311,7 +323,7 @@ export interface Middleware<Config extends {
311
323
  layerRequires: any;
312
324
  }> {
313
325
  readonly [MiddlewareTypeId]: Config;
314
- readonly layer: [Config["requires"]] extends [never] ? Layer.Layer<Type.From<"Requires", Config["provides"]>, Config["layerError"], Config["layerRequires"] | Type.From<"Requires", Config["requires"]>> : "Need to .combine(middleware) that satisfy the missing request dependencies";
326
+ readonly layer: [Config["requires"]] extends [never] ? Layer.Layer<Type.From<"Requires", Config["provides"]>, Config["layerError"], Config["layerRequires"] | Type.From<"Requires", Config["requires"]> | Type.From<"Error", Config["error"]>> : "Need to .combine(middleware) that satisfy the missing request dependencies";
315
327
  readonly combine: <Config2 extends {
316
328
  provides: any;
317
329
  handles: any;
@@ -331,6 +343,11 @@ export interface Middleware<Config extends {
331
343
  /**
332
344
  * Create a middleware layer that can be used to modify requests and responses.
333
345
  *
346
+ * By default, the middleware only affects the routes that it is provided to.
347
+ *
348
+ * If you want to create a middleware that applies globally to all routes, pass
349
+ * the `global` option as `true`.
350
+ *
334
351
  * ```ts
335
352
  * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
336
353
  * import * as HttpMiddleware from "@effect/platform/HttpMiddleware"
@@ -400,7 +417,9 @@ export declare namespace middleware {
400
417
  * @category Middleware
401
418
  */
402
419
  type Make<Provides = never, Handles = never> = {
403
- <E, R, EX, RX>(middleware: Effect.Effect<(effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Types.NoInfer<Handles | unhandled>, Types.NoInfer<Provides>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R> & (unhandled extends E ? unknown : "You must only handle the configured errors"), EX, RX>): Middleware<{
420
+ <E, R, EX, RX, const Global extends boolean = false>(middleware: Effect.Effect<(effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Types.NoInfer<Handles | unhandled>, Types.NoInfer<Provides>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R> & (unhandled extends E ? unknown : "You must only handle the configured errors"), EX, RX>, options?: {
421
+ readonly global?: Global | undefined;
422
+ }): Global extends true ? Layer.Layer<Type.From<"Requires", Provides> | Type.From<"Error", Handles> | Type.From<"GlobalRequires", Provides> | Type.From<"GlobalError", Handles>, EX, HttpRouter | Exclude<RX, Scope.Scope> | Type.From<"GlobalRequires", Exclude<R, GlobalProvided>> | Type.From<"GlobalError", Exclude<E, unhandled>>> : Middleware<{
404
423
  provides: Provides;
405
424
  handles: Handles;
406
425
  error: Exclude<E, unhandled>;
@@ -408,7 +427,9 @@ export declare namespace middleware {
408
427
  layerError: EX;
409
428
  layerRequires: Exclude<RX, Scope.Scope>;
410
429
  }>;
411
- <E, R>(middleware: ((effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Types.NoInfer<Handles | unhandled>, Types.NoInfer<Provides>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>) & (unhandled extends E ? unknown : "You must only handle the configured errors")): Middleware<{
430
+ <E, R, const Global extends boolean = false>(middleware: ((effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Types.NoInfer<Handles | unhandled>, Types.NoInfer<Provides>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>) & (unhandled extends E ? unknown : "You must only handle the configured errors"), options?: {
431
+ readonly global?: Global | undefined;
432
+ }): Global extends true ? Layer.Layer<Type.From<"Requires", Provides> | Type.From<"Error", Handles> | Type.From<"GlobalRequires", Provides> | Type.From<"GlobalError", Handles>, never, HttpRouter | Type.From<"GlobalRequires", Exclude<R, GlobalProvided>> | Type.From<"GlobalError", Exclude<E, unhandled>>> : Middleware<{
412
433
  provides: Provides;
413
434
  handles: Handles;
414
435
  error: Exclude<E, unhandled>;
@@ -436,7 +457,7 @@ export declare const cors: (options?: {
436
457
  readonly exposedHeaders?: ReadonlyArray<string> | undefined;
437
458
  readonly maxAge?: number | undefined;
438
459
  readonly credentials?: boolean | undefined;
439
- } | undefined) => Layer.Layer<never>;
460
+ } | undefined) => Layer.Layer<never, never, HttpRouter>;
440
461
  /**
441
462
  * A middleware that disables the logger for some routes.
442
463
  *
@@ -517,14 +538,14 @@ export declare const disableLogger: Layer.Layer<never>;
517
538
  */
518
539
  export declare const addHttpApi: <Id extends string, Groups extends HttpApiGroup.HttpApiGroup.Any, E, R>(api: HttpApi.HttpApi<Id, Groups, E, R>, options?: {
519
540
  readonly openapiPath?: `/${string}` | undefined;
520
- }) => Layer.Layer<never, never, HttpRouter | HttpApiGroup.HttpApiGroup.ToService<Id, Groups> | R | HttpApiGroup.HttpApiGroup.ErrorContext<Groups>>;
541
+ }) => Layer.Layer<never, never, Etag.Generator | HttpRouter | FileSystem | HttpPlatform | Path | R | HttpApiGroup.HttpApiGroup.ToService<Id, Groups> | HttpApiGroup.HttpApiGroup.ErrorContext<Groups>>;
521
542
  /**
522
543
  * Serves the provided application layer as an HTTP server.
523
544
  *
524
545
  * @since 1.0.0
525
546
  * @category Server
526
547
  */
527
- export declare const serve: <A, E, R, HE, HR = Type.Only<"Requires", R>>(appLayer: Layer.Layer<A, E, R>, options?: {
548
+ export declare const serve: <A, E, R, HE, HR = Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>>(appLayer: Layer.Layer<A, E, R>, options?: {
528
549
  readonly routerConfig?: Partial<FindMyWay.RouterConfig> | undefined;
529
550
  readonly disableLogger?: boolean | undefined;
530
551
  readonly disableListenLog?: boolean;
@@ -539,6 +560,30 @@ export declare const serve: <A, E, R, HE, HR = Type.Only<"Requires", R>>(appLaye
539
560
  * Use HttpLayerRouter.middleware to create middleware that can modify the
540
561
  * response.
541
562
  */
542
- 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>;
543
- }) => Layer.Layer<never, Type.Without<E>, HttpServer.HttpServer | Exclude<Type.Without<R> | Exclude<HR, Provided>, HttpRouter>>;
563
+ readonly middleware?: (effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Type.Only<"Error", R> | Type.Only<"GlobalError", R> | HttpServerError.RouteNotFound, Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, HE, HR>;
564
+ }) => Layer.Layer<never, Type.Without<E>, HttpServer.HttpServer | Exclude<Type.Without<R> | Exclude<HR, GlobalProvided>, HttpRouter>>;
565
+ /**
566
+ * @since 1.0.0
567
+ * @category Server
568
+ */
569
+ export declare const toWebHandler: <A, E, R extends HttpRouter | Type<"Requires", any> | Type<"GlobalRequires", any> | Type<"Error", any> | Type<"GlobalError", any>, HE, HR = Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>>(appLayer: Layer.Layer<A, E, R>, options?: {
570
+ readonly memoMap?: Layer.MemoMap | undefined;
571
+ readonly routerConfig?: Partial<FindMyWay.RouterConfig> | undefined;
572
+ readonly disableLogger?: boolean | undefined;
573
+ /**
574
+ * Middleware to apply to the HTTP server.
575
+ *
576
+ * NOTE: This middleware is applied to the entire HTTP server chain,
577
+ * including the sending of the response. This means that modifications
578
+ * to the response **WILL NOT** be reflected in the final response sent to the
579
+ * client.
580
+ *
581
+ * Use HttpLayerRouter.middleware to create middleware that can modify the
582
+ * response.
583
+ */
584
+ readonly middleware?: (effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Type.Only<"Error", R> | Type.Only<"GlobalError", R> | HttpServerError.RouteNotFound, Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, HE, HR>;
585
+ }) => {
586
+ readonly handler: [HR] extends [never] ? ((request: Request, context?: Context.Context<never> | undefined) => Promise<Response>) : ((request: Request, context: Context.Context<HR>) => Promise<Response>);
587
+ readonly dispose: () => Promise<void>;
588
+ };
544
589
  //# sourceMappingURL=HttpLayerRouter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpLayerRouter.d.ts","sourceRoot":"","sources":["../../src/HttpLayerRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpLayerRouter.d.ts","sourceRoot":"","sources":["../../src/HttpLayerRouter.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,13 @@ import * as Effect from "effect/Effect";
9
9
  import * as FiberRef from "effect/FiberRef";
10
10
  import { compose, constant, dual, identity } from "effect/Function";
11
11
  import * as Layer from "effect/Layer";
12
+ import * as ManagedRuntime from "effect/ManagedRuntime";
12
13
  import * as Option from "effect/Option";
13
14
  import * as Scope from "effect/Scope";
14
15
  import * as Tracer from "effect/Tracer";
15
16
  import * as FindMyWay from "find-my-way-ts";
16
17
  import * as HttpApiBuilder from "./HttpApiBuilder.js";
18
+ import * as HttpApp from "./HttpApp.js";
17
19
  import * as HttpMiddleware from "./HttpMiddleware.js";
18
20
  import { RouteContext, RouteContextTypeId } from "./HttpRouter.js";
19
21
  import * as HttpServer from "./HttpServer.js";
@@ -40,6 +42,7 @@ export const HttpRouter = /*#__PURE__*/Context.GenericTag("@effect/platform/Http
40
42
  */
41
43
  export const make = /*#__PURE__*/Effect.gen(function* () {
42
44
  const router = FindMyWay.make(yield* RouterConfig);
45
+ const middleware = new Set();
43
46
  const addAll = routes => Effect.contextWith(context => {
44
47
  const middleware = getMiddleware(context);
45
48
  const applyMiddleware = effect => {
@@ -64,8 +67,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
64
67
  [TypeId]: TypeId,
65
68
  prefixed(prefix) {
66
69
  return HttpRouter.of({
67
- [TypeId]: TypeId,
68
- asHttpEffect: this.asHttpEffect,
70
+ ...this,
69
71
  prefixed: newPrefix => this.prefixed(prefixPath(prefix, newPrefix)),
70
72
  addAll: routes => addAll(routes.map(prefixRoute(prefix))),
71
73
  add: (method, path, handler, options) => addAll([makeRoute({
@@ -79,8 +81,11 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
79
81
  },
80
82
  addAll,
81
83
  add: (method, path, handler, options) => addAll([route(method, path, handler, options)]),
84
+ addGlobalMiddleware: middleware_ => Effect.sync(() => {
85
+ middleware.add(middleware_);
86
+ }),
82
87
  asHttpEffect() {
83
- return Effect.withFiberRuntime(fiber => {
88
+ let handler = Effect.withFiberRuntime(fiber => {
84
89
  const contextMap = new Map(fiber.currentContext.unsafeMap);
85
90
  const request = contextMap.get(HttpServerRequest.HttpServerRequest.key);
86
91
  let result = router.find(request.method, request.url);
@@ -108,6 +113,11 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
108
113
  }
109
114
  return Effect.locally(route.uninterruptible ? route.handler : Effect.interruptible(route.handler), FiberRef.currentContext, Context.unsafeMake(contextMap));
110
115
  });
116
+ if (middleware.size === 0) return handler;
117
+ for (const fn of Arr.reverse(middleware)) {
118
+ handler = fn(handler);
119
+ }
120
+ return handler;
111
121
  }
112
122
  });
113
123
  });
@@ -278,6 +288,11 @@ export const MiddlewareTypeId = /*#__PURE__*/Symbol.for("@effect/platform/HttpLa
278
288
  /**
279
289
  * Create a middleware layer that can be used to modify requests and responses.
280
290
  *
291
+ * By default, the middleware only affects the routes that it is provided to.
292
+ *
293
+ * If you want to create a middleware that applies globally to all routes, pass
294
+ * the `global` option as `true`.
295
+ *
281
296
  * ```ts
282
297
  * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
283
298
  * import * as HttpMiddleware from "@effect/platform/HttpMiddleware"
@@ -333,9 +348,13 @@ export const middleware = function () {
333
348
  if (arguments.length === 0) {
334
349
  return makeMiddleware;
335
350
  }
336
- return makeMiddleware(arguments[0]);
351
+ return makeMiddleware(arguments[0], arguments[1]);
337
352
  };
338
- const makeMiddleware = middleware => new MiddlewareImpl(Effect.isEffect(middleware) ? Layer.scopedContext(Effect.map(middleware, fn => Context.unsafeMake(new Map([[fnContextKey, fn]])))) : Layer.succeedContext(Context.unsafeMake(new Map([[fnContextKey, middleware]]))));
353
+ const makeMiddleware = (middleware, options) => options?.global ? Layer.scopedDiscard(Effect.gen(function* () {
354
+ const router = yield* HttpRouter;
355
+ const fn = Effect.isEffect(middleware) ? yield* middleware : middleware;
356
+ yield* router.addGlobalMiddleware(fn);
357
+ })) : new MiddlewareImpl(Effect.isEffect(middleware) ? Layer.scopedContext(Effect.map(middleware, fn => Context.unsafeMake(new Map([[fnContextKey, fn]])))) : Layer.succeedContext(Context.unsafeMake(new Map([[fnContextKey, middleware]]))));
339
358
  let middlewareId = 0;
340
359
  const fnContextKey = "@effect/platform/HttpLayerRouter/MiddlewareFn";
341
360
  class MiddlewareImpl {
@@ -400,7 +419,9 @@ const getMiddleware = context => {
400
419
  * @since 1.0.0
401
420
  * @category Middleware
402
421
  */
403
- export const cors = options => middleware(HttpMiddleware.cors(options)).layer;
422
+ export const cors = options => middleware(HttpMiddleware.cors(options), {
423
+ global: true
424
+ });
404
425
  /**
405
426
  * A middleware that disables the logger for some routes.
406
427
  *
@@ -483,9 +504,13 @@ export const addHttpApi = (api, options) => {
483
504
  const ApiMiddleware = middleware(HttpApiBuilder.buildMiddleware(api)).layer;
484
505
  return HttpApiBuilder.Router.unwrap(Effect.fnUntraced(function* (router_) {
485
506
  const router = yield* HttpRouter;
507
+ const context = yield* Effect.context();
486
508
  const routes = Arr.empty();
487
509
  for (const route of router_.routes) {
488
- routes.push(makeRoute(route));
510
+ routes.push(makeRoute({
511
+ ...route,
512
+ handler: Effect.provide(route.handler, context)
513
+ }));
489
514
  }
490
515
  yield* router.addAll(routes);
491
516
  if (options?.openapiPath) {
@@ -512,4 +537,35 @@ export const serve = (appLayer, options) => {
512
537
  return middleware ? HttpServer.serve(handler, middleware) : HttpServer.serve(handler);
513
538
  }).pipe(Layer.unwrapScoped, Layer.provide(appLayer), Layer.provide(RouterLayer), options?.disableListenLog ? identity : HttpServer.withLogAddress);
514
539
  };
540
+ /**
541
+ * @since 1.0.0
542
+ * @category Server
543
+ */
544
+ export const toWebHandler = (appLayer, options) => {
545
+ let middleware = options?.middleware;
546
+ if (options?.disableLogger !== true) {
547
+ middleware = middleware ? compose(middleware, HttpMiddleware.logger) : HttpMiddleware.logger;
548
+ }
549
+ const RouterLayer = options?.routerConfig ? Layer.provide(layer, Layer.succeed(RouterConfig, options.routerConfig)) : layer;
550
+ const runtime = ManagedRuntime.make(Layer.provideMerge(appLayer, RouterLayer), options?.memoMap);
551
+ let handlerCached;
552
+ const handlerPromise = Effect.gen(function* () {
553
+ const router = yield* HttpRouter;
554
+ const effect = router.asHttpEffect();
555
+ const rt = yield* runtime.runtimeEffect;
556
+ const handler = HttpApp.toWebHandlerRuntime(rt)(effect, middleware);
557
+ handlerCached = handler;
558
+ return handler;
559
+ }).pipe(runtime.runPromise);
560
+ function handler(request, context) {
561
+ if (handlerCached !== undefined) {
562
+ return handlerCached(request, context);
563
+ }
564
+ return handlerPromise.then(handler => handler(request, context));
565
+ }
566
+ return {
567
+ handler,
568
+ dispose: runtime.dispose
569
+ };
570
+ };
515
571
  //# sourceMappingURL=HttpLayerRouter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpLayerRouter.js","names":["HttpServerRequest","HttpServerResponse","Arr","Context","Effect","FiberRef","compose","constant","dual","identity","Layer","Option","Scope","Tracer","FindMyWay","HttpApiBuilder","HttpMiddleware","RouteContext","RouteContextTypeId","HttpServer","HttpServerError","OpenApi","TypeId","Symbol","for","HttpRouter","GenericTag","make","gen","router","RouterConfig","addAll","routes","contextWith","context","middleware","getMiddleware","applyMiddleware","effect","i","length","route","makeRoute","handler","method","all","path","on","of","prefixed","prefix","asHttpEffect","newPrefix","prefixPath","map","prefixRoute","add","options","isEffect","flatMap","uninterruptible","some","withFiberRuntime","fiber","contextMap","Map","currentContext","unsafeMap","request","get","key","result","find","url","undefined","fail","RouteNotFound","_tag","set","sliceRequestUrl","value","ParsedSearchParams","searchParams","params","span","ParentSpan","attribute","locally","interruptible","unsafeMake","prefexLen","modify","slice","Reference","defaultValue","schemaJson","schemaNoBody","schemaParams","schemaPathParams","use","f","scopedDiscard","toAdd","layer","toHttpEffect","appLayer","scope","memoMap","CurrentMemoMap","buildWithMemoMap","provideMerge","RouteTypeId","none","removeTrailingSlash","endsWith","self","match","onNone","onSome","existingPrefix","MiddlewareTypeId","arguments","makeMiddleware","MiddlewareImpl","scopedContext","fn","fnContextKey","succeedContext","middlewareId","layerFn","dependencies","constructor","contextKey","stack","depsContext","push","pipe","provide","combine","other","middlewareCache","WeakMap","arr","topLevel","empty","maxLength","startsWith","Set","fromIterable","reverse","cors","disableLogger","withLoggerDisabled","addHttpApi","api","ApiMiddleware","buildMiddleware","Router","unwrap","fnUntraced","router_","openapiPath","spec","fromApi","succeed","unsafeJson","effectDiscard","serve","logger","RouterLayer","routerConfig","unwrapScoped","disableListenLog","withLogAddress"],"sources":["../../src/HttpLayerRouter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"HttpLayerRouter.js","names":["HttpServerRequest","HttpServerResponse","Arr","Context","Effect","FiberRef","compose","constant","dual","identity","Layer","ManagedRuntime","Option","Scope","Tracer","FindMyWay","HttpApiBuilder","HttpApp","HttpMiddleware","RouteContext","RouteContextTypeId","HttpServer","HttpServerError","OpenApi","TypeId","Symbol","for","HttpRouter","GenericTag","make","gen","router","RouterConfig","middleware","Set","addAll","routes","contextWith","context","getMiddleware","applyMiddleware","effect","i","length","route","makeRoute","handler","method","all","path","on","of","prefixed","prefix","newPrefix","prefixPath","map","prefixRoute","add","options","isEffect","flatMap","uninterruptible","some","addGlobalMiddleware","middleware_","sync","asHttpEffect","withFiberRuntime","fiber","contextMap","Map","currentContext","unsafeMap","request","get","key","result","find","url","undefined","fail","RouteNotFound","_tag","set","sliceRequestUrl","value","ParsedSearchParams","searchParams","params","span","ParentSpan","attribute","locally","interruptible","unsafeMake","size","fn","reverse","prefexLen","modify","slice","Reference","defaultValue","schemaJson","schemaNoBody","schemaParams","schemaPathParams","use","f","scopedDiscard","toAdd","layer","toHttpEffect","appLayer","scope","memoMap","CurrentMemoMap","buildWithMemoMap","provideMerge","RouteTypeId","none","removeTrailingSlash","endsWith","self","match","onNone","onSome","existingPrefix","MiddlewareTypeId","arguments","makeMiddleware","global","MiddlewareImpl","scopedContext","fnContextKey","succeedContext","middlewareId","layerFn","dependencies","constructor","contextKey","stack","depsContext","push","pipe","provide","combine","other","middlewareCache","WeakMap","arr","topLevel","empty","maxLength","startsWith","fromIterable","cors","disableLogger","withLoggerDisabled","addHttpApi","api","ApiMiddleware","buildMiddleware","Router","unwrap","fnUntraced","router_","openapiPath","spec","fromApi","succeed","unsafeJson","effectDiscard","serve","logger","RouterLayer","routerConfig","unwrapScoped","disableListenLog","withLogAddress","toWebHandler","runtime","handlerCached","handlerPromise","rt","runtimeEffect","toWebHandlerRuntime","runPromise","then","dispose"],"sources":["../../src/HttpLayerRouter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.87.7",
3
+ "version": "0.87.9",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -9,20 +9,26 @@ import * as Effect from "effect/Effect"
9
9
  import * as FiberRef from "effect/FiberRef"
10
10
  import { compose, constant, dual, identity } from "effect/Function"
11
11
  import * as Layer from "effect/Layer"
12
+ import * as ManagedRuntime from "effect/ManagedRuntime"
12
13
  import * as Option from "effect/Option"
13
14
  import * as Scope from "effect/Scope"
14
15
  import * as Tracer from "effect/Tracer"
15
16
  import type * as Types from "effect/Types"
16
17
  import * as FindMyWay from "find-my-way-ts"
18
+ import type * as Etag from "./Etag.js"
19
+ import type { FileSystem } from "./FileSystem.js"
17
20
  import type * as HttpApi from "./HttpApi.js"
18
21
  import * as HttpApiBuilder from "./HttpApiBuilder.js"
19
22
  import type * as HttpApiGroup from "./HttpApiGroup.js"
23
+ import * as HttpApp from "./HttpApp.js"
20
24
  import type * as HttpMethod from "./HttpMethod.js"
21
25
  import * as HttpMiddleware from "./HttpMiddleware.js"
26
+ import type { HttpPlatform } from "./HttpPlatform.js"
22
27
  import { RouteContext, RouteContextTypeId } from "./HttpRouter.js"
23
28
  import * as HttpServer from "./HttpServer.js"
24
29
  import * as HttpServerError from "./HttpServerError.js"
25
30
  import * as OpenApi from "./OpenApi.js"
31
+ import type { Path } from "./Path.js"
26
32
 
27
33
  /**
28
34
  * @since 1.0.0
@@ -73,6 +79,19 @@ export interface HttpRouter {
73
79
  | Type.From<"Error", Route.Error<Routes[number]>>
74
80
  >
75
81
 
82
+ readonly addGlobalMiddleware: <E, R>(
83
+ middleware:
84
+ & ((
85
+ effect: Effect.Effect<HttpServerResponse.HttpServerResponse, unhandled>
86
+ ) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>)
87
+ & (unhandled extends E ? unknown : "You cannot handle any errors")
88
+ ) => Effect.Effect<
89
+ void,
90
+ never,
91
+ | Type.From<"GlobalRequires", Exclude<R, GlobalProvided>>
92
+ | Type.From<"GlobalError", Exclude<E, unhandled>>
93
+ >
94
+
76
95
  readonly asHttpEffect: () => Effect.Effect<
77
96
  HttpServerResponse.HttpServerResponse,
78
97
  unknown,
@@ -94,6 +113,7 @@ export const HttpRouter: Context.Tag<HttpRouter, HttpRouter> = Context.GenericTa
94
113
  */
95
114
  export const make = Effect.gen(function*() {
96
115
  const router = FindMyWay.make<Route<any, never>>(yield* RouterConfig)
116
+ const middleware = new Set<middleware.Fn>()
97
117
 
98
118
  const addAll = <const Routes extends ReadonlyArray<Route<any, any>>>(
99
119
  routes: Routes
@@ -128,8 +148,7 @@ export const make = Effect.gen(function*() {
128
148
  [TypeId]: TypeId,
129
149
  prefixed(this: HttpRouter, prefix: string) {
130
150
  return HttpRouter.of({
131
- [TypeId]: TypeId,
132
- asHttpEffect: this.asHttpEffect,
151
+ ...this,
133
152
  prefixed: (newPrefix: string) => this.prefixed(prefixPath(prefix, newPrefix)),
134
153
  addAll: (routes) => addAll(routes.map(prefixRoute(prefix))) as any,
135
154
  add: (method, path, handler, options) =>
@@ -148,8 +167,12 @@ export const make = Effect.gen(function*() {
148
167
  },
149
168
  addAll,
150
169
  add: (method, path, handler, options) => addAll([route(method, path, handler, options)]),
170
+ addGlobalMiddleware: (middleware_) =>
171
+ Effect.sync(() => {
172
+ middleware.add(middleware_ as any)
173
+ }),
151
174
  asHttpEffect() {
152
- return Effect.withFiberRuntime((fiber) => {
175
+ let handler = Effect.withFiberRuntime<HttpServerResponse.HttpServerResponse, unknown>((fiber) => {
153
176
  const contextMap = new Map(fiber.currentContext.unsafeMap)
154
177
  const request = contextMap.get(HttpServerRequest.HttpServerRequest.key) as HttpServerRequest.HttpServerRequest
155
178
  let result = router.find(request.method, request.url)
@@ -185,6 +208,11 @@ export const make = Effect.gen(function*() {
185
208
  Context.unsafeMake(contextMap)
186
209
  )
187
210
  })
211
+ if (middleware.size === 0) return handler
212
+ for (const fn of Arr.reverse(middleware)) {
213
+ handler = fn(handler as any)
214
+ }
215
+ return handler
188
216
  }
189
217
  })
190
218
  })
@@ -334,8 +362,8 @@ export const toHttpEffect = <A, E, R>(
334
362
  ): Effect.Effect<
335
363
  Effect.Effect<
336
364
  HttpServerResponse.HttpServerResponse,
337
- Type.Only<"Error", R> | HttpServerError.RouteNotFound,
338
- Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R>
365
+ Type.Only<"Error", R> | Type.Only<"GlobalRequires", R> | HttpServerError.RouteNotFound,
366
+ Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>
339
367
  >,
340
368
  Type.Without<E>,
341
369
  Exclude<Type.Without<R>, HttpRouter> | Scope.Scope
@@ -536,6 +564,16 @@ export type Provided =
536
564
  | HttpServerRequest.ParsedSearchParams
537
565
  | RouteContext
538
566
 
567
+ /**
568
+ * Services provided to global middleware.
569
+ *
570
+ * @since 1.0.0
571
+ * @category Request types
572
+ */
573
+ export type GlobalProvided =
574
+ | HttpServerRequest.HttpServerRequest
575
+ | Scope.Scope
576
+
539
577
  /**
540
578
  * @since 1.0.0
541
579
  * @category Middleware
@@ -578,7 +616,9 @@ export interface Middleware<
578
616
  readonly layer: [Config["requires"]] extends [never] ? Layer.Layer<
579
617
  Type.From<"Requires", Config["provides"]>,
580
618
  Config["layerError"],
581
- Config["layerRequires"] | Type.From<"Requires", Config["requires"]>
619
+ | Config["layerRequires"]
620
+ | Type.From<"Requires", Config["requires"]>
621
+ | Type.From<"Error", Config["error"]>
582
622
  >
583
623
  : "Need to .combine(middleware) that satisfy the missing request dependencies"
584
624
 
@@ -604,6 +644,11 @@ export interface Middleware<
604
644
  /**
605
645
  * Create a middleware layer that can be used to modify requests and responses.
606
646
  *
647
+ * By default, the middleware only affects the routes that it is provided to.
648
+ *
649
+ * If you want to create a middleware that applies globally to all routes, pass
650
+ * the `global` option as `true`.
651
+ *
607
652
  * ```ts
608
653
  * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
609
654
  * import * as HttpMiddleware from "@effect/platform/HttpMiddleware"
@@ -669,15 +714,23 @@ export const middleware:
669
714
  if (arguments.length === 0) {
670
715
  return makeMiddleware as any
671
716
  }
672
- return makeMiddleware(arguments[0])
717
+ return makeMiddleware(arguments[0], arguments[1]) as any
673
718
  }
674
719
 
675
- const makeMiddleware = (middleware: any) =>
676
- new MiddlewareImpl(
677
- Effect.isEffect(middleware) ?
678
- Layer.scopedContext(Effect.map(middleware, (fn) => Context.unsafeMake(new Map([[fnContextKey, fn]])))) :
679
- Layer.succeedContext(Context.unsafeMake(new Map([[fnContextKey, middleware]]))) as any
680
- )
720
+ const makeMiddleware = (middleware: any, options?: {
721
+ readonly global?: boolean | undefined
722
+ }) =>
723
+ options?.global ?
724
+ Layer.scopedDiscard(Effect.gen(function*() {
725
+ const router = yield* HttpRouter
726
+ const fn = Effect.isEffect(middleware) ? yield* middleware : middleware
727
+ yield* router.addGlobalMiddleware(fn)
728
+ }))
729
+ : new MiddlewareImpl(
730
+ Effect.isEffect(middleware) ?
731
+ Layer.scopedContext(Effect.map(middleware, (fn) => Context.unsafeMake(new Map([[fnContextKey, fn]])))) :
732
+ Layer.succeedContext(Context.unsafeMake(new Map([[fnContextKey, middleware]]))) as any
733
+ )
681
734
 
682
735
  let middlewareId = 0
683
736
  const fnContextKey = "@effect/platform/HttpLayerRouter/MiddlewareFn"
@@ -773,7 +826,7 @@ export declare namespace middleware {
773
826
  * @category Middleware
774
827
  */
775
828
  export type Make<Provides = never, Handles = never> = {
776
- <E, R, EX, RX>(
829
+ <E, R, EX, RX, const Global extends boolean = false>(
777
830
  middleware: Effect.Effect<
778
831
  (
779
832
  effect: Effect.Effect<
@@ -790,16 +843,30 @@ export declare namespace middleware {
790
843
  & (unhandled extends E ? unknown : "You must only handle the configured errors"),
791
844
  EX,
792
845
  RX
793
- >
794
- ): Middleware<{
795
- provides: Provides
796
- handles: Handles
797
- error: Exclude<E, unhandled>
798
- requires: Exclude<R, Provided>
799
- layerError: EX
800
- layerRequires: Exclude<RX, Scope.Scope>
801
- }>
802
- <E, R>(
846
+ >,
847
+ options?: {
848
+ readonly global?: Global | undefined
849
+ }
850
+ ): Global extends true ? Layer.Layer<
851
+ | Type.From<"Requires", Provides>
852
+ | Type.From<"Error", Handles>
853
+ | Type.From<"GlobalRequires", Provides>
854
+ | Type.From<"GlobalError", Handles>,
855
+ EX,
856
+ | HttpRouter
857
+ | Exclude<RX, Scope.Scope>
858
+ | Type.From<"GlobalRequires", Exclude<R, GlobalProvided>>
859
+ | Type.From<"GlobalError", Exclude<E, unhandled>>
860
+ > :
861
+ Middleware<{
862
+ provides: Provides
863
+ handles: Handles
864
+ error: Exclude<E, unhandled>
865
+ requires: Exclude<R, Provided>
866
+ layerError: EX
867
+ layerRequires: Exclude<RX, Scope.Scope>
868
+ }>
869
+ <E, R, const Global extends boolean = false>(
803
870
  middleware:
804
871
  & ((
805
872
  effect: Effect.Effect<
@@ -812,15 +879,28 @@ export declare namespace middleware {
812
879
  E,
813
880
  R
814
881
  >)
815
- & (unhandled extends E ? unknown : "You must only handle the configured errors")
816
- ): Middleware<{
817
- provides: Provides
818
- handles: Handles
819
- error: Exclude<E, unhandled>
820
- requires: Exclude<R, Provided>
821
- layerError: never
822
- layerRequires: never
823
- }>
882
+ & (unhandled extends E ? unknown : "You must only handle the configured errors"),
883
+ options?: {
884
+ readonly global?: Global | undefined
885
+ }
886
+ ): Global extends true ? Layer.Layer<
887
+ | Type.From<"Requires", Provides>
888
+ | Type.From<"Error", Handles>
889
+ | Type.From<"GlobalRequires", Provides>
890
+ | Type.From<"GlobalError", Handles>,
891
+ never,
892
+ | HttpRouter
893
+ | Type.From<"GlobalRequires", Exclude<R, GlobalProvided>>
894
+ | Type.From<"GlobalError", Exclude<E, unhandled>>
895
+ > :
896
+ Middleware<{
897
+ provides: Provides
898
+ handles: Handles
899
+ error: Exclude<E, unhandled>
900
+ requires: Exclude<R, Provided>
901
+ layerError: never
902
+ layerRequires: never
903
+ }>
824
904
  }
825
905
 
826
906
  /**
@@ -847,7 +927,7 @@ export const cors = (
847
927
  readonly maxAge?: number | undefined
848
928
  readonly credentials?: boolean | undefined
849
929
  } | undefined
850
- ): Layer.Layer<never> => middleware(HttpMiddleware.cors(options)).layer
930
+ ): Layer.Layer<never, never, HttpRouter> => middleware(HttpMiddleware.cors(options), { global: true })
851
931
 
852
932
  /**
853
933
  * A middleware that disables the logger for some routes.
@@ -936,16 +1016,31 @@ export const addHttpApi = <Id extends string, Groups extends HttpApiGroup.HttpAp
936
1016
  ): Layer.Layer<
937
1017
  never,
938
1018
  never,
939
- HttpRouter | HttpApiGroup.HttpApiGroup.ToService<Id, Groups> | R | HttpApiGroup.HttpApiGroup.ErrorContext<Groups>
1019
+ | Etag.Generator
1020
+ | HttpRouter
1021
+ | FileSystem
1022
+ | HttpPlatform
1023
+ | Path
1024
+ | R
1025
+ | HttpApiGroup.HttpApiGroup.ToService<Id, Groups>
1026
+ | HttpApiGroup.HttpApiGroup.ErrorContext<Groups>
940
1027
  > => {
941
- const ApiMiddleware = middleware(HttpApiBuilder.buildMiddleware(api)).layer
942
-
1028
+ const ApiMiddleware = middleware(HttpApiBuilder.buildMiddleware(api)).layer as Layer.Layer<never>
943
1029
  return HttpApiBuilder.Router.unwrap(Effect.fnUntraced(function*(router_) {
944
1030
  const router = yield* HttpRouter
1031
+ const context = yield* Effect.context<
1032
+ | Etag.Generator
1033
+ | HttpRouter
1034
+ | FileSystem
1035
+ | HttpPlatform
1036
+ | Path
1037
+ >()
945
1038
  const routes = Arr.empty<Route<any, any>>()
946
-
947
1039
  for (const route of router_.routes) {
948
- routes.push(makeRoute(route as any))
1040
+ routes.push(makeRoute({
1041
+ ...route as any,
1042
+ handler: Effect.provide(route.handler, context)
1043
+ }))
949
1044
  }
950
1045
 
951
1046
  yield* (router.addAll(routes) as Effect.Effect<void>)
@@ -965,7 +1060,7 @@ export const addHttpApi = <Id extends string, Groups extends HttpApiGroup.HttpAp
965
1060
  * @since 1.0.0
966
1061
  * @category Server
967
1062
  */
968
- export const serve = <A, E, R, HE, HR = Type.Only<"Requires", R>>(
1063
+ export const serve = <A, E, R, HE, HR = Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>>(
969
1064
  appLayer: Layer.Layer<A, E, R>,
970
1065
  options?: {
971
1066
  readonly routerConfig?: Partial<FindMyWay.RouterConfig> | undefined
@@ -985,15 +1080,15 @@ export const serve = <A, E, R, HE, HR = Type.Only<"Requires", R>>(
985
1080
  readonly middleware?: (
986
1081
  effect: Effect.Effect<
987
1082
  HttpServerResponse.HttpServerResponse,
988
- Type.Only<"Error", R> | HttpServerError.RouteNotFound,
989
- Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R>
1083
+ Type.Only<"Error", R> | Type.Only<"GlobalError", R> | HttpServerError.RouteNotFound,
1084
+ Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>
990
1085
  >
991
1086
  ) => Effect.Effect<HttpServerResponse.HttpServerResponse, HE, HR>
992
1087
  }
993
1088
  ): Layer.Layer<
994
1089
  never,
995
1090
  Type.Without<E>,
996
- HttpServer.HttpServer | Exclude<Type.Without<R> | Exclude<HR, Provided>, HttpRouter>
1091
+ HttpServer.HttpServer | Exclude<Type.Without<R> | Exclude<HR, GlobalProvided>, HttpRouter>
997
1092
  > => {
998
1093
  let middleware: any = options?.middleware
999
1094
  if (options?.disableLogger !== true) {
@@ -1013,3 +1108,78 @@ export const serve = <A, E, R, HE, HR = Type.Only<"Requires", R>>(
1013
1108
  options?.disableListenLog ? identity : HttpServer.withLogAddress
1014
1109
  ) as any
1015
1110
  }
1111
+
1112
+ /**
1113
+ * @since 1.0.0
1114
+ * @category Server
1115
+ */
1116
+ export const toWebHandler = <
1117
+ A,
1118
+ E,
1119
+ R extends
1120
+ | HttpRouter
1121
+ | Type<"Requires", any>
1122
+ | Type<"GlobalRequires", any>
1123
+ | Type<"Error", any>
1124
+ | Type<"GlobalError", any>,
1125
+ HE,
1126
+ HR = Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>
1127
+ >(
1128
+ appLayer: Layer.Layer<A, E, R>,
1129
+ options?: {
1130
+ readonly memoMap?: Layer.MemoMap | undefined
1131
+ readonly routerConfig?: Partial<FindMyWay.RouterConfig> | undefined
1132
+ readonly disableLogger?: boolean | undefined
1133
+ /**
1134
+ * Middleware to apply to the HTTP server.
1135
+ *
1136
+ * NOTE: This middleware is applied to the entire HTTP server chain,
1137
+ * including the sending of the response. This means that modifications
1138
+ * to the response **WILL NOT** be reflected in the final response sent to the
1139
+ * client.
1140
+ *
1141
+ * Use HttpLayerRouter.middleware to create middleware that can modify the
1142
+ * response.
1143
+ */
1144
+ readonly middleware?: (
1145
+ effect: Effect.Effect<
1146
+ HttpServerResponse.HttpServerResponse,
1147
+ Type.Only<"Error", R> | Type.Only<"GlobalError", R> | HttpServerError.RouteNotFound,
1148
+ Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>
1149
+ >
1150
+ ) => Effect.Effect<HttpServerResponse.HttpServerResponse, HE, HR>
1151
+ }
1152
+ ): {
1153
+ readonly handler: [HR] extends [never]
1154
+ ? ((request: Request, context?: Context.Context<never> | undefined) => Promise<Response>)
1155
+ : ((request: Request, context: Context.Context<HR>) => Promise<Response>)
1156
+ readonly dispose: () => Promise<void>
1157
+ } => {
1158
+ let middleware: any = options?.middleware
1159
+ if (options?.disableLogger !== true) {
1160
+ middleware = middleware ? compose(middleware, HttpMiddleware.logger) : HttpMiddleware.logger
1161
+ }
1162
+ const RouterLayer = options?.routerConfig
1163
+ ? Layer.provide(layer, Layer.succeed(RouterConfig, options.routerConfig))
1164
+ : layer
1165
+ const runtime = ManagedRuntime.make(
1166
+ Layer.provideMerge(appLayer, RouterLayer) as any,
1167
+ options?.memoMap
1168
+ )
1169
+ let handlerCached: ((request: Request, context?: Context.Context<never> | undefined) => Promise<Response>) | undefined
1170
+ const handlerPromise = Effect.gen(function*() {
1171
+ const router = yield* HttpRouter
1172
+ const effect = router.asHttpEffect()
1173
+ const rt = yield* runtime.runtimeEffect
1174
+ const handler = HttpApp.toWebHandlerRuntime(rt)(effect, middleware)
1175
+ handlerCached = handler
1176
+ return handler
1177
+ }).pipe(runtime.runPromise)
1178
+ function handler(request: Request, context?: Context.Context<never> | undefined): Promise<Response> {
1179
+ if (handlerCached !== undefined) {
1180
+ return handlerCached(request, context)
1181
+ }
1182
+ return handlerPromise.then((handler) => handler(request, context))
1183
+ }
1184
+ return { handler, dispose: runtime.dispose } as const
1185
+ }