@effect/platform 0.87.0 → 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 +272 -2
  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,468 @@
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 Arr from "effect/Array";
7
+ import * as Context from "effect/Context";
8
+ import * as Effect from "effect/Effect";
9
+ import * as FiberRef from "effect/FiberRef";
10
+ import { compose, constant, dual, identity } from "effect/Function";
11
+ import * as Layer from "effect/Layer";
12
+ import * as Option from "effect/Option";
13
+ import * as Scope from "effect/Scope";
14
+ import * as Tracer from "effect/Tracer";
15
+ import * as FindMyWay from "find-my-way-ts";
16
+ import * as HttpApi from "./HttpApi.js";
17
+ import * as HttpApiBuilder from "./HttpApiBuilder.js";
18
+ import * as HttpMiddleware from "./HttpMiddleware.js";
19
+ import { RouteContext, RouteContextTypeId } from "./HttpRouter.js";
20
+ import * as HttpServer from "./HttpServer.js";
21
+ import * as HttpServerError from "./HttpServerError.js";
22
+ import * as OpenApi from "./OpenApi.js";
23
+ /**
24
+ * @since 1.0.0
25
+ * @category Re-exports
26
+ */
27
+ export * as FindMyWay from "find-my-way-ts";
28
+ /**
29
+ * @since 1.0.0
30
+ * @category HttpRouter
31
+ */
32
+ export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/HttpLayerRouter/HttpRouter");
33
+ /**
34
+ * @since 1.0.0
35
+ * @category HttpRouter
36
+ */
37
+ export const HttpRouter = /*#__PURE__*/Context.GenericTag("@effect/platform/HttpLayerRouter");
38
+ /**
39
+ * @since 1.0.0
40
+ * @category HttpRouter
41
+ */
42
+ export const make = /*#__PURE__*/Effect.gen(function* () {
43
+ const router = FindMyWay.make(yield* RouterConfig);
44
+ const addAll = routes => Effect.contextWith(context => {
45
+ const middleware = getMiddleware(context);
46
+ const applyMiddleware = effect => {
47
+ for (let i = 0; i < middleware.length; i++) {
48
+ effect = middleware[i](effect);
49
+ }
50
+ return effect;
51
+ };
52
+ for (let i = 0; i < routes.length; i++) {
53
+ const route = middleware.length === 0 ? routes[i] : makeRoute({
54
+ ...routes[i],
55
+ handler: applyMiddleware(routes[i].handler)
56
+ });
57
+ if (route.method === "*") {
58
+ router.all(route.path, route);
59
+ } else {
60
+ router.on(route.method, route.path, route);
61
+ }
62
+ }
63
+ });
64
+ return HttpRouter.of({
65
+ [TypeId]: TypeId,
66
+ prefixed(prefix) {
67
+ return HttpRouter.of({
68
+ [TypeId]: TypeId,
69
+ asHttpEffect: this.asHttpEffect,
70
+ prefixed: newPrefix => this.prefixed(prefixPath(prefix, newPrefix)),
71
+ addAll: routes => addAll(routes.map(prefixRoute(prefix))),
72
+ add: (method, path, handler, options) => addAll([makeRoute({
73
+ method,
74
+ path: prefixPath(path, prefix),
75
+ handler: Effect.isEffect(handler) ? handler : Effect.flatMap(HttpServerRequest.HttpServerRequest, handler),
76
+ uninterruptible: options?.uninterruptible ?? false,
77
+ prefix: Option.some(prefix)
78
+ })])
79
+ });
80
+ },
81
+ addAll,
82
+ add: (method, path, handler, options) => addAll([route(method, path, handler, options)]),
83
+ asHttpEffect() {
84
+ return Effect.withFiberRuntime(fiber => {
85
+ const contextMap = new Map(fiber.currentContext.unsafeMap);
86
+ const request = contextMap.get(HttpServerRequest.HttpServerRequest.key);
87
+ let result = router.find(request.method, request.url);
88
+ if (result === undefined && request.method === "HEAD") {
89
+ result = router.find("GET", request.url);
90
+ }
91
+ if (result === undefined) {
92
+ return Effect.fail(new HttpServerError.RouteNotFound({
93
+ request
94
+ }));
95
+ }
96
+ const route = result.handler;
97
+ if (route.prefix._tag === "Some") {
98
+ contextMap.set(HttpServerRequest.HttpServerRequest.key, sliceRequestUrl(request, route.prefix.value));
99
+ }
100
+ contextMap.set(HttpServerRequest.ParsedSearchParams.key, result.searchParams);
101
+ contextMap.set(RouteContext.key, {
102
+ [RouteContextTypeId]: RouteContextTypeId,
103
+ route,
104
+ params: result.params
105
+ });
106
+ const span = contextMap.get(Tracer.ParentSpan.key);
107
+ if (span && span._tag === "Span") {
108
+ span.attribute("http.route", route.path);
109
+ }
110
+ return Effect.locally(route.uninterruptible ? route.handler : Effect.interruptible(route.handler), FiberRef.currentContext, Context.unsafeMake(contextMap));
111
+ });
112
+ }
113
+ });
114
+ });
115
+ function sliceRequestUrl(request, prefix) {
116
+ const prefexLen = prefix.length;
117
+ return request.modify({
118
+ url: request.url.length <= prefexLen ? "/" : request.url.slice(prefexLen)
119
+ });
120
+ }
121
+ /**
122
+ * @since 1.0.0
123
+ * @category Configuration
124
+ */
125
+ export class RouterConfig extends /*#__PURE__*/Context.Reference()("@effect/platform/HttpLayerRouter/RouterConfig", {
126
+ defaultValue: /*#__PURE__*/constant({})
127
+ }) {}
128
+ export {
129
+ /**
130
+ * @since 1.0.0
131
+ * @category Route context
132
+ */
133
+ params,
134
+ /**
135
+ * @since 1.0.0
136
+ * @category Route context
137
+ */
138
+ RouteContext,
139
+ /**
140
+ * @since 1.0.0
141
+ * @category Route context
142
+ */
143
+ schemaJson,
144
+ /**
145
+ * @since 1.0.0
146
+ * @category Route context
147
+ */
148
+ schemaNoBody,
149
+ /**
150
+ * @since 1.0.0
151
+ * @category Route context
152
+ */
153
+ schemaParams,
154
+ /**
155
+ * @since 1.0.0
156
+ * @category Route context
157
+ */
158
+ schemaPathParams } from "./HttpRouter.js";
159
+ /**
160
+ * A helper function that is the equivalent of:
161
+ *
162
+ * ```ts
163
+ * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
164
+ * import * as Effect from "effect/Effect"
165
+ * import * as Layer from "effect/Layer"
166
+ *
167
+ * const MyRoute = Layer.scopedDiscard(Effect.gen(function*() {
168
+ * const router = yield* HttpLayerRouter.HttpRouter
169
+ *
170
+ * // then use `router.add` to add a route
171
+ * }))
172
+ * ```
173
+ *
174
+ * @since 1.0.0
175
+ * @category HttpRouter
176
+ */
177
+ export const use = f => Layer.scopedDiscard(Effect.flatMap(HttpRouter, f));
178
+ /**
179
+ * @since 1.0.0
180
+ * @category HttpRouter
181
+ */
182
+ export const layer = /*#__PURE__*/Layer.effect(HttpRouter, make);
183
+ /**
184
+ * @since 1.0.0
185
+ * @category HttpRouter
186
+ */
187
+ export const toHttpEffect = appLayer => Effect.gen(function* () {
188
+ const scope = yield* Effect.scope;
189
+ const memoMap = yield* Layer.CurrentMemoMap;
190
+ const context = yield* Layer.buildWithMemoMap(Layer.provideMerge(appLayer, layer), memoMap, scope);
191
+ const router = Context.get(context, HttpRouter);
192
+ return router.asHttpEffect();
193
+ });
194
+ /**
195
+ * @since 1.0.0
196
+ * @category Route
197
+ */
198
+ export const RouteTypeId = /*#__PURE__*/Symbol.for("@effect/platform/HttpLayerRouter/Route");
199
+ const makeRoute = options => ({
200
+ ...options,
201
+ uninterruptible: options.uninterruptible ?? false,
202
+ prefix: options.prefix ?? Option.none(),
203
+ [RouteTypeId]: RouteTypeId
204
+ });
205
+ /**
206
+ * @since 1.0.0
207
+ * @category Route
208
+ */
209
+ export const route = (method, path, handler, options) => makeRoute({
210
+ ...options,
211
+ method,
212
+ path,
213
+ handler: Effect.isEffect(handler) ? handler : Effect.flatMap(HttpServerRequest.HttpServerRequest, handler),
214
+ uninterruptible: options?.uninterruptible ?? false
215
+ });
216
+ const removeTrailingSlash = path => path.endsWith("/") ? path.slice(0, -1) : path;
217
+ /**
218
+ * @since 1.0.0
219
+ * @category PathInput
220
+ */
221
+ export const prefixPath = /*#__PURE__*/dual(2, (self, prefix) => {
222
+ prefix = removeTrailingSlash(prefix);
223
+ return self === "/" ? prefix : prefix + self;
224
+ });
225
+ /**
226
+ * @since 1.0.0
227
+ * @category Route
228
+ */
229
+ export const prefixRoute = /*#__PURE__*/dual(2, (self, prefix) => makeRoute({
230
+ ...self,
231
+ path: prefixPath(self.path, prefix),
232
+ prefix: Option.match(self.prefix, {
233
+ onNone: () => Option.some(prefix),
234
+ onSome: existingPrefix => Option.some(prefixPath(existingPrefix, prefix))
235
+ })
236
+ }));
237
+ /**
238
+ * @since 1.0.0
239
+ * @category Middleware
240
+ */
241
+ export const MiddlewareTypeId = /*#__PURE__*/Symbol.for("@effect/platform/HttpLayerRouter/Middleware");
242
+ /**
243
+ * Create a middleware layer that can be used to modify requests and responses.
244
+ *
245
+ * ```ts
246
+ * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
247
+ * import * as HttpMiddleware from "@effect/platform/HttpMiddleware"
248
+ * import * as HttpServerResponse from "@effect/platform/HttpServerResponse"
249
+ * import * as Context from "effect/Context"
250
+ * import * as Effect from "effect/Effect"
251
+ * import * as Layer from "effect/Layer"
252
+ *
253
+ * // Here we are defining a CORS middleware
254
+ * const CorsMiddleware = HttpLayerRouter.middleware(HttpMiddleware.cors()).layer
255
+ * // You can also use HttpLayerRouter.cors() to create a CORS middleware
256
+ *
257
+ * class CurrentSession extends Context.Tag("CurrentSession")<CurrentSession, {
258
+ * readonly token: string
259
+ * }>() {}
260
+ *
261
+ * // You can create middleware that provides a service to the HTTP requests.
262
+ * const SessionMiddleware = HttpLayerRouter.middleware<{
263
+ * provides: CurrentSession
264
+ * }>()(
265
+ * Effect.gen(function*() {
266
+ * yield* Effect.log("SessionMiddleware initialized")
267
+ *
268
+ * return (httpEffect) =>
269
+ * Effect.provideService(httpEffect, CurrentSession, {
270
+ * token: "dummy-token"
271
+ * })
272
+ * })
273
+ * ).layer
274
+ *
275
+ * Effect.gen(function*() {
276
+ * const router = yield* HttpLayerRouter.HttpRouter
277
+ * yield* router.add(
278
+ * "GET",
279
+ * "/hello",
280
+ * Effect.gen(function*() {
281
+ * // Requests can now access the current session
282
+ * const session = yield* CurrentSession
283
+ * return HttpServerResponse.text(`Hello, World! Your token is ${session.token}`)
284
+ * })
285
+ * )
286
+ * }).pipe(
287
+ * Layer.effectDiscard,
288
+ * // Provide the SessionMiddleware & CorsMiddleware to some routes
289
+ * Layer.provide([SessionMiddleware, CorsMiddleware])
290
+ * )
291
+ * ```
292
+ *
293
+ * @since 1.0.0
294
+ * @category Middleware
295
+ */
296
+ export const middleware = function () {
297
+ if (arguments.length === 0) {
298
+ return makeMiddleware;
299
+ }
300
+ return makeMiddleware(arguments[0]);
301
+ };
302
+ 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]]))));
303
+ let middlewareId = 0;
304
+ const fnContextKey = "@effect/platform/HttpLayerRouter/MiddlewareFn";
305
+ class MiddlewareImpl {
306
+ layerFn;
307
+ dependencies;
308
+ [MiddlewareTypeId] = {};
309
+ constructor(layerFn, dependencies) {
310
+ this.layerFn = layerFn;
311
+ this.dependencies = dependencies;
312
+ const contextKey = `@effect/platform/HttpLayerRouter/Middleware-${++middlewareId}`;
313
+ this.layer = Layer.scopedContext(Effect.gen(this, function* () {
314
+ const context = yield* Effect.context();
315
+ const stack = [context.unsafeMap.get(fnContextKey)];
316
+ if (this.dependencies) {
317
+ const memoMap = yield* Layer.CurrentMemoMap;
318
+ const scope = Context.get(context, Scope.Scope);
319
+ const depsContext = yield* Layer.buildWithMemoMap(this.dependencies, memoMap, scope);
320
+ // eslint-disable-next-line no-restricted-syntax
321
+ stack.push(...getMiddleware(depsContext));
322
+ }
323
+ return Context.unsafeMake(new Map([[contextKey, stack]]));
324
+ })).pipe(Layer.provide(this.layerFn));
325
+ }
326
+ layer;
327
+ combine(other) {
328
+ return new MiddlewareImpl(this.layerFn, this.dependencies ? Layer.provideMerge(this.dependencies, other.layer) : other.layer);
329
+ }
330
+ }
331
+ const middlewareCache = /*#__PURE__*/new WeakMap();
332
+ const getMiddleware = context => {
333
+ let arr = middlewareCache.get(context);
334
+ if (arr) return arr;
335
+ const topLevel = Arr.empty();
336
+ let maxLength = 0;
337
+ for (const [key, value] of context.unsafeMap) {
338
+ if (key.startsWith("@effect/platform/HttpLayerRouter/Middleware-")) {
339
+ topLevel.push(value);
340
+ if (value.length > maxLength) {
341
+ maxLength = value.length;
342
+ }
343
+ }
344
+ }
345
+ if (topLevel.length === 0) {
346
+ arr = [];
347
+ } else {
348
+ const middleware = new Set();
349
+ for (let i = maxLength - 1; i >= 0; i--) {
350
+ for (const arr of topLevel) {
351
+ if (i < arr.length) {
352
+ middleware.add(arr[i]);
353
+ }
354
+ }
355
+ }
356
+ arr = Arr.fromIterable(middleware).reverse();
357
+ }
358
+ middlewareCache.set(context, arr);
359
+ return arr;
360
+ };
361
+ /**
362
+ * A middleware that applies CORS headers to the HTTP response.
363
+ *
364
+ * @since 1.0.0
365
+ * @category Middleware
366
+ */
367
+ export const cors = options => middleware(HttpMiddleware.cors(options)).layer;
368
+ /**
369
+ * ```ts
370
+ * import * as NodeHttpServer from "@effect/platform-node/NodeHttpServer"
371
+ * import * as NodeRuntime from "@effect/platform-node/NodeRuntime"
372
+ * import * as HttpApi from "@effect/platform/HttpApi"
373
+ * import * as HttpApiBuilder from "@effect/platform/HttpApiBuilder"
374
+ * import * as HttpApiEndpoint from "@effect/platform/HttpApiEndpoint"
375
+ * import * as HttpApiGroup from "@effect/platform/HttpApiGroup"
376
+ * import * as HttpApiScalar from "@effect/platform/HttpApiScalar"
377
+ * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
378
+ * import * as HttpMiddleware from "@effect/platform/HttpMiddleware"
379
+ * import * as Effect from "effect/Effect"
380
+ * import * as Layer from "effect/Layer"
381
+ * import { createServer } from "http"
382
+ *
383
+ * // First, we define our HttpApi
384
+ * class MyApi extends HttpApi.make("api").add(
385
+ * HttpApiGroup.make("users").add(
386
+ * HttpApiEndpoint.get("me", "/me")
387
+ * ).prefix("/users")
388
+ * ) {}
389
+ *
390
+ * // Implement the handlers for the API
391
+ * const UsersApiLayer = HttpApiBuilder.group(MyApi, "users", (handers) => handers.handle("me", () => Effect.void))
392
+ *
393
+ * // Use `HttpLayerRouter.addHttpApi` to register the API with the router
394
+ * const HttpApiRoutes = HttpLayerRouter.addHttpApi(MyApi, {
395
+ * openapiPath: "/docs/openapi.json"
396
+ * }).pipe(
397
+ * // Provide the api handlers layer
398
+ * Layer.provide(UsersApiLayer)
399
+ * )
400
+ *
401
+ * // Create a /docs route for the API documentation
402
+ * const DocsRoute = HttpApiScalar.layerHttpLayerRouter({
403
+ * api: MyApi,
404
+ * path: "/docs"
405
+ * })
406
+ *
407
+ * const CorsMiddleware = HttpLayerRouter.middleware(HttpMiddleware.cors())
408
+ * // You can also use HttpLayerRouter.cors() to create a CORS middleware
409
+ *
410
+ * // Finally, we merge all routes and serve them using the Node HTTP server
411
+ * const AllRoutes = Layer.mergeAll(
412
+ * HttpApiRoutes,
413
+ * DocsRoute
414
+ * ).pipe(
415
+ * Layer.provide(CorsMiddleware.layer)
416
+ * )
417
+ *
418
+ * HttpLayerRouter.serve(AllRoutes).pipe(
419
+ * Layer.provide(NodeHttpServer.layer(createServer, { port: 3000 })),
420
+ * Layer.launch,
421
+ * NodeRuntime.runMain
422
+ * )
423
+ * ```
424
+ *
425
+ * @since 1.0.0
426
+ * @category HttpApi
427
+ */
428
+ export const addHttpApi = (api, options) => {
429
+ const ApiMiddleware = middleware(HttpApiBuilder.buildMiddleware(api)).layer;
430
+ return HttpApiBuilder.Router.unwrap(Effect.fnUntraced(function* (router_) {
431
+ const contextMap = new Map();
432
+ const router = yield* HttpRouter;
433
+ const routes = Arr.empty();
434
+ const context = yield* Effect.context();
435
+ contextMap.set(HttpApi.Api.key, {
436
+ api,
437
+ context
438
+ });
439
+ for (const route of router_.routes) {
440
+ routes.push(makeRoute(route));
441
+ }
442
+ yield* router.addAll(routes);
443
+ if (options?.openapiPath) {
444
+ const spec = OpenApi.fromApi(api);
445
+ yield* router.add("GET", options.openapiPath, Effect.succeed(HttpServerResponse.unsafeJson(spec)));
446
+ }
447
+ return Context.unsafeMake(contextMap);
448
+ }, Layer.effectContext)).pipe(Layer.provide(ApiMiddleware));
449
+ };
450
+ /**
451
+ * Serves the provided application layer as an HTTP server.
452
+ *
453
+ * @since 1.0.0
454
+ * @category Server
455
+ */
456
+ export const serve = (appLayer, options) => {
457
+ let middleware = options?.middleware;
458
+ if (options?.disableLogger !== true) {
459
+ middleware = middleware ? compose(middleware, HttpMiddleware.logger) : HttpMiddleware.logger;
460
+ }
461
+ const RouterLayer = options?.routerConfig ? Layer.provide(layer, Layer.succeed(RouterConfig, options.routerConfig)) : layer;
462
+ return Effect.gen(function* () {
463
+ const router = yield* HttpRouter;
464
+ const handler = router.asHttpEffect();
465
+ return middleware ? HttpServer.serve(handler, middleware) : HttpServer.serve(handler);
466
+ }).pipe(Layer.unwrapScoped, options?.disableListenLog ? identity : HttpServer.withLogAddress, Layer.provide(appLayer), Layer.provide(RouterLayer));
467
+ };
468
+ //# sourceMappingURL=HttpLayerRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpLayerRouter.js","names":["HttpServerRequest","HttpServerResponse","Arr","Context","Effect","FiberRef","compose","constant","dual","identity","Layer","Option","Scope","Tracer","FindMyWay","HttpApi","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","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","addHttpApi","api","ApiMiddleware","buildMiddleware","Router","unwrap","fnUntraced","router_","Api","openapiPath","spec","fromApi","succeed","unsafeJson","effectContext","serve","disableLogger","logger","RouterLayer","routerConfig","unwrapScoped","disableListenLog","withLogAddress"],"sources":["../../src/HttpLayerRouter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -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.js","names":["ChannelSchema","Command","CommandExecutor","Cookies","Effectify","Error","Etag","FetchHttpClient","FileSystem","Headers","HttpApi","HttpApiBuilder","HttpApiClient","HttpApiEndpoint","HttpApiError","HttpApiGroup","HttpApiMiddleware","HttpApiScalar","HttpApiSchema","HttpApiSecurity","HttpApiSwagger","HttpApp","HttpBody","HttpClient","HttpClientError","HttpClientRequest","HttpClientResponse","HttpIncomingMessage","HttpMethod","HttpMiddleware","HttpMultiplex","HttpPlatform","HttpRouter","HttpServer","HttpServerError","HttpServerRequest","HttpServerRespondable","HttpServerResponse","HttpTraceContext","KeyValueStore","MsgPack","Multipart","Ndjson","OpenApi","OpenApiJsonSchema","Path","PlatformConfigProvider","PlatformLogger","Runtime","Socket","SocketServer","Template","Terminal","Transferable","Url","UrlParams","Worker","WorkerError","WorkerRunner"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["ChannelSchema","Command","CommandExecutor","Cookies","Effectify","Error","Etag","FetchHttpClient","FileSystem","Headers","HttpApi","HttpApiBuilder","HttpApiClient","HttpApiEndpoint","HttpApiError","HttpApiGroup","HttpApiMiddleware","HttpApiScalar","HttpApiSchema","HttpApiSecurity","HttpApiSwagger","HttpApp","HttpBody","HttpClient","HttpClientError","HttpClientRequest","HttpClientResponse","HttpIncomingMessage","HttpLayerRouter","HttpMethod","HttpMiddleware","HttpMultiplex","HttpPlatform","HttpRouter","HttpServer","HttpServerError","HttpServerRequest","HttpServerRespondable","HttpServerResponse","HttpTraceContext","KeyValueStore","MsgPack","Multipart","Ndjson","OpenApi","OpenApiJsonSchema","Path","PlatformConfigProvider","PlatformLogger","Runtime","Socket","SocketServer","Template","Terminal","Transferable","Url","UrlParams","Worker","WorkerError","WorkerRunner"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -129,9 +129,11 @@ const toHttpApp = (self, config) => {
129
129
  const context = Context.unsafeMake(new Map(fiber.getFiberRef(FiberRef.currentContext).unsafeMap));
