@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.
- package/HttpLayerRouter/package.json +6 -0
- package/README.md +271 -0
- package/dist/cjs/HttpApiBuilder.js +15 -1
- package/dist/cjs/HttpApiBuilder.js.map +1 -1
- package/dist/cjs/HttpApiScalar.js +29 -11
- package/dist/cjs/HttpApiScalar.js.map +1 -1
- package/dist/cjs/HttpApiSwagger.js +32 -15
- package/dist/cjs/HttpApiSwagger.js.map +1 -1
- package/dist/cjs/HttpLayerRouter.js +494 -0
- package/dist/cjs/HttpLayerRouter.js.map +1 -0
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/internal/httpRouter.js +3 -1
- package/dist/cjs/internal/httpRouter.js.map +1 -1
- package/dist/dts/HttpApiBuilder.d.ts +6 -0
- package/dist/dts/HttpApiBuilder.d.ts.map +1 -1
- package/dist/dts/HttpApiScalar.d.ts +14 -2
- package/dist/dts/HttpApiScalar.d.ts.map +1 -1
- package/dist/dts/HttpApiSwagger.d.ts +12 -2
- package/dist/dts/HttpApiSwagger.d.ts.map +1 -1
- package/dist/dts/HttpLayerRouter.d.ts +481 -0
- package/dist/dts/HttpLayerRouter.d.ts.map +1 -0
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/httpRouter.d.ts.map +1 -1
- package/dist/esm/HttpApiBuilder.js +14 -0
- package/dist/esm/HttpApiBuilder.js.map +1 -1
- package/dist/esm/HttpApiScalar.js +28 -10
- package/dist/esm/HttpApiScalar.js.map +1 -1
- package/dist/esm/HttpApiSwagger.js +31 -14
- package/dist/esm/HttpApiSwagger.js.map +1 -1
- package/dist/esm/HttpLayerRouter.js +468 -0
- package/dist/esm/HttpLayerRouter.js.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/httpRouter.js +3 -1
- package/dist/esm/internal/httpRouter.js.map +1 -1
- package/package.json +10 -2
- package/src/HttpApiBuilder.ts +30 -0
- package/src/HttpApiScalar.ts +79 -41
- package/src/HttpApiSwagger.ts +49 -18
- package/src/HttpLayerRouter.ts +920 -0
- package/src/index.ts +5 -0
- 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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"}
|
package/dist/dts/index.d.ts
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
|
package/dist/dts/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
*
|