@effect-app/infra 0.133.0-next.50 → 0.133.0-next.52
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 +16 -0
- package/_cjs/api/http.cjs +42 -0
- package/_cjs/api/http.cjs.map +1 -0
- package/_cjs/api/routing/base.cjs +169 -0
- package/_cjs/api/routing/base.cjs.map +1 -0
- package/_cjs/api/routing/defaultErrorHandler.cjs +50 -0
- package/_cjs/api/routing/defaultErrorHandler.cjs.map +1 -0
- package/_cjs/api/routing/makeRequestHandler.cjs +134 -0
- package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -0
- package/_cjs/api/routing/match.cjs +45 -0
- package/_cjs/api/routing/match.cjs.map +1 -0
- package/_cjs/api/routing.cjs +50 -0
- package/_cjs/api/routing.cjs.map +1 -0
- package/_src/api/http.ts +26 -0
- package/_src/api/routing/base.ts +476 -0
- package/_src/api/routing/defaultErrorHandler.ts +83 -0
- package/_src/api/routing/makeRequestHandler.ts +278 -0
- package/_src/api/routing/match.ts +119 -0
- package/_src/api/routing.ts +11 -0
- package/dist/api/http.d.ts +16 -0
- package/dist/api/http.d.ts.map +1 -0
- package/dist/api/http.js +12 -0
- package/dist/api/routing/base.d.ts +117 -0
- package/dist/api/routing/base.d.ts.map +1 -0
- package/dist/api/routing/base.js +137 -0
- package/dist/api/routing/defaultErrorHandler.d.ts +16 -0
- package/dist/api/routing/defaultErrorHandler.d.ts.map +1 -0
- package/dist/api/routing/defaultErrorHandler.js +42 -0
- package/dist/api/routing/makeRequestHandler.d.ts +20 -0
- package/dist/api/routing/makeRequestHandler.d.ts.map +1 -0
- package/dist/api/routing/makeRequestHandler.js +121 -0
- package/dist/api/routing/match.d.ts +12 -0
- package/dist/api/routing/match.d.ts.map +1 -0
- package/dist/api/routing/match.js +31 -0
- package/dist/api/routing.d.ts +5 -0
- package/dist/api/routing.d.ts.map +1 -0
- package/dist/api/routing.js +8 -0
- package/dist/services/Repository.d.ts +2 -2
- package/dist/services/Repository.d.ts.map +1 -1
- package/package.json +67 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 0.133.0-next.52
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 19dc3b1: ext
|
|
8
|
+
- Updated dependencies [19dc3b1]
|
|
9
|
+
- @effect-app/prelude@0.107.0-next.43
|
|
10
|
+
- @effect-app/schema@0.150.0-next.28
|
|
11
|
+
- @effect-app/infra-adapters@0.85.0-next.43
|
|
12
|
+
|
|
13
|
+
## 0.133.0-next.51
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- 6208553: re-add routing
|
|
18
|
+
|
|
3
19
|
## 0.133.0-next.50
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.HttpHeaders = void 0;
|
|
7
|
+
Object.defineProperty(exports, "HttpRequestError", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _ServerError.RequestError;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "HttpRouteContext", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () {
|
|
16
|
+
return _Router.RouteContext;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
exports.HttpServer = void 0;
|
|
20
|
+
Object.defineProperty(exports, "HttpServerRequest", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () {
|
|
23
|
+
return _ServerRequest.ServerRequest;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
exports.unifyRoute = unifyRoute;
|
|
27
|
+
var _HttpHeaders = _interopRequireWildcard(require("@effect/platform/Http/Headers"));
|
|
28
|
+
exports.HttpHeaders = _HttpHeaders;
|
|
29
|
+
var _Router = require("@effect/platform/Http/Router");
|
|
30
|
+
var _ServerError = require("@effect/platform/Http/ServerError");
|
|
31
|
+
var _ServerRequest = require("@effect/platform/Http/ServerRequest");
|
|
32
|
+
var _HttpServer = _interopRequireWildcard(require("@effect/platform/Http/Server"));
|
|
33
|
+
exports.HttpServer = _HttpServer;
|
|
34
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
35
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
36
|
+
/**
|
|
37
|
+
* @tsplus unify effect/platform/Http/Router/Route
|
|
38
|
+
*/
|
|
39
|
+
function unifyRoute(self) {
|
|
40
|
+
return self;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=http.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.cjs","names":["_Router","require","_ServerError","_ServerRequest","_HttpServer","_interopRequireWildcard","exports","HttpServer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","unifyRoute","self"],"sources":["../../_src/api/http.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAAwF,IAAAG,WAAA,GAAAC,uBAAA,CAAAJ,OAAA;AAAAK,OAAA,CAAAC,UAAA,GAAAH,WAAA;AAAA,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAKxF;;;AAGM,SAAUY,UAAUA,CACxBC,IAAO;EAKP,OAAOA,IAAI;AACb"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.decodeErrors = decodeErrors;
|
|
7
|
+
exports.makeRequestParsers = makeRequestParsers;
|
|
8
|
+
exports.parseRequestParams = parseRequestParams;
|
|
9
|
+
exports.respondSuccess = respondSuccess;
|
|
10
|
+
var tsplus_module_1 = _interopRequireWildcard(require("effect/Effect"));
|
|
11
|
+
var tsplus_module_2 = _interopRequireWildcard(require("effect/Exit"));
|
|
12
|
+
var tsplus_module_3 = _interopRequireWildcard(require("effect/Cause"));
|
|
13
|
+
var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/core/Function"));
|
|
14
|
+
var tsplus_module_5 = _interopRequireWildcard(require("effect/Option"));
|
|
15
|
+
var tsplus_module_6 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
16
|
+
var S = _interopRequireWildcard(require("@effect-app/schema"));
|
|
17
|
+
var _errors = require("@effect-app/infra/errors");
|
|
18
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
21
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
22
|
+
|
|
23
|
+
// function getErrorMessage(current: ContextEntry) {
|
|
24
|
+
// switch (current.type.name) {
|
|
25
|
+
// case "NonEmptyString":
|
|
26
|
+
// return "Must not be empty"
|
|
27
|
+
// }
|
|
28
|
+
// if (current.type.name?.startsWith("NonEmptyReadonlyArray<")) {
|
|
29
|
+
// return "Must not be empty"
|
|
30
|
+
// }
|
|
31
|
+
// return `Invalid value specified`
|
|
32
|
+
// }
|
|
33
|
+
function decodeErrors(x) {
|
|
34
|
+
return [x];
|
|
35
|
+
}
|
|
36
|
+
// const ValidationApplicative = Effect.getValidationApplicative(
|
|
37
|
+
// makeAssociative<ReadonlyArray<{ type: string; errors: ReturnType<typeof decodeErrors> }>>(
|
|
38
|
+
// (l, r) => l.concat(r)
|
|
39
|
+
// )
|
|
40
|
+
// )
|
|
41
|
+
// const structValidation = DSL.structF(ValidationApplicative)
|
|
42
|
+
function parseRequestParams(parsers) {
|
|
43
|
+
return ({
|
|
44
|
+
body,
|
|
45
|
+
cookies,
|
|
46
|
+
headers,
|
|
47
|
+
params,
|
|
48
|
+
query
|
|
49
|
+
}) => tsplus_module_1.flatMap(tsplus_module_1.all({
|
|
50
|
+
body: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers.parseBody(body)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.failCauseSync(() => _.cause) : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_) ? {
|
|
51
|
+
_tag: "Success",
|
|
52
|
+
value: _.value
|
|
53
|
+
} : {
|
|
54
|
+
_tag: "Failure",
|
|
55
|
+
errors: tsplus_module_3.failures(_.cause)
|
|
56
|
+
})),
|
|
57
|
+
cookie: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers.parseCookie(cookies)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.failCauseSync(() => _.cause) : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_) ? {
|
|
58
|
+
_tag: "Success",
|
|
59
|
+
value: _.value
|
|
60
|
+
} : {
|
|
61
|
+
_tag: "Failure",
|
|
62
|
+
errors: tsplus_module_3.failures(_.cause)
|
|
63
|
+
})),
|
|
64
|
+
headers: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers.parseHeaders(headers)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.failCauseSync(() => _.cause) : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_) ? {
|
|
65
|
+
_tag: "Success",
|
|
66
|
+
value: _.value
|
|
67
|
+
} : {
|
|
68
|
+
_tag: "Failure",
|
|
69
|
+
errors: tsplus_module_3.failures(_.cause)
|
|
70
|
+
})),
|
|
71
|
+
query: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers.parseQuery(query)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.failCauseSync(() => _.cause) : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_) ? {
|
|
72
|
+
_tag: "Success",
|
|
73
|
+
value: _.value
|
|
74
|
+
} : {
|
|
75
|
+
_tag: "Failure",
|
|
76
|
+
errors: tsplus_module_3.failures(_.cause)
|
|
77
|
+
})),
|
|
78
|
+
path: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers.parsePath(params)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.failCauseSync(() => _.cause) : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_) ? {
|
|
79
|
+
_tag: "Success",
|
|
80
|
+
value: _.value
|
|
81
|
+
} : {
|
|
82
|
+
_tag: "Failure",
|
|
83
|
+
errors: tsplus_module_3.failures(_.cause)
|
|
84
|
+
}))
|
|
85
|
+
}), ({
|
|
86
|
+
body,
|
|
87
|
+
cookie,
|
|
88
|
+
headers,
|
|
89
|
+
path,
|
|
90
|
+
query
|
|
91
|
+
}) => {
|
|
92
|
+
const errors = [];
|
|
93
|
+
if (body._tag === "Failure") {
|
|
94
|
+
errors.push(makeError("body")(body.errors));
|
|
95
|
+
}
|
|
96
|
+
if (cookie._tag === "Failure") {
|
|
97
|
+
errors.push(makeError("cookie")(cookie.errors));
|
|
98
|
+
}
|
|
99
|
+
if (headers._tag === "Failure") {
|
|
100
|
+
errors.push(makeError("headers")(headers.errors));
|
|
101
|
+
}
|
|
102
|
+
if (path._tag === "Failure") {
|
|
103
|
+
errors.push(makeError("path")(path.errors));
|
|
104
|
+
}
|
|
105
|
+
if (query._tag === "Failure") {
|
|
106
|
+
errors.push(makeError("query")(query.errors));
|
|
107
|
+
}
|
|
108
|
+
if (errors.length) {
|
|
109
|
+
return new _errors.ValidationError({
|
|
110
|
+
errors
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return tsplus_module_1.sync(() => ({
|
|
114
|
+
body: body.value,
|
|
115
|
+
cookie: cookie.value,
|
|
116
|
+
headers: headers.value,
|
|
117
|
+
path: path.value,
|
|
118
|
+
query: query.value
|
|
119
|
+
}));
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
123
|
+
// function mapErrors_<E, NE, NER extends Record<string, Effect<any, E, any>>>(
|
|
124
|
+
// t: NER, // TODO: enforce non empty
|
|
125
|
+
// mapErrors: (k: keyof NER) => (err: E) => NE
|
|
126
|
+
// ): {
|
|
127
|
+
// [K in keyof NER]: Effect<_R<NER[K]>, NE, Effect.Success<NER[K]>>
|
|
128
|
+
// } {
|
|
129
|
+
// return typedKeysOf(t).reduce(
|
|
130
|
+
// (prev, cur) => {
|
|
131
|
+
// prev[cur] = t[cur].mapError(mapErrors(cur))
|
|
132
|
+
// return prev
|
|
133
|
+
// },
|
|
134
|
+
// {} as {
|
|
135
|
+
// [K in keyof NER]: Effect<_R<NER[K]>, NE, Effect.Success<NER[K]>>
|
|
136
|
+
// }
|
|
137
|
+
// )
|
|
138
|
+
// }
|
|
139
|
+
function makeError(type) {
|
|
140
|
+
return e => [{
|
|
141
|
+
type,
|
|
142
|
+
errors: decodeErrors(e)
|
|
143
|
+
}];
|
|
144
|
+
}
|
|
145
|
+
function respondSuccess(encodeResponse) {
|
|
146
|
+
return (req, res) => tsplus_module_4.flow(encodeResponse(req), tsplus_module_1.succeed, _ => tsplus_module_1.flatMap(_, r => tsplus_module_1.sync(() => {
|
|
147
|
+
r === undefined ? res.status(204).send() : res.status(200).send(JSON.stringify(r));
|
|
148
|
+
})));
|
|
149
|
+
}
|
|
150
|
+
function makeRequestParsers(Request) {
|
|
151
|
+
const ph = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Headers), s => s), S.parse));
|
|
152
|
+
const parseHeaders = u => tsplus_module_6.flatMapOption(ph, d => d(u));
|
|
153
|
+
const pq = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Query), s => s), S.parse));
|
|
154
|
+
const parseQuery = u => tsplus_module_6.flatMapOption(pq, d => d(u));
|
|
155
|
+
const pb = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Body), s => s), S.parse));
|
|
156
|
+
const parseBody = u => tsplus_module_6.flatMapOption(pb, d => d(u));
|
|
157
|
+
const pp = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Path), s => s), S.parse));
|
|
158
|
+
const parsePath = u => tsplus_module_6.flatMapOption(pp, d => d(u));
|
|
159
|
+
const pc = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Cookie), s => s), S.parse));
|
|
160
|
+
const parseCookie = u => tsplus_module_6.flatMapOption(pc, d => d(u));
|
|
161
|
+
return {
|
|
162
|
+
parseBody,
|
|
163
|
+
parseCookie,
|
|
164
|
+
parseHeaders,
|
|
165
|
+
parsePath,
|
|
166
|
+
parseQuery
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=base.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.cjs","names":["S","_interopRequireWildcard","require","_errors","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","decodeErrors","x","parseRequestParams","parsers","body","cookies","headers","params","query","tsplus_module_1","flatMap","all","exit","parseBody","_","tsplus_module_2","isFailure","tsplus_module_3","cause","failCauseSync","sync","isSuccess","_tag","value","errors","failures","cookie","parseCookie","parseHeaders","parseQuery","path","parsePath","push","makeError","length","ValidationError","type","respondSuccess","encodeResponse","req","res","tsplus_module_4","flow","succeed","undefined","status","send","JSON","stringify","makeRequestParsers","Request","ph","tsplus_module_5","map","fromNullable","Headers","s","parse","tsplus_module_6","flatMapOption","d","pq","Query","pb","Body","pp","Path","pc","Cookie"],"sources":["../../../_src/api/routing/base.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.JWTError = void 0;
|
|
7
|
+
exports.defaultBasicErrorHandler = defaultBasicErrorHandler;
|
|
8
|
+
exports.defaultErrorHandler = defaultErrorHandler;
|
|
9
|
+
var tsplus_module_1 = _interopRequireWildcard(require("effect/Data"));
|
|
10
|
+
var tsplus_module_2 = _interopRequireWildcard(require("@effect/platform/Http/Body"));
|
|
11
|
+
var tsplus_module_3 = _interopRequireWildcard(require("@effect/platform/Http/ServerResponse"));
|
|
12
|
+
var tsplus_module_4 = _interopRequireWildcard(require("effect/Effect"));
|
|
13
|
+
var tsplus_module_5 = _interopRequireWildcard(require("effect/Cause"));
|
|
14
|
+
var tsplus_module_6 = _interopRequireWildcard(require("effect/Schedule"));
|
|
15
|
+
var _errorReporter = require("@effect-app/infra/errorReporter");
|
|
16
|
+
var _http = require("../http.cjs");
|
|
17
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
18
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
19
|
+
class JWTError extends tsplus_module_1.TaggedClass("JWTError") {}
|
|
20
|
+
exports.JWTError = JWTError;
|
|
21
|
+
const logRequestError = (0, _errorReporter.logError)("Request");
|
|
22
|
+
function defaultBasicErrorHandler(_req, res, r2) {
|
|
23
|
+
const sendError = code => body => tsplus_module_4.sync(() => tsplus_module_3.setStatus(code)(tsplus_module_3.setBody(res, tsplus_module_2.unsafeJson(body))));
|
|
24
|
+
return tsplus_module_4.catchAll(tsplus_module_4.catchTag(tsplus_module_4.tapErrorCause(r2, cause => tsplus_module_5.isFailure(cause) ? logRequestError(cause) : tsplus_module_4.unit), "ValidationError", err => sendError(400)(err.errors))
|
|
25
|
+
// final catch all; expecting never so that unhandled known errors will show up
|
|
26
|
+
, err => tsplus_module_4.flatMap(tsplus_module_4.map(tsplus_module_4.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err), () => err), tsplus_module_4.die));
|
|
27
|
+
}
|
|
28
|
+
const optimisticConcurrencySchedule = tsplus_module_6.intersect(tsplus_module_6.recurWhile(a => a._tag === "OptimisticConcurrencyException"))(tsplus_module_6.once);
|
|
29
|
+
function defaultErrorHandler(req, res, r2) {
|
|
30
|
+
const r3 = req.method === "PATCH" ? tsplus_module_4.retry(r2, optimisticConcurrencySchedule) : r2;
|
|
31
|
+
const sendError = code => body => tsplus_module_4.sync(() => tsplus_module_3.setBody(tsplus_module_3.setStatus(code)(res), tsplus_module_2.unsafeJson(body)));
|
|
32
|
+
return tsplus_module_4.catchAll(tsplus_module_4.catchTags(tsplus_module_4.tapErrorCause(r3, cause => tsplus_module_5.isFailure(cause) ? logRequestError(cause) : tsplus_module_4.unit), {
|
|
33
|
+
"JWTError": err => tsplus_module_4.succeed(tsplus_module_3.unsafeJson({
|
|
34
|
+
message: err.error.message
|
|
35
|
+
}, {
|
|
36
|
+
status: err.error.status,
|
|
37
|
+
headers: _http.HttpHeaders.fromInput(err.error.headers)
|
|
38
|
+
})),
|
|
39
|
+
"ValidationError": err => sendError(400)(err.errors),
|
|
40
|
+
"NotFoundError": sendError(404),
|
|
41
|
+
"NotLoggedInError": sendError(401),
|
|
42
|
+
"UnauthorizedError": sendError(403),
|
|
43
|
+
"InvalidStateError": sendError(422),
|
|
44
|
+
// 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
|
|
45
|
+
"OptimisticConcurrencyException": sendError(412)
|
|
46
|
+
})
|
|
47
|
+
// final catch all; expecting never so that unhandled known errors will show up
|
|
48
|
+
, err => tsplus_module_4.flatMap(tsplus_module_4.map(tsplus_module_4.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err), () => err), tsplus_module_4.die));
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=defaultErrorHandler.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultErrorHandler.cjs","names":["_errorReporter","require","_http","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","JWTError","tsplus_module_1","TaggedClass","exports","logRequestError","logError","defaultBasicErrorHandler","_req","res","r2","sendError","code","body","tsplus_module_4","sync","tsplus_module_3","setStatus","setBody","tsplus_module_2","unsafeJson","catchAll","catchTag","tapErrorCause","cause","tsplus_module_5","isFailure","unit","err","errors","flatMap","map","die","optimisticConcurrencySchedule","tsplus_module_6","intersect","recurWhile","_tag","once","defaultErrorHandler","req","r3","method","retry","catchTags","succeed","message","error","status","headers","HttpHeaders","fromInput"],"sources":["../../../_src/api/routing/defaultErrorHandler.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RequestSettings = void 0;
|
|
7
|
+
exports.makeRequestHandler = makeRequestHandler;
|
|
8
|
+
var tsplus_module_1 = _interopRequireWildcard(require("effect/FiberRef"));
|
|
9
|
+
var _schema = _interopRequireWildcard(require("@effect-app/schema"));
|
|
10
|
+
var tsplus_module_2 = _schema;
|
|
11
|
+
var tsplus_module_3 = _interopRequireWildcard(require("@effect/schema/Parser"));
|
|
12
|
+
var tsplus_module_4 = _interopRequireWildcard(require("effect/Effect"));
|
|
13
|
+
var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/core/Option"));
|
|
14
|
+
var tsplus_module_6 = _interopRequireWildcard(require("@effect-app/prelude/utils"));
|
|
15
|
+
var tsplus_module_7 = _interopRequireWildcard(require("@effect/platform/Http/ServerResponse"));
|
|
16
|
+
var tsplus_module_8 = _interopRequireWildcard(require("@effect/platform/Http/Body"));
|
|
17
|
+
var tsplus_module_9 = _interopRequireWildcard(require("@effect-app/infra/api/setupRequest"));
|
|
18
|
+
var _utils2 = require("@effect-app/core/utils");
|
|
19
|
+
var _util = require("@effect-app/infra/api/util");
|
|
20
|
+
var _errorReporter = require("@effect-app/infra/errorReporter");
|
|
21
|
+
var _http = require("../http.cjs");
|
|
22
|
+
var _base = require("./base.cjs");
|
|
23
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
24
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
25
|
+
const RequestSettings = exports.RequestSettings = tsplus_module_1.unsafeMake({
|
|
26
|
+
verbose: false
|
|
27
|
+
});
|
|
28
|
+
function makeRequestHandler(handler, errorHandler, middlewareLayer) {
|
|
29
|
+
const {
|
|
30
|
+
Request,
|
|
31
|
+
Response,
|
|
32
|
+
h: handle
|
|
33
|
+
} = handler;
|
|
34
|
+
const response = Response ? Response : tsplus_module_2.Void;
|
|
35
|
+
const resp = response;
|
|
36
|
+
// TODO: consider if the alternative of using the struct schema is perhaps just better.
|
|
37
|
+
const encoder = "struct" in resp && resp.struct ? tsplus_module_3.encodeSync(resp.struct)
|
|
38
|
+
// ? (i: any) => {
|
|
39
|
+
// if (i instanceof (response as any)) return response.encodeSync(i)
|
|
40
|
+
// else return response.encodeSync(new (response as any)(i))
|
|
41
|
+
// }
|
|
42
|
+
: tsplus_module_3.encodeSync(resp);
|
|
43
|
+
// const encodeResponse = adaptResponse
|
|
44
|
+
// ? (req: ReqA) => Encoder.for(adaptResponse(req))
|
|
45
|
+
// : () => encoder
|
|
46
|
+
const requestParsers = (0, _base.makeRequestParsers)(Request);
|
|
47
|
+
const parseRequest = (0, _base.parseRequestParams)(requestParsers);
|
|
48
|
+
const getParams = tsplus_module_4.map(tsplus_module_4.all({
|
|
49
|
+
rcx: _http.HttpRouteContext,
|
|
50
|
+
req: tsplus_module_4.flatMap(_http.HttpServerRequest, req => tsplus_module_4.map(req.json, body => ({
|
|
51
|
+
body,
|
|
52
|
+
headers: req.headers
|
|
53
|
+
})))
|
|
54
|
+
}), ({
|
|
55
|
+
rcx,
|
|
56
|
+
req
|
|
57
|
+
}) => ({
|
|
58
|
+
params: rcx.params,
|
|
59
|
+
query: rcx.searchParams,
|
|
60
|
+
body: req.body,
|
|
61
|
+
headers: req.headers,
|
|
62
|
+
cookies: {} // req.cookies
|
|
63
|
+
}));
|
|
64
|
+
return tsplus_module_9.updateRequestContext(tsplus_module_4.gen(function* ($) {
|
|
65
|
+
const req = yield* $(_http.HttpServerRequest);
|
|
66
|
+
const res = tsplus_module_7.empty().pipe(_ => req.method === "GET" ? tsplus_module_7.setHeader(_, "Cache-Control", "no-store") : _);
|
|
67
|
+
const pars = yield* $(getParams);
|
|
68
|
+
const settings = yield* $(tsplus_module_1.get(RequestSettings));
|
|
69
|
+
const eff =
|
|
70
|
+
// TODO: we don;t have access to user id here cause context is not yet created
|
|
71
|
+
tsplus_module_4.tap(tsplus_module_4.catchAllCause(tsplus_module_4.andThen(tsplus_module_4.annotateLogs(tsplus_module_4.logInfo("Incoming request"), {
|
|
72
|
+
method: req.method,
|
|
73
|
+
path: req.originalUrl,
|
|
74
|
+
...(settings.verbose ? {
|
|
75
|
+
reqPath: tsplus_module_6.RecordPretty(tsplus_module_6.object$(pars.params)),
|
|
76
|
+
reqQuery: tsplus_module_6.RecordPretty(tsplus_module_6.object$(pars.query)),
|
|
77
|
+
reqBody: (0, _utils2.pretty)(pars.body),
|
|
78
|
+
reqCookies: (0, _utils2.pretty)(pars.cookies),
|
|
79
|
+
reqHeaders: (0, _utils2.pretty)(pars.headers)
|
|
80
|
+
} : undefined)
|
|
81
|
+
}), tsplus_module_4.suspend(() => {
|
|
82
|
+
const handleRequest = tsplus_module_4.flatMap(tsplus_module_4.map(parseRequest(pars), ({
|
|
83
|
+
body,
|
|
84
|
+
path,
|
|
85
|
+
query
|
|
86
|
+
}) => {
|
|
87
|
+
const hn = {
|
|
88
|
+
...tsplus_module_5.getOrUndefined(body),
|
|
89
|
+
...tsplus_module_5.getOrUndefined(query),
|
|
90
|
+
...tsplus_module_5.getOrUndefined(path)
|
|
91
|
+
};
|
|
92
|
+
return hn;
|
|
93
|
+
}), parsedReq => tsplus_module_4.map(tsplus_module_4.map(tsplus_module_4.provideService(handle(parsedReq), handler.Request.Tag, parsedReq), encoder), r => tsplus_module_7.setStatus(r === undefined ? 204 : 200)(tsplus_module_7.setBody(res, tsplus_module_8.unsafeJson(r)))));
|
|
94
|
+
// Commands should not be interruptable.
|
|
95
|
+
const r = req.method !== "GET" ? tsplus_module_4.uninterruptible(handleRequest) : handleRequest; // .instrument("Performance.RequestResponse")
|
|
96
|
+
const r2 = middlewareLayer ? tsplus_module_4.provide(r, middlewareLayer)
|
|
97
|
+
// PR is not relevant here
|
|
98
|
+
: r;
|
|
99
|
+
return errorHandler(req, res, r2);
|
|
100
|
+
})), cause => tsplus_module_4.tapErrorCause(tsplus_module_4.tap(tsplus_module_4.sync(() => tsplus_module_7.setStatus(500)(res)), res => tsplus_module_4.all([(0, _errorReporter.reportError)("request")(cause, {
|
|
101
|
+
path: req.originalUrl,
|
|
102
|
+
method: req.method
|
|
103
|
+
}), tsplus_module_4.suspend(() => {
|
|
104
|
+
const headers = res.headers;
|
|
105
|
+
return tsplus_module_4.annotateLogs(tsplus_module_4.logError("Finished request", cause), {
|
|
106
|
+
method: req.method,
|
|
107
|
+
path: req.originalUrl,
|
|
108
|
+
statusCode: res.status.toString(),
|
|
109
|
+
reqPath: tsplus_module_6.RecordPretty(tsplus_module_6.object$(pars.params)),
|
|
110
|
+
reqQuery: tsplus_module_6.RecordPretty(tsplus_module_6.object$(pars.query)),
|
|
111
|
+
reqBody: (0, _utils2.pretty)(pars.body),
|
|
112
|
+
reqCookies: (0, _utils2.pretty)(pars.cookies),
|
|
113
|
+
reqHeaders: (0, _utils2.pretty)(pars.headers),
|
|
114
|
+
resHeaders: tsplus_module_6.RecordPretty(tsplus_module_6.object$(Object.entries(headers).reduce((prev, [key, value]) => {
|
|
115
|
+
prev[key] = value && typeof value === "string" ? (0, _util.snipString)(value) : value;
|
|
116
|
+
return prev;
|
|
117
|
+
}, {})))
|
|
118
|
+
});
|
|
119
|
+
})], {
|
|
120
|
+
concurrency: "inherit"
|
|
121
|
+
})), cause => tsplus_module_4.sync(() => console.error("Error occurred while reporting error", cause)))), tsplus_module_4.annotateLogs(tsplus_module_4.logInfo("Finished request"), {
|
|
122
|
+
method: req.method,
|
|
123
|
+
path: req.originalUrl,
|
|
124
|
+
statusCode: res.status.toString(),
|
|
125
|
+
...(settings.verbose ? {
|
|
126
|
+
resHeaders: (0, _utils2.pretty)(res.headers)
|
|
127
|
+
} : undefined)
|
|
128
|
+
}));
|
|
129
|
+
return yield* $(eff);
|
|
130
|
+
}), _ => tsplus_module_6.$copy(tsplus_module_6.object$(_), {
|
|
131
|
+
name: tsplus_module_2.NonEmptyString255(tsplus_module_5.getOrUndefined(_schema.AST.getTitleAnnotation(Request.ast)) ?? "TODO")
|
|
132
|
+
}));
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=makeRequestHandler.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeRequestHandler.cjs","names":["_utils2","require","_util","_errorReporter","_http","_base","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","RequestSettings","exports","tsplus_module_1","unsafeMake","verbose","makeRequestHandler","handler","errorHandler","middlewareLayer","Request","Response","h","handle","response","tsplus_module_2","Void","resp","encoder","struct","tsplus_module_3","encodeSync","requestParsers","makeRequestParsers","parseRequest","parseRequestParams","getParams","tsplus_module_4","map","all","rcx","HttpRouteContext","req","flatMap","HttpServerRequest","json","body","headers","params","query","searchParams","cookies","tsplus_module_9","updateRequestContext","gen","$","res","tsplus_module_7","empty","pipe","_","method","setHeader","pars","settings","eff","tap","catchAllCause","andThen","annotateLogs","logInfo","path","originalUrl","reqPath","tsplus_module_6","RecordPretty","object$","reqQuery","reqBody","pretty","reqCookies","reqHeaders","undefined","suspend","handleRequest","hn","tsplus_module_5","getOrUndefined","parsedReq","provideService","Tag","setStatus","setBody","tsplus_module_8","unsafeJson","uninterruptible","r2","provide","cause","tapErrorCause","sync","reportError","logError","statusCode","status","toString","resHeaders","entries","reduce","prev","key","value","snipString","concurrency","console","error","$copy","name","NonEmptyString255","AST","getTitleAnnotation","ast"],"sources":["../../../_src/api/routing/makeRequestHandler.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RouteDescriptors = void 0;
|
|
7
|
+
exports.match = match;
|
|
8
|
+
var tsplus_module_1 = _interopRequireWildcard(require("effect/Context"));
|
|
9
|
+
var tsplus_module_2 = _interopRequireWildcard(require("@effect/platform/Http/Router"));
|
|
10
|
+
var tsplus_module_3 = _interopRequireWildcard(require("effect/Effect"));
|
|
11
|
+
require("@effect-app/infra/api/express/schema/routing");
|
|
12
|
+
require("../http.cjs");
|
|
13
|
+
var _makeRequestHandler = require("./makeRequestHandler.cjs");
|
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
17
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
18
|
+
|
|
19
|
+
const RouteDescriptors = exports.RouteDescriptors = tsplus_module_1.Tag();
|
|
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
|
+
return tsplus_module_3.gen(function* () {
|
|
31
|
+
// const rdesc = yield* $(RouteDescriptors.flatMap((_) => _.get))
|
|
32
|
+
const handler = (0, _makeRequestHandler.makeRequestHandler)(requestHandler,
|
|
33
|
+
// one argument if no middleware, 2 if has middleware. TODO: clean this shit up
|
|
34
|
+
errorHandler, middlewareLayer);
|
|
35
|
+
const route = tsplus_module_2.makeRoute(requestHandler.Request.method, requestHandler.Request.path, handler);
|
|
36
|
+
// TODO
|
|
37
|
+
// rdesc.push(makeRouteDescriptor(
|
|
38
|
+
// requestHandler.Request.path,
|
|
39
|
+
// requestHandler.Request.method,
|
|
40
|
+
// requestHandler
|
|
41
|
+
// ))
|
|
42
|
+
return route;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=match.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match.cjs","names":["require","_makeRequestHandler","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","RouteDescriptors","exports","tsplus_module_1","Tag","match","requestHandler","errorHandler","middleware","middlewareLayer","undefined","handler","makeRequestLayer","tsplus_module_3","gen","makeRequestHandler","route","tsplus_module_2","makeRoute","Request","method","path"],"sources":["../../../_src/api/routing/match.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;AAEAA,OAAA;AAGAA,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AAA4D,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAI,wBAAAJ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAM,OAAA,EAAAN,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAI,GAAA,CAAAP,CAAA,UAAAG,CAAA,CAAAK,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAlB,CAAA,EAAAe,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAN,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAiB,GAAA,CAAApB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAP5D;AACA;;AASO,MAAMY,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGE,eAAA,CAAAC,GAAG,EAA6B;AAE1D,SAAUC,KAAKA,CAoBnBC,cAeC,EACDC,YAIgD,EAChDC,UAkBC;EAED,IAAIC,eAAe,GAA2CC,SAAS;EACvE,IAAIF,UAAU,EAAE;IACd,MAAM;MAAEG,OAAO;MAAEC;IAAgB,CAAE,GAAGJ,UAAU,CAACF,cAAc,CAAC;IAChEA,cAAc,GAAGK,OAAc,EAAC;IAChCF,eAAe,GAAGG,gBAAgB;EACpC;EACA,OAAOC,eAAA,CAAAC,GAAA,CAAW,aAAS;IACzB;IAEA,MAAMH,OAAO,GAAG,IAAAI,sCAAkB,EAkBhCT,cAAqB;IAAE;IACvBC,YAAY,EACZE,eAAe,CAChB;IAED,MAAMO,KAAK,GAAGC,eAAA,CAAAC,SAAA,CACZZ,cAAc,CAACa,OAAO,CAACC,MAAM,EAC7Bd,cAAc,CAACa,OAAO,CAACE,IAAI,EAC3BV,OAAO,CACR;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAOK,KAAK;EACd,CAAC,CAAC;AACJ"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _base = require("./routing/base.cjs");
|
|
7
|
+
Object.keys(_base).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _base[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _base[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _defaultErrorHandler = require("./routing/defaultErrorHandler.cjs");
|
|
18
|
+
Object.keys(_defaultErrorHandler).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _defaultErrorHandler[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _defaultErrorHandler[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _makeRequestHandler = require("./routing/makeRequestHandler.cjs");
|
|
29
|
+
Object.keys(_makeRequestHandler).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _makeRequestHandler[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _makeRequestHandler[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _match = require("./routing/match.cjs");
|
|
40
|
+
Object.keys(_match).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _match[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _match[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=routing.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing.cjs","names":["_base","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_defaultErrorHandler","_makeRequestHandler","_match"],"sources":["../../_src/api/routing.ts"],"sourcesContent":[null],"mappings":";;;;;AAIA,IAAAA,KAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,KAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,KAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,KAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,oBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,oBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,oBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,oBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,mBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,mBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,mBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,mBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,MAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,MAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAP,GAAA;IAAA;EAAA;AAAA"}
|
package/_src/api/http.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
|
|
3
|
+
import type { Route as HttpRoute, Router as HttpRouter } from "@effect/platform/Http/Router"
|
|
4
|
+
|
|
5
|
+
export type { HttpApp } from "@effect/platform/Http/App"
|
|
6
|
+
export type { Body as HttpBody } from "@effect/platform/Http/Body"
|
|
7
|
+
export * as HttpHeaders from "@effect/platform/Http/Headers"
|
|
8
|
+
export type { Middleware as HttpMiddleware } from "@effect/platform/Http/Middleware"
|
|
9
|
+
export { RouteContext as HttpRouteContext } from "@effect/platform/Http/Router"
|
|
10
|
+
export { RequestError as HttpRequestError } from "@effect/platform/Http/ServerError"
|
|
11
|
+
export { ServerRequest as HttpServerRequest } from "@effect/platform/Http/ServerRequest"
|
|
12
|
+
export type { ServerResponse as HttpServerResponse } from "@effect/platform/Http/ServerResponse"
|
|
13
|
+
export type { HttpRoute, HttpRouter }
|
|
14
|
+
export * as HttpServer from "@effect/platform/Http/Server"
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @tsplus unify effect/platform/Http/Router/Route
|
|
18
|
+
*/
|
|
19
|
+
export function unifyRoute<X extends HttpRoute<any, any>>(
|
|
20
|
+
self: X
|
|
21
|
+
): HttpRoute<
|
|
22
|
+
X extends HttpRoute<infer EX, any> ? EX : never,
|
|
23
|
+
X extends HttpRoute<any, infer AX> ? AX : never
|
|
24
|
+
> {
|
|
25
|
+
return self
|
|
26
|
+
}
|