130
130
  const request = Context.unsafeGet(context, ServerRequest.HttpServerRequest);
131
131
  if (mountsLen > 0) {
132
+ const searchIndex = request.url.indexOf("?");
133
+ const pathname = searchIndex === -1 ? request.url : request.url.slice(0, searchIndex);
132
134
  for (let i = 0; i < mountsLen; i++) {
133
135
  const [path, routeContext, options] = mounts[i];
134
- if (request.url.startsWith(path)) {
136
+ if (pathname === path || pathname.startsWith(path + "/")) {
135
137
  context.unsafeMap.set(RouteContext.key, routeContext);
136
138
  if (options?.includePrefix !== true) {
137
139
  context.unsafeMap.set(ServerRequest.HttpServerRequest.key, sliceRequestUrl(request, path));
@@ -1 +1 @@
1
- {"version":3,"file":"httpRouter.js","names":["Chunk","Context","Effect","Effectable","FiberRef","dual","globalValue","Inspectable","Layer","Option","Predicate","Schema","Tracer","FindMyWay","HttpServer","Error","ServerRequest","Respondable","TypeId","Symbol","for","RouteTypeId","RouteContextTypeId","RouteContext","GenericTag","isRouter","u","hasProperty","params","map","_","schemaJson","schema","options","parse","decodeUnknown","flatMap","context","request","get","HttpServerRequest","searchParams","ParsedSearchParams","routeContext","json","body","method","url","headers","cookies","pathParams","schemaNoBody","schemaParams","schemaPathParams","currentRouterConfig","unsafeMake","withRouterConfig","effect","config","locally","setRouterConfig","locallyScoped","RouterImpl","StructuralClass","routes","mounts","constructor","httpApp","pipe","toHttpApp","commit","toJSON","_id","toString","format","NodeInspectSymbol","self","router","make","toReadonlyArray","path","app","RouteContextImpl","RouteImpl","includePrefix","none","some","mountsLen","length","forEach","route","all","on","withFiberRuntime","fiber","Map","getFiberRef","currentContext","unsafeMap","unsafeGet","i","startsWith","set","key","sliceRequestUrl","handler","toResponse","result","find","undefined","fail","RouteNotFound","prefix","_tag","value","span","getOption","ParentSpan","attribute","handlerResponse","uninterruptible","interruptible","prefexLen","modify","slice","Class","empty","fromIterable","makeRoute","append","concat","that","concatAll","routers","reduce","cur","acc","appendAll","removeTrailingSlash","endsWith","prefixPath","prefixAll","orElse","mount","mountApp","args","post","put","patch","del","head","use","f","transform","catchAll","catchAllCause","catchTag","k","catchTags","cases","provideService","tag","service","provideServiceEffect","makeService","addRoute","sync","opts","Tag","id","Err","globalThis","limit","stackTraceLimit","creationError","TagClass","TagClass_","Object","setPrototypeOf","getPrototypeOf","defineProperty","stack","Live","scopedDiscard","provide","unwrap","unwrapEffect","serve","middleware"],"sources":["../../../src/internal/httpRouter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"httpRouter.js","names":["Chunk","Context","Effect","Effectable","FiberRef","dual","globalValue","Inspectable","Layer","Option","Predicate","Schema","Tracer","FindMyWay","HttpServer","Error","ServerRequest","Respondable","TypeId","Symbol","for","RouteTypeId","RouteContextTypeId","RouteContext","GenericTag","isRouter","u","hasProperty","params","map","_","schemaJson","schema","options","parse","decodeUnknown","flatMap","context","request","get","HttpServerRequest","searchParams","ParsedSearchParams","routeContext","json","body","method","url","headers","cookies","pathParams","schemaNoBody","schemaParams","schemaPathParams","currentRouterConfig","unsafeMake","withRouterConfig","effect","config","locally","setRouterConfig","locallyScoped","RouterImpl","StructuralClass","routes","mounts","constructor","httpApp","pipe","toHttpApp","commit","toJSON","_id","toString","format","NodeInspectSymbol","self","router","make","toReadonlyArray","path","app","RouteContextImpl","RouteImpl","includePrefix","none","some","mountsLen","length","forEach","route","all","on","withFiberRuntime","fiber","Map","getFiberRef","currentContext","unsafeMap","unsafeGet","searchIndex","indexOf","pathname","slice","i","startsWith","set","key","sliceRequestUrl","handler","toResponse","result","find","undefined","fail","RouteNotFound","prefix","_tag","value","span","getOption","ParentSpan","attribute","handlerResponse","uninterruptible","interruptible","prefexLen","modify","Class","empty","fromIterable","makeRoute","append","concat","that","concatAll","routers","reduce","cur","acc","appendAll","removeTrailingSlash","endsWith","prefixPath","prefixAll","orElse","mount","mountApp","args","post","put","patch","del","head","use","f","transform","catchAll","catchAllCause","catchTag","k","catchTags","cases","provideService","tag","service","provideServiceEffect","makeService","addRoute","sync","opts","Tag","id","Err","globalThis","limit","stackTraceLimit","creationError","TagClass","TagClass_","Object","setPrototypeOf","getPrototypeOf","defineProperty","stack","Live","scopedDiscard","provide","unwrap","unwrapEffect","serve","middleware"],"sources":["../../../src/internal/httpRouter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}