@effect-app/infra 1.28.4 → 1.29.1
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/CHANGELOG.md +19 -0
- package/_cjs/api/internal/auth.cjs +3 -1
- package/_cjs/api/internal/auth.cjs.map +1 -1
- package/_cjs/api/routing/DynamicMiddleware.cjs.map +1 -0
- package/_cjs/api/routing.cjs +135 -43
- package/_cjs/api/routing.cjs.map +1 -1
- package/dist/api/internal/auth.d.ts +8 -1
- package/dist/api/internal/auth.d.ts.map +1 -1
- package/dist/api/internal/auth.js +4 -2
- package/dist/api/routing/DynamicMiddleware.d.ts.map +1 -0
- package/dist/api/routing/DynamicMiddleware.js +33 -0
- package/dist/api/routing.d.ts +100 -4
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +116 -9
- package/dist/services/Repository/ext.d.ts +4 -4
- package/package.json +9 -79
- package/src/api/internal/auth.ts +9 -1
- package/src/api/routing.ts +434 -8
- package/_cjs/api/routing/base.cjs +0 -135
- package/_cjs/api/routing/base.cjs.map +0 -1
- package/_cjs/api/routing/defaultErrorHandler.cjs +0 -62
- package/_cjs/api/routing/defaultErrorHandler.cjs.map +0 -1
- package/_cjs/api/routing/makeRequestHandler.cjs +0 -130
- package/_cjs/api/routing/makeRequestHandler.cjs.map +0 -1
- package/_cjs/api/routing/match.cjs +0 -40
- package/_cjs/api/routing/match.cjs.map +0 -1
- package/_cjs/api/routing/schema/routing.cjs +0 -136
- package/_cjs/api/routing/schema/routing.cjs.map +0 -1
- package/_cjs/api/routing2/DynamicMiddleware.cjs.map +0 -1
- package/_cjs/api/routing2.cjs +0 -142
- package/_cjs/api/routing2.cjs.map +0 -1
- package/_cjs/router.cjs +0 -170
- package/_cjs/router.cjs.map +0 -1
- package/dist/api/routing/base.d.ts +0 -97
- package/dist/api/routing/base.d.ts.map +0 -1
- package/dist/api/routing/base.js +0 -129
- package/dist/api/routing/defaultErrorHandler.d.ts +0 -19
- package/dist/api/routing/defaultErrorHandler.d.ts.map +0 -1
- package/dist/api/routing/defaultErrorHandler.js +0 -68
- package/dist/api/routing/makeRequestHandler.d.ts +0 -20
- package/dist/api/routing/makeRequestHandler.d.ts.map +0 -1
- package/dist/api/routing/makeRequestHandler.js +0 -151
- package/dist/api/routing/match.d.ts +0 -12
- package/dist/api/routing/match.d.ts.map +0 -1
- package/dist/api/routing/match.js +0 -27
- package/dist/api/routing/schema/routing.d.ts +0 -31
- package/dist/api/routing/schema/routing.d.ts.map +0 -1
- package/dist/api/routing/schema/routing.js +0 -123
- package/dist/api/routing2/DynamicMiddleware.d.ts.map +0 -1
- package/dist/api/routing2/DynamicMiddleware.js +0 -33
- package/dist/api/routing2.d.ts +0 -93
- package/dist/api/routing2.d.ts.map +0 -1
- package/dist/api/routing2.js +0 -117
- package/dist/router.d.ts +0 -91
- package/dist/router.d.ts.map +0 -1
- package/dist/router.js +0 -154
- package/src/api/routing/base.ts +0 -379
- package/src/api/routing/defaultErrorHandler.ts +0 -140
- package/src/api/routing/makeRequestHandler.ts +0 -343
- package/src/api/routing/match.ts +0 -128
- package/src/api/routing/schema/routing.ts +0 -237
- package/src/api/routing2.ts +0 -425
- package/src/api/writeDocs.ts.bak +0 -31
- package/src/router.ts +0 -619
- /package/_cjs/api/{routing2 → routing}/DynamicMiddleware.cjs +0 -0
- /package/dist/api/{routing2 → routing}/DynamicMiddleware.d.ts +0 -0
- /package/src/api/{routing2 → routing}/DynamicMiddleware.ts +0 -0
package/_cjs/router.cjs
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.makeRouter = void 0;
|
|
7
|
-
var _Effect = require("@effect-app/core/Effect");
|
|
8
|
-
var _utils = require("@effect-app/core/utils");
|
|
9
|
-
var _routing = require("@effect-app/infra/api/routing");
|
|
10
|
-
var _effectApp = require("effect-app");
|
|
11
|
-
var _http = require("effect-app/http");
|
|
12
|
-
var _schema = require("effect-app/schema");
|
|
13
|
-
// For CTXMap, handled by `handleRequestEnv` middleware:
|
|
14
|
-
// ["configurationKey", ["contextKey", ServiceShape, defaultOffBoolean]]
|
|
15
|
-
// defaultOffBoolean:
|
|
16
|
-
// false means: if not configured, or set to false, the item is considered active.
|
|
17
|
-
// true means: if configured as true, the item is considered active.
|
|
18
|
-
// not active means the service is not in the context, and in route context is marked as optional.
|
|
19
|
-
const makeRouter = (handleRequestEnv /* Middleware */) => {
|
|
20
|
-
function match(requestHandler, errorHandler, middleware) {
|
|
21
|
-
let middlewareLayer = undefined;
|
|
22
|
-
if (middleware) {
|
|
23
|
-
const {
|
|
24
|
-
handler,
|
|
25
|
-
makeRequestLayer
|
|
26
|
-
} = middleware(requestHandler);
|
|
27
|
-
requestHandler = handler; // todo
|
|
28
|
-
middlewareLayer = makeRequestLayer;
|
|
29
|
-
}
|
|
30
|
-
// const rdesc = yield* RouteDescriptors.flatMap((_) => _.get)
|
|
31
|
-
const handler = (0, _routing.makeRequestHandler)(requestHandler,
|
|
32
|
-
// one argument if no middleware, 2 if has middleware. TODO: clean this shit up
|
|
33
|
-
errorHandler, middlewareLayer);
|
|
34
|
-
const route = _http.HttpRouter.makeRoute(requestHandler.Request.method, requestHandler.Request.path, handler.pipe(_effectApp.Effect.withSpan("Request." + requestHandler.name, {
|
|
35
|
-
captureStackTrace: () => requestHandler.stack
|
|
36
|
-
})));
|
|
37
|
-
// TODO
|
|
38
|
-
// rdesc.push(makeRouteDescriptor(
|
|
39
|
-
// requestHandler.Request.path,
|
|
40
|
-
// requestHandler.Request.method,
|
|
41
|
-
// requestHandler
|
|
42
|
-
// ))
|
|
43
|
-
return route;
|
|
44
|
-
}
|
|
45
|
-
function handle(_, name, adaptResponse) {
|
|
46
|
-
const Request = _effectApp.S.REST.extractRequest(_);
|
|
47
|
-
const Response = _effectApp.S.REST.extractResponse(_);
|
|
48
|
-
return h => ({
|
|
49
|
-
adaptResponse,
|
|
50
|
-
stack: h.stack,
|
|
51
|
-
h: h.handler,
|
|
52
|
-
name,
|
|
53
|
-
Request,
|
|
54
|
-
Response,
|
|
55
|
-
ResponseOpenApi: _.ResponseOpenApi ?? Response,
|
|
56
|
-
Context: null,
|
|
57
|
-
CTX: null,
|
|
58
|
-
rt: h._tag
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
function matchFor(rsc) {
|
|
62
|
-
const filtered = (0, _utils.typedKeysOf)(rsc).reduce((acc, cur) => {
|
|
63
|
-
if (_effectApp.Predicate.isObject(rsc[cur]) && rsc[cur].Request) {
|
|
64
|
-
acc[cur] = rsc[cur];
|
|
65
|
-
}
|
|
66
|
-
return acc;
|
|
67
|
-
}, {});
|
|
68
|
-
const matchWithServices = action => {
|
|
69
|
-
return (services, f) => (req, ctx) => _effectApp.Effect.andThen((0, _Effect.allLower)(services), svc2 => f(req, {
|
|
70
|
-
...ctx,
|
|
71
|
-
...svc2,
|
|
72
|
-
Response: rsc[action].Response
|
|
73
|
-
}));
|
|
74
|
-
};
|
|
75
|
-
const controllers = controllers => {
|
|
76
|
-
const handlers = (0, _utils.typedKeysOf)(filtered).reduce((acc, cur) => {
|
|
77
|
-
if (cur === "meta") return acc;
|
|
78
|
-
const m = rsc.meta;
|
|
79
|
-
if (!m) throw new Error("Resource has no meta specified");
|
|
80
|
-
acc[cur] = handle(rsc[cur], m.moduleName + "." + cur)(controllers[cur]);
|
|
81
|
-
return acc;
|
|
82
|
-
}, {});
|
|
83
|
-
const mapped = (0, _utils.typedKeysOf)(handlers).reduce((acc, cur) => {
|
|
84
|
-
const handler = handlers[cur];
|
|
85
|
-
const req = handler.Request;
|
|
86
|
-
class Request extends req {
|
|
87
|
-
static path = "/" + handler.name + (req.path === "/" ? "" : req.path);
|
|
88
|
-
static method = req.method === "AUTO" ? _schema.REST.determineMethod(handler.name.split(".")[1], req) : req.method;
|
|
89
|
-
}
|
|
90
|
-
if (req.method === "AUTO") {
|
|
91
|
-
Object.assign(Request, {
|
|
92
|
-
[Request.method === "GET" || Request.method === "DELETE" ? "Query" : "Body"]: req.Auto
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
Object.assign(handler, {
|
|
96
|
-
Request
|
|
97
|
-
});
|
|
98
|
-
acc[cur] = match(handler, errorHandler(req), handleRequestEnv // TODO
|
|
99
|
-
);
|
|
100
|
-
return acc;
|
|
101
|
-
}, {});
|
|
102
|
-
return _http.HttpRouter.fromIterable(Object.values(mapped));
|
|
103
|
-
};
|
|
104
|
-
const r = {
|
|
105
|
-
controllers,
|
|
106
|
-
...(0, _utils.typedKeysOf)(filtered).reduce((prev, cur) => {
|
|
107
|
-
;
|
|
108
|
-
prev[cur] = (svcOrFnOrEffect, fnOrNone) => {
|
|
109
|
-
const stack = new Error().stack?.split("\n").slice(2).join("\n");
|
|
110
|
-
return _effectApp.Effect.isEffect(svcOrFnOrEffect) ? class {
|
|
111
|
-
static stack = stack;
|
|
112
|
-
static _tag = "d";
|
|
113
|
-
static handler = () => svcOrFnOrEffect;
|
|
114
|
-
} : typeof svcOrFnOrEffect === "function" ? class {
|
|
115
|
-
static stack = stack;
|
|
116
|
-
static _tag = "d";
|
|
117
|
-
static handler = (req, ctx) => svcOrFnOrEffect(req, {
|
|
118
|
-
...ctx,
|
|
119
|
-
Response: rsc[cur].Response
|
|
120
|
-
});
|
|
121
|
-
} : class {
|
|
122
|
-
static stack = stack;
|
|
123
|
-
static _tag = "d";
|
|
124
|
-
static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone);
|
|
125
|
-
};
|
|
126
|
-
};
|
|
127
|
-
prev[cur + "Raw"] = (svcOrFnOrEffect, fnOrNone) => {
|
|
128
|
-
const stack = new Error().stack?.split("\n").slice(2).join("\n");
|
|
129
|
-
return _effectApp.Effect.isEffect(svcOrFnOrEffect) ? class {
|
|
130
|
-
static stack = stack;
|
|
131
|
-
static _tag = "raw";
|
|
132
|
-
static handler = () => svcOrFnOrEffect;
|
|
133
|
-
} : typeof svcOrFnOrEffect === "function" ? class {
|
|
134
|
-
static stack = stack;
|
|
135
|
-
static _tag = "raw";
|
|
136
|
-
static handler = (req, ctx) => svcOrFnOrEffect(req, {
|
|
137
|
-
...ctx,
|
|
138
|
-
Response: rsc[cur].Response
|
|
139
|
-
});
|
|
140
|
-
} : class {
|
|
141
|
-
static stack = stack;
|
|
142
|
-
static _tag = "raw";
|
|
143
|
-
static handler = matchWithServices(cur)(svcOrFnOrEffect, fnOrNone);
|
|
144
|
-
};
|
|
145
|
-
};
|
|
146
|
-
return prev;
|
|
147
|
-
}, {})
|
|
148
|
-
};
|
|
149
|
-
return r;
|
|
150
|
-
}
|
|
151
|
-
const errorHandler = resourceRequest => {
|
|
152
|
-
return (req, res, r2) => (0, _routing.defaultErrorHandler)(req, res, _effectApp.Effect.catchTag(r2, "ParseError", _ => _effectApp.Effect.die(_)), resourceRequest.failure);
|
|
153
|
-
};
|
|
154
|
-
/**
|
|
155
|
-
* Gather all handlers of a module and attach them to the Server.
|
|
156
|
-
* If no `allowAnonymous` flag is on the Request, will require a valid authenticated user.
|
|
157
|
-
*/
|
|
158
|
-
function matchAll(handlers) {
|
|
159
|
-
const r = (0, _utils.typedKeysOf)(handlers).reduce((acc, cur) => {
|
|
160
|
-
return _http.HttpRouter.concat(acc, handlers[cur]);
|
|
161
|
-
}, _http.HttpRouter.empty);
|
|
162
|
-
return r;
|
|
163
|
-
}
|
|
164
|
-
return {
|
|
165
|
-
matchFor,
|
|
166
|
-
matchAll
|
|
167
|
-
};
|
|
168
|
-
};
|
|
169
|
-
exports.makeRouter = makeRouter;
|
|
170
|
-
//# sourceMappingURL=router.cjs.map
|
package/_cjs/router.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"router.cjs","names":["_Effect","require","_utils","_routing","_effectApp","_http","_schema","makeRouter","handleRequestEnv","match","requestHandler","errorHandler","middleware","middlewareLayer","undefined","handler","makeRequestLayer","makeRequestHandler","route","HttpRouter","makeRoute","Request","method","path","pipe","Effect","withSpan","name","captureStackTrace","stack","handle","_","adaptResponse","S","REST","extractRequest","Response","extractResponse","h","ResponseOpenApi","Context","CTX","rt","_tag","matchFor","rsc","filtered","typedKeysOf","reduce","acc","cur","Predicate","isObject","matchWithServices","action","services","f","req","ctx","andThen","allLower","svc2","controllers","handlers","m","meta","Error","moduleName","mapped","determineMethod","split","Object","assign","Auto","fromIterable","values","r","prev","svcOrFnOrEffect","fnOrNone","slice","join","isEffect","resourceRequest","res","r2","defaultErrorHandler","catchTag","die","failure","matchAll","concat","empty","exports"],"sources":["../src/router.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { ValidationError } from "@effect-app/infra/errors";
|
|
2
|
-
import type { Struct } from "@effect/schema/Schema";
|
|
3
|
-
import * as S from "@effect/schema/Schema";
|
|
4
|
-
import type { Context } from "effect-app";
|
|
5
|
-
import { Effect, Option } from "effect-app";
|
|
6
|
-
import type { REST } from "effect-app/schema";
|
|
7
|
-
import type { Simplify } from "effect/Types";
|
|
8
|
-
export interface ReqHandler<Req, R, E, Res, ReqSchema extends S.Schema.Any, ResSchema extends S.Schema.Any, CTX = any, Context = any> {
|
|
9
|
-
h: (r: Req, ctx: CTX) => Effect<Res, E, R>;
|
|
10
|
-
Request: ReqSchema;
|
|
11
|
-
Response: ResSchema;
|
|
12
|
-
ResponseOpenApi: any;
|
|
13
|
-
name: string;
|
|
14
|
-
CTX: CTX;
|
|
15
|
-
Context: Context;
|
|
16
|
-
rt: "raw" | "d";
|
|
17
|
-
}
|
|
18
|
-
export type ReqFromSchema<ReqSchema extends S.Schema<any, any, any>> = S.Schema.Type<ReqSchema>;
|
|
19
|
-
export type Extr<T> = T extends {
|
|
20
|
-
Model: S.Schema<any, any, any>;
|
|
21
|
-
} ? T["Model"] : T extends S.Schema<any, any, any> ? T : never;
|
|
22
|
-
export type ResFromSchema<ResSchema> = S.Schema.Type<Extr<ResSchema>>;
|
|
23
|
-
export type _R<T extends Effect<any, any, any>> = [T] extends [
|
|
24
|
-
Effect<any, any, infer R>
|
|
25
|
-
] ? R : never;
|
|
26
|
-
export type _E<T extends Effect<any, any, any>> = [T] extends [
|
|
27
|
-
Effect<any, infer E, any>
|
|
28
|
-
] ? E : never;
|
|
29
|
-
export type Encode<A, E> = (a: A) => E;
|
|
30
|
-
export declare function decodeErrors(x: unknown): unknown[];
|
|
31
|
-
export declare function parseRequestParams<PathA extends Struct.Fields, CookieA extends Struct.Fields, QueryA extends Struct.Fields, BodyA extends Struct.Fields, HeaderA extends Struct.Fields>(parsers: RequestParsers<PathA, CookieA, QueryA, BodyA, HeaderA>): ({ body, cookies, headers, params, query }: {
|
|
32
|
-
body: unknown;
|
|
33
|
-
cookies: unknown;
|
|
34
|
-
headers: unknown;
|
|
35
|
-
params: unknown;
|
|
36
|
-
query: unknown;
|
|
37
|
-
}) => Effect.Effect<{
|
|
38
|
-
body: Option<Simplify<Struct.Type<BodyA>>>;
|
|
39
|
-
cookie: Option<Simplify<Struct.Type<CookieA>>>;
|
|
40
|
-
headers: Option<Simplify<Struct.Type<HeaderA>>>;
|
|
41
|
-
path: Option<Simplify<Struct.Type<PathA>>>;
|
|
42
|
-
query: Option<Simplify<Struct.Type<QueryA>>>;
|
|
43
|
-
}, ValidationError, never>;
|
|
44
|
-
export declare function makeRequestParsers<R, M, PathA extends Struct.Fields, CookieA extends Struct.Fields, QueryA extends Struct.Fields, BodyA extends Struct.Fields, HeaderA extends Struct.Fields, ReqA extends PathA & QueryA & BodyA, ResA extends Struct.Fields, Errors, PPath extends `/${string}`, CTX, Context, Config>(Request: RequestHandler<R, M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, Errors, PPath, CTX, Context, Config>["Request"]): RequestParsers<PathA, CookieA, QueryA, BodyA, HeaderA>;
|
|
45
|
-
type Decode<A> = (u: unknown) => Effect<A, unknown>;
|
|
46
|
-
export interface RequestParsers<PathA extends Struct.Fields, CookieA extends Struct.Fields, QueryA extends Struct.Fields, BodyA extends Struct.Fields, HeaderA extends Struct.Fields> {
|
|
47
|
-
parseHeaders: Decode<Option<Simplify<S.Struct.Type<HeaderA>>>>;
|
|
48
|
-
parseQuery: Decode<Option<Simplify<S.Struct.Type<QueryA>>>>;
|
|
49
|
-
parseBody: Decode<Option<Simplify<S.Struct.Type<BodyA>>>>;
|
|
50
|
-
parsePath: Decode<Option<Simplify<S.Struct.Type<PathA>>>>;
|
|
51
|
-
parseCookie: Decode<Option<Simplify<S.Struct.Type<CookieA>>>>;
|
|
52
|
-
}
|
|
53
|
-
export type EffectDeps<A> = {
|
|
54
|
-
[K in keyof A as A[K] extends Effect<any, any, any> ? K : never]: A[K] extends Effect<any, any, any> ? A[K] : never;
|
|
55
|
-
};
|
|
56
|
-
export type Request<M, PathA extends Struct.Fields, CookieA extends Struct.Fields, QueryA extends Struct.Fields, BodyA extends Struct.Fields, HeaderA extends Struct.Fields, ReqA extends PathA & QueryA & BodyA, PPath extends `/${string}`> = REST.ReqRes<any, any, any> & {
|
|
57
|
-
method: REST.Methods.Rest;
|
|
58
|
-
path: PPath;
|
|
59
|
-
Cookie?: CookieA;
|
|
60
|
-
Path?: PathA;
|
|
61
|
-
Body?: BodyA;
|
|
62
|
-
Query?: QueryA;
|
|
63
|
-
Headers?: HeaderA;
|
|
64
|
-
Tag: Context.Tag<M, M>;
|
|
65
|
-
ReqA?: ReqA;
|
|
66
|
-
};
|
|
67
|
-
export interface RequestHandlerBase<R, M, PathA extends Struct.Fields, CookieA extends Struct.Fields, QueryA extends Struct.Fields, BodyA extends Struct.Fields, HeaderA extends Struct.Fields, ReqA extends PathA & QueryA & BodyA, ResA extends Struct.Fields, ResE, PPath extends `/${string}`, Config> {
|
|
68
|
-
adaptResponse?: any;
|
|
69
|
-
h: (i: PathA & QueryA & BodyA & {}) => Effect<ResA, ResE, R>;
|
|
70
|
-
Request: Request<M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, PPath>;
|
|
71
|
-
Response: REST.ReqRes<any, any, any>;
|
|
72
|
-
ResponseOpenApi?: any;
|
|
73
|
-
config: Config;
|
|
74
|
-
name: string;
|
|
75
|
-
rt: "raw" | "d";
|
|
76
|
-
}
|
|
77
|
-
export interface RequestHandler<R, M, PathA extends Struct.Fields, CookieA extends Struct.Fields, QueryA extends Struct.Fields, BodyA extends Struct.Fields, HeaderA extends Struct.Fields, ReqA extends PathA & QueryA & BodyA, ResA extends Struct.Fields, ResE, PPath extends `/${string}`, CTX, Context, Config> {
|
|
78
|
-
adaptResponse?: any;
|
|
79
|
-
h: (i: PathA & QueryA & BodyA & {}, ctx: any) => Effect<ResA, ResE, R>;
|
|
80
|
-
Request: Request<M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, PPath> & Config;
|
|
81
|
-
Response: REST.ReqRes<any, any, any>;
|
|
82
|
-
ResponseOpenApi?: any;
|
|
83
|
-
name: string;
|
|
84
|
-
CTX: CTX;
|
|
85
|
-
rt: "raw" | "d";
|
|
86
|
-
Context: Context;
|
|
87
|
-
}
|
|
88
|
-
export interface RequestHandlerOrig<R, M, PathA extends Struct.Fields, CookieA extends Struct.Fields, QueryA extends Struct.Fields, BodyA extends Struct.Fields, HeaderA extends Struct.Fields, ReqA extends PathA & QueryA & BodyA, ResA extends Struct.Fields, ResE, PPath extends `/${string}`> {
|
|
89
|
-
adaptResponse?: any;
|
|
90
|
-
h: (i: PathA & QueryA & BodyA & {}) => Effect<ResA, ResE, R>;
|
|
91
|
-
Request: Request<M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, PPath>;
|
|
92
|
-
Response: REST.ReqRes<any, any, any>;
|
|
93
|
-
name: string;
|
|
94
|
-
ResponseOpenApi?: any;
|
|
95
|
-
}
|
|
96
|
-
export {};
|
|
97
|
-
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/api/routing/base.ts"],"names":[],"mappings":"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"}
|
package/dist/api/routing/base.js
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
3
|
-
import { ValidationError } from "@effect-app/infra/errors";
|
|
4
|
-
import * as S from "@effect/schema/Schema";
|
|
5
|
-
import { Cause, Effect, Exit, Option } from "effect-app";
|
|
6
|
-
// function getErrorMessage(current: ContextEntry) {
|
|
7
|
-
// switch (current.type.name) {
|
|
8
|
-
// case "NonEmptyString":
|
|
9
|
-
// return "Must not be empty"
|
|
10
|
-
// }
|
|
11
|
-
// if (current.type.name?.startsWith("NonEmptyReadonlyArray<")) {
|
|
12
|
-
// return "Must not be empty"
|
|
13
|
-
// }
|
|
14
|
-
// return `Invalid value specified`
|
|
15
|
-
// }
|
|
16
|
-
export function decodeErrors(x) {
|
|
17
|
-
return [x];
|
|
18
|
-
}
|
|
19
|
-
// const ValidationApplicative = Effect.getValidationApplicative(
|
|
20
|
-
// makeAssociative<ReadonlyArray<{ type: string; errors: ReturnType<typeof decodeErrors> }>>(
|
|
21
|
-
// (l, r) => l.concat(r)
|
|
22
|
-
// )
|
|
23
|
-
// )
|
|
24
|
-
// const structValidation = DSL.structF(ValidationApplicative)
|
|
25
|
-
export function parseRequestParams(parsers) {
|
|
26
|
-
const handleParse = (effect) => effect.pipe(Effect.exit, Effect
|
|
27
|
-
.flatMap((_) => Exit.isFailure(_) && !Cause.isFailure(_.cause)
|
|
28
|
-
? Effect.failCauseSync(() => _.cause)
|
|
29
|
-
: Effect.sync(() => Exit.isSuccess(_)
|
|
30
|
-
? { _tag: "Success", value: _.value }
|
|
31
|
-
: { _tag: "Failure", errors: Cause.failures(_.cause) })));
|
|
32
|
-
return ({ body, cookies, headers, params, query }) => Effect
|
|
33
|
-
.all({
|
|
34
|
-
body: parsers
|
|
35
|
-
.parseBody(body)
|
|
36
|
-
.pipe(handleParse),
|
|
37
|
-
cookie: parsers
|
|
38
|
-
.parseCookie(cookies)
|
|
39
|
-
.pipe(handleParse),
|
|
40
|
-
headers: parsers
|
|
41
|
-
.parseHeaders(headers)
|
|
42
|
-
.pipe(handleParse),
|
|
43
|
-
query: parsers
|
|
44
|
-
.parseQuery(query)
|
|
45
|
-
.pipe(handleParse),
|
|
46
|
-
path: parsers
|
|
47
|
-
.parsePath(params)
|
|
48
|
-
.pipe(handleParse)
|
|
49
|
-
})
|
|
50
|
-
.pipe(Effect
|
|
51
|
-
.flatMap(({ body, cookie, headers, path, query }) => {
|
|
52
|
-
const errors = [];
|
|
53
|
-
if (body._tag === "Failure") {
|
|
54
|
-
errors.push(makeError("body")(body.errors));
|
|
55
|
-
}
|
|
56
|
-
if (cookie._tag === "Failure") {
|
|
57
|
-
errors.push(makeError("cookie")(cookie.errors));
|
|
58
|
-
}
|
|
59
|
-
if (headers._tag === "Failure") {
|
|
60
|
-
errors.push(makeError("headers")(headers.errors));
|
|
61
|
-
}
|
|
62
|
-
if (path._tag === "Failure") {
|
|
63
|
-
errors.push(makeError("path")(path.errors));
|
|
64
|
-
}
|
|
65
|
-
if (query._tag === "Failure") {
|
|
66
|
-
errors.push(makeError("query")(query.errors));
|
|
67
|
-
}
|
|
68
|
-
if (errors.length) {
|
|
69
|
-
return new ValidationError({ errors });
|
|
70
|
-
}
|
|
71
|
-
return Effect.sync(() => ({
|
|
72
|
-
body: body.value,
|
|
73
|
-
cookie: cookie.value,
|
|
74
|
-
headers: headers.value,
|
|
75
|
-
path: path.value,
|
|
76
|
-
query: query.value
|
|
77
|
-
}));
|
|
78
|
-
}));
|
|
79
|
-
}
|
|
80
|
-
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
81
|
-
// function mapErrors_<E, NE, NER extends Record<string, Effect<any, E, any>>>(
|
|
82
|
-
// t: NER, // TODO: enforce non empty
|
|
83
|
-
// mapErrors: (k: keyof NER) => (err: E) => NE
|
|
84
|
-
// ): {
|
|
85
|
-
// [K in keyof NER]: Effect<_R<NER[K]>, NE, Effect.Success<NER[K]>>
|
|
86
|
-
// } {
|
|
87
|
-
// return typedKeysOf(t).reduce(
|
|
88
|
-
// (prev, cur) => {
|
|
89
|
-
// prev[cur] = t[cur].mapError(mapErrors(cur))
|
|
90
|
-
// return prev
|
|
91
|
-
// },
|
|
92
|
-
// {} as {
|
|
93
|
-
// [K in keyof NER]: Effect<_R<NER[K]>, NE, Effect.Success<NER[K]>>
|
|
94
|
-
// }
|
|
95
|
-
// )
|
|
96
|
-
// }
|
|
97
|
-
function makeError(type) {
|
|
98
|
-
return (e) => [{ type, errors: decodeErrors(e) }];
|
|
99
|
-
}
|
|
100
|
-
export function makeRequestParsers(Request) {
|
|
101
|
-
const ph = Effect.sync(() => Option
|
|
102
|
-
.fromNullable(Request.Headers)
|
|
103
|
-
.pipe(Option.map((s) => s), Option.map(S.decodeUnknown)));
|
|
104
|
-
const parseHeaders = (u) => Effect.flatMapOption(ph, (d) => d(u));
|
|
105
|
-
const pq = Effect.sync(() => Option
|
|
106
|
-
.fromNullable(Request.Query)
|
|
107
|
-
.pipe(Option.map((s) => s), Option.map(S.decodeUnknown)));
|
|
108
|
-
const parseQuery = (u) => Effect.flatMapOption(pq, (d) => d(u));
|
|
109
|
-
const pb = Effect.sync(() => Option
|
|
110
|
-
.fromNullable(Request.Body)
|
|
111
|
-
.pipe(Option.map((s) => s), Option.map(S.decodeUnknown)));
|
|
112
|
-
const parseBody = (u) => Effect.flatMapOption(pb, (d) => d(u));
|
|
113
|
-
const pp = Effect.sync(() => Option
|
|
114
|
-
.fromNullable(Request.Path)
|
|
115
|
-
.pipe(Option.map((s) => s), Option.map(S.decodeUnknown)));
|
|
116
|
-
const parsePath = (u) => Effect.flatMapOption(pp, (d) => d(u));
|
|
117
|
-
const pc = Effect.sync(() => Option
|
|
118
|
-
.fromNullable(Request.Cookie)
|
|
119
|
-
.pipe(Option.map((s) => s), Option.map(S.decodeUnknown)));
|
|
120
|
-
const parseCookie = (u) => Effect.flatMapOption(pc, (d) => d(u));
|
|
121
|
-
return {
|
|
122
|
-
parseBody,
|
|
123
|
-
parseCookie,
|
|
124
|
-
parseHeaders,
|
|
125
|
-
parsePath,
|
|
126
|
-
parseQuery
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcm91dGluZy9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUV2RCxpREFBaUQ7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBRTFELE9BQU8sS0FBSyxDQUFDLE1BQU0sdUJBQXVCLENBQUE7QUFFMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQTRDeEQsb0RBQW9EO0FBQ3BELGlDQUFpQztBQUNqQyw2QkFBNkI7QUFDN0IsbUNBQW1DO0FBQ25DLE1BQU07QUFDTixtRUFBbUU7QUFDbkUsaUNBQWlDO0FBQ2pDLE1BQU07QUFDTixxQ0FBcUM7QUFDckMsSUFBSTtBQUNKLE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBVTtJQUNyQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDWixDQUFDO0FBRUQsaUVBQWlFO0FBQ2pFLCtGQUErRjtBQUMvRiw0QkFBNEI7QUFDNUIsTUFBTTtBQUNOLElBQUk7QUFFSiw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLGtCQUFrQixDQU9oQyxPQUErRDtJQUUvRCxNQUFNLFdBQVcsR0FBRyxDQUFVLE1BQXVCLEVBQUUsRUFBRSxDQUN2RCxNQUFNLENBQUMsSUFBSSxDQUNULE1BQU0sQ0FBQyxJQUFJLEVBQ1gsTUFBTTtTQUNILE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1QyxDQUFDLENBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFvQztRQUN6RSxDQUFDLENBQUMsTUFBTSxD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
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { Schema } from "@effect-app/schema";
|
|
2
|
-
import { Effect } from "effect-app";
|
|
3
|
-
import type { SupportedErrors } from "effect-app/client/errors";
|
|
4
|
-
import { ValidationError } from "effect-app/client/errors";
|
|
5
|
-
import { type HttpServerRequest, HttpServerResponse } from "effect-app/http";
|
|
6
|
-
import type { InsufficientScopeError, InvalidRequestError, InvalidTokenError, UnauthorizedError as JWTUnauthorizedError } from "express-oauth2-jwt-bearer";
|
|
7
|
-
declare const JWTError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
|
|
8
|
-
readonly _tag: "JWTError";
|
|
9
|
-
};
|
|
10
|
-
export declare class JWTError extends JWTError_base<{
|
|
11
|
-
error: InsufficientScopeError | InvalidRequestError | InvalidTokenError | JWTUnauthorizedError;
|
|
12
|
-
}> {
|
|
13
|
-
}
|
|
14
|
-
export declare function defaultBasicErrorHandler<R>(_req: HttpServerRequest.HttpServerRequest, res: HttpServerResponse.HttpServerResponse, r2: Effect<HttpServerResponse.HttpServerResponse, ValidationError, R>): Effect.Effect<HttpServerResponse.HttpServerResponse, never, R>;
|
|
15
|
-
export declare function defaultErrorHandler<R, A extends {
|
|
16
|
-
_tag: string;
|
|
17
|
-
} = never>(req: HttpServerRequest.HttpServerRequest, res: HttpServerResponse.HttpServerResponse, r2: Effect<HttpServerResponse.HttpServerResponse, SupportedErrors | JWTError, R>, customErrorSchema?: Schema<A, unknown>): Effect.Effect<HttpServerResponse.HttpServerResponse, never, R>;
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=defaultErrorHandler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaultErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/api/routing/defaultErrorHandler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAe,MAAM,EAAe,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAOL,eAAe,EAChB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAyB,KAAK,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACnG,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,IAAI,oBAAoB,EAC1C,MAAM,2BAA2B,CAAA;;;;AAGlC,qBAAa,QAAS,SAAQ,cAA6B;IACzD,KAAK,EACD,sBAAsB,GACtB,mBAAmB,GACnB,iBAAiB,GACjB,oBAAoB,CAAA;CACzB,CAAC;CAAG;AAIL,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,EACzC,GAAG,EAAE,kBAAkB,CAAC,kBAAkB,EAC1C,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,eAAe,EAAE,CAAC,CAAC,kEAoBtE;AAKD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,EACvE,GAAG,EAAE,iBAAiB,CAAC,iBAAiB,EACxC,GAAG,EAAE,kBAAkB,CAAC,kBAAkB,EAC1C,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,eAAe,GAAG,QAAQ,EAAE,CAAC,CAAC,EAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,kEA0EvC"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { logError } from "@effect-app/infra/errorReporter";
|
|
2
|
-
import { setBody, setStatus } from "@effect/platform/HttpServerResponse";
|
|
3
|
-
import { Cause, Data, Effect, S, Schedule } from "effect-app";
|
|
4
|
-
import { InvalidStateError, NotFoundError, NotLoggedInError, OptimisticConcurrencyException, ServiceUnavailableError, UnauthorizedError, ValidationError } from "effect-app/client/errors";
|
|
5
|
-
import { HttpBody, HttpHeaders, HttpServerResponse } from "effect-app/http";
|
|
6
|
-
import { InfraLogger } from "../../logger.js";
|
|
7
|
-
export class JWTError extends Data.TaggedClass("JWTError") {
|
|
8
|
-
}
|
|
9
|
-
const logRequestError = logError("Request");
|
|
10
|
-
export function defaultBasicErrorHandler(_req, res, r2) {
|
|
11
|
-
const sendError = (code) => (body) => Effect.sync(() => setBody(res, HttpBody.unsafeJson(body)).pipe(setStatus(code)));
|
|
12
|
-
return r2.pipe(Effect.tapErrorCause((cause) => Cause.isFailure(cause) ? logRequestError(cause) : Effect.void), Effect.catchTag("ValidationError", (err) => sendError(400)(err.errors)), Effect
|
|
13
|
-
// final catch all; expecting never so that unhandled known errors will show up
|
|
14
|
-
.catchAll((err) => InfraLogger
|
|
15
|
-
.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err)
|
|
16
|
-
.pipe(Effect.map(() => err), Effect.flatMap(Effect.die))));
|
|
17
|
-
}
|
|
18
|
-
const optimisticConcurrencySchedule = Schedule.once
|
|
19
|
-
&& Schedule.recurWhile((a) => a._tag === "OptimisticConcurrencyException");
|
|
20
|
-
export function defaultErrorHandler(req, res, r2, customErrorSchema) {
|
|
21
|
-
const r3 = req.method === "PATCH"
|
|
22
|
-
? Effect.retry(r2, optimisticConcurrencySchedule)
|
|
23
|
-
: r2;
|
|
24
|
-
const sendError = (code, schema) => (body) => S
|
|
25
|
-
.encode(schema)(body)
|
|
26
|
-
.pipe(Effect.orDie, Effect.andThen((body) => res.pipe(setStatus(code), setBody(HttpBody.unsafeJson(body)))));
|
|
27
|
-
return r3
|
|
28
|
-
.pipe(Effect.tapErrorCause((cause) => Cause.isFailure(cause) ? logRequestError(cause) : Effect.void), Effect.tapErrorCause((cause) => Effect.annotateCurrentSpan({
|
|
29
|
-
"exception.escaped": true,
|
|
30
|
-
"exception.message": "Request Error",
|
|
31
|
-
"exception.stacktrace": Cause.pretty(cause),
|
|
32
|
-
"exception.type": Cause.squashWith(cause, (_) => _._tag
|
|
33
|
-
// Predicate.hasProperty(_, "_tag")
|
|
34
|
-
// ? _._tag
|
|
35
|
-
// : Predicate.hasProperty(_, "name")
|
|
36
|
-
// ? _.name
|
|
37
|
-
// // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
38
|
-
// : `${_}`
|
|
39
|
-
),
|
|
40
|
-
"error.type": cause._tag
|
|
41
|
-
})), Effect
|
|
42
|
-
.catchTags({
|
|
43
|
-
"JWTError": (err) => Effect.succeed(HttpServerResponse.unsafeJson({ message: err.error.message }, {
|
|
44
|
-
status: err
|
|
45
|
-
.error
|
|
46
|
-
.status,
|
|
47
|
-
headers: HttpHeaders.fromInput(err.error.headers)
|
|
48
|
-
})),
|
|
49
|
-
"ValidationError": sendError(400, ValidationError),
|
|
50
|
-
"NotFoundError": sendError(404, NotFoundError),
|
|
51
|
-
"NotLoggedInError": sendError(401, NotLoggedInError),
|
|
52
|
-
"UnauthorizedError": sendError(403, UnauthorizedError),
|
|
53
|
-
"InvalidStateError": sendError(422, InvalidStateError),
|
|
54
|
-
"ServiceUnavailableError": sendError(503, ServiceUnavailableError),
|
|
55
|
-
// 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
|
|
56
|
-
"OptimisticConcurrencyException": sendError(412, OptimisticConcurrencyException)
|
|
57
|
-
}), customErrorSchema
|
|
58
|
-
? Effect.catchAll((x) => S.is(customErrorSchema)(x)
|
|
59
|
-
// TODO: customize error code
|
|
60
|
-
? sendError(422, customErrorSchema)(x)
|
|
61
|
-
: Effect.fail(x))
|
|
62
|
-
: (x) => x, Effect
|
|
63
|
-
// final catch all; expecting never so that unhandled known errors will show up
|
|
64
|
-
.catchAll((err) => InfraLogger
|
|
65
|
-
.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err)
|
|
66
|
-
.pipe(Effect.map(() => err), Effect.flatMap(Effect.die))));
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcm91dGluZy9kZWZhdWx0RXJyb3JIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUUxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTdELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixlQUFlLEVBQ2hCLE1BQU0sMEJBQTBCLENBQUE7QUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQTBCLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFPbkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTdDLE1BQU0sT0FBTyxRQUFTLFNBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBTXZEO0NBQUc7QUFFTCxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUE7QUFFM0MsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxJQUF5QyxFQUN6QyxHQUEwQyxFQUMxQyxFQUFxRTtJQUVyRSxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUNwRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENB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
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { EnforceNonEmptyRecord } from "@effect-app/core/utils";
|
|
2
|
-
import { RequestFiberSet } from "@effect-app/infra-adapters/RequestFiberSet";
|
|
3
|
-
import type { ValidationError } from "@effect-app/infra/errors";
|
|
4
|
-
import type { RequestContextContainer } from "@effect-app/infra/services/RequestContextContainer";
|
|
5
|
-
import type { ContextMapContainer } from "@effect-app/infra/services/Store/ContextMapContainer";
|
|
6
|
-
import type { Struct } from "@effect/schema/Schema";
|
|
7
|
-
import type { Layer } from "effect-app";
|
|
8
|
-
import { Effect, FiberRef } from "effect-app";
|
|
9
|
-
import type { HttpServerError } from "effect-app/http";
|
|
10
|
-
import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect-app/http";
|
|
11
|
-
import type { RequestHandler, RequestHandlerBase } from "./base.js";
|
|
12
|
-
export declare const RequestSettings: FiberRef.FiberRef<{
|
|
13
|
-
verbose: boolean;
|
|
14
|
-
}>;
|
|
15
|
-
export type Middleware<R, M, PathA extends Struct.Fields, CookieA extends Struct.Fields, QueryA extends Struct.Fields, BodyA extends Struct.Fields, HeaderA extends Struct.Fields, ReqA extends PathA & QueryA & BodyA, ResA extends Struct.Fields, ResE, MiddlewareE, PPath extends `/${string}`, R2, PR, CTX, Context, Config> = (handler: RequestHandler<R, M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, ResE, PPath, CTX, Context, Config>) => {
|
|
16
|
-
handler: RequestHandler<R2 | PR | RequestContextContainer | ContextMapContainer | RequestFiberSet, M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, ResE, PPath, CTX, Context, Config>;
|
|
17
|
-
makeRequestLayer: Layer<PR, MiddlewareE, R2>;
|
|
18
|
-
};
|
|
19
|
-
export declare function makeRequestHandler<R, M, PathA extends Struct.Fields, CookieA extends Struct.Fields, QueryA extends Struct.Fields, BodyA extends Struct.Fields, HeaderA extends Struct.Fields, ReqA extends PathA & QueryA & BodyA, ResA extends Struct.Fields, ResE, MiddlewareE, R2, PR, RErr, PPath extends `/${string}`, Config>(handler: RequestHandlerBase<R, M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, ResE, PPath, Config>, errorHandler: <R>(req: HttpServerRequest.HttpServerRequest, res: HttpServerResponse.HttpServerResponse, r2: Effect<HttpServerResponse.HttpServerResponse, ValidationError | ResE | MiddlewareE, R>) => Effect<HttpServerResponse.HttpServerResponse, never, RErr | R>, middlewareLayer?: Layer<PR, MiddlewareE, R2>): Effect<HttpServerResponse.HttpServerResponse, HttpServerError.RequestError, HttpRouter.RouteContext | HttpServerRequest.ParsedSearchParams | HttpServerRequest.HttpServerRequest | RequestContextContainer | ContextMapContainer | RequestFiberSet | RErr | Exclude<Exclude<R, EnforceNonEmptyRecord<M>>, PR> | R2>;
|
|
20
|
-
//# sourceMappingURL=makeRequestHandler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"makeRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/api/routing/makeRequestHandler.ts"],"names":[],"mappings":"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"}
|