effect-app 1.10.2 → 1.11.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/CHANGELOG.md +23 -0
- package/_cjs/Operations.cjs +1 -1
- package/_cjs/Operations.cjs.map +1 -1
- package/_cjs/client/clientFor.cjs +2 -2
- package/_cjs/client/clientFor.cjs.map +1 -1
- package/_cjs/client/fetch.cjs +48 -47
- package/_cjs/client/fetch.cjs.map +1 -1
- package/_cjs/schema.cjs +14 -3
- package/_cjs/schema.cjs.map +1 -1
- package/dist/Operations.d.ts +8 -0
- package/dist/Operations.d.ts.map +1 -1
- package/dist/Operations.js +2 -2
- package/dist/client/clientFor.js +3 -3
- package/dist/client/fetch.d.ts +9 -7
- package/dist/client/fetch.d.ts.map +1 -1
- package/dist/client/fetch.js +59 -56
- package/dist/schema.d.ts +22 -8
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +12 -3
- package/package.json +3 -3
- package/src/Operations.ts +1 -1
- package/src/client/clientFor.ts +2 -2
- package/src/client/fetch.ts +88 -72
- package/src/schema.ts +25 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @effect-app/prelude
|
|
2
2
|
|
|
3
|
+
## 1.11.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 65135b2: fix issue
|
|
8
|
+
|
|
9
|
+
## 1.11.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- c229a73: add tagMap to TaggedUnion
|
|
14
|
+
|
|
15
|
+
## 1.11.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- 24f0c0f: feat: allow custom errors per endpoint.
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Updated dependencies [24f0c0f]
|
|
24
|
+
- @effect-app/schema@1.8.0
|
|
25
|
+
|
|
3
26
|
## 1.10.2
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
package/_cjs/Operations.cjs
CHANGED
|
@@ -21,7 +21,7 @@ class Failure extends S.ExtendedTaggedClass()("Failure", {
|
|
|
21
21
|
message: S.NullOr(S.NonEmptyString2k).withDefault
|
|
22
22
|
}) {}
|
|
23
23
|
exports.Failure = Failure;
|
|
24
|
-
const OperationResult = exports.OperationResult = S.
|
|
24
|
+
const OperationResult = exports.OperationResult = S.TaggedUnion(Success, Failure);
|
|
25
25
|
class Operation extends S.ExtendedClass()({
|
|
26
26
|
id: OperationId,
|
|
27
27
|
title: S.NonEmptyString2k,
|
package/_cjs/Operations.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Operations.cjs","names":["S","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","OperationId","exports","StringId","OperationProgress","ExtendedClass","completed","NonNegativeInt","total","Success","ExtendedTaggedClass","message","NullOr","NonEmptyString2k","withDefault","Failure","OperationResult","
|
|
1
|
+
{"version":3,"file":"Operations.cjs","names":["S","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","OperationId","exports","StringId","OperationProgress","ExtendedClass","completed","NonNegativeInt","total","Success","ExtendedTaggedClass","message","NullOr","NonEmptyString2k","withDefault","Failure","OperationResult","TaggedUnion","Operation","id","title","progress","optional","result","createdAt","Date","updatedAt"],"sources":["../src/Operations.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAgC,SAAAC,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,SAAAH,wBAAAG,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,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAGzB,MAAMW,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAGvB,CAAC,CAACyB,QAAQ;AAE/B,MAAOC,iBAAkB,SAAQ1B,CAAC,CAAC2B,aAAa,EAGnD,CAAC;EACFC,SAAS,EAAE5B,CAAC,CAAC6B,cAAc;EAC3BC,KAAK,EAAE9B,CAAC,CAAC6B;CACV,CAAC;AAAGL,OAAA,CAAAE,iBAAA,GAAAA,iBAAA;AAEC,MAAOK,OAAQ,SAAQ/B,CAAC,CAACgC,mBAAmB,EAAyB,CAAC,SAAS,EAAE;EACrFC,OAAO,EAAEjC,CAAC,CAACkC,MAAM,CAAClC,CAAC,CAACmC,gBAAgB,CAAC,CAACC;CACvC,CAAC;AAAGZ,OAAA,CAAAO,OAAA,GAAAA,OAAA;AAEC,MAAOM,OAAQ,SAAQrC,CAAC,CAACgC,mBAAmB,EAAyB,CAAC,SAAS,EAAE;EACrFC,OAAO,EAAEjC,CAAC,CAACkC,MAAM,CAAClC,CAAC,CAACmC,gBAAgB,CAAC,CAACC;CACvC,CAAC;AAAGZ,OAAA,CAAAa,OAAA,GAAAA,OAAA;AAEE,MAAMC,eAAe,GAAAd,OAAA,CAAAc,eAAA,GAAGtC,CAAC,CAACuC,WAAW,CAACR,OAAO,EAAEM,OAAO,CAAC;AAGxD,MAAOG,SAAU,SAAQxC,CAAC,CAAC2B,aAAa,EAA6B,CAAC;EAC1Ec,EAAE,EAAElB,WAAW;EACfmB,KAAK,EAAE1C,CAAC,CAACmC,gBAAgB;EACzBQ,QAAQ,EAAE3C,CAAC,CAAC4C,QAAQ,CAAClB,iBAAiB,CAAC;EACvCmB,MAAM,EAAE7C,CAAC,CAAC4C,QAAQ,CAACN,eAAe,CAAC;EACnCQ,SAAS,EAAE9C,CAAC,CAAC+C,IAAI,CAACX,WAAW;EAC7BY,SAAS,EAAEhD,CAAC,CAACkC,MAAM,CAAClC,CAAC,CAAC+C,IAAI,CAAC,CAACX;CAC7B,CAAC;AAiBF;AACA;AACA;AAAAZ,OAAA,CAAAgB,SAAA,GAAAA,SAAA","ignoreList":[]}
|
|
@@ -81,14 +81,14 @@ function clientFor_(models) {
|
|
|
81
81
|
.flatMap(x => x.ast.propertySignatures);
|
|
82
82
|
// @ts-expect-error doc
|
|
83
83
|
prev[cur] = Request.method === "GET" ? fields.length === 0 ? {
|
|
84
|
-
handler: (0, _fetch.fetchApi)(Request.method, Request.path).pipe(_core.Effect.flatMap(parse), _core.Effect.withSpan("client.request " + requestName, {
|
|
84
|
+
handler: (0, _fetch.fetchApi)(Request.method, Request.path, undefined, Request.errors).pipe(_core.Effect.flatMap(parse), _core.Effect.withSpan("client.request " + requestName, {
|
|
85
85
|
attributes: {
|
|
86
86
|
"request.name": requestName
|
|
87
87
|
}
|
|
88
88
|
})),
|
|
89
89
|
...meta
|
|
90
90
|
} : {
|
|
91
|
-
handler: req => (0, _fetch.fetchApi)(Request.method, (0, _fetch.makePathWithQuery)(path, _lib.S.encodeSync(Request)(req))).pipe(_core.Effect.flatMap(parse), _core.Effect.withSpan("client.request " + requestName, {
|
|
91
|
+
handler: req => (0, _fetch.fetchApi)(Request.method, (0, _fetch.makePathWithQuery)(path, _lib.S.encodeSync(Request)(req)), undefined, Request.errors).pipe(_core.Effect.flatMap(parse), _core.Effect.withSpan("client.request " + requestName, {
|
|
92
92
|
attributes: {
|
|
93
93
|
"request.name": requestName
|
|
94
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientFor.cjs","names":["_core","require","_schema","_pathParser","_lib","_utils","_fetch","_config","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","cache","Map","clientFor","models","found","m","clientFor_","set","typedKeysOf","filter","x","reduce","prev","cur","h","Request_","REST","extractRequest","Response","extractResponse","meta","Error","requestName","moduleName","replaceAll","Request","path","method","determineMethod","assign","Auto","b","mapPath","name","res","parseResponse","flow","S","decodeUnknown","_","Effect","mapError","err","ResError","parseResponseE","encodedSchema","Path","parse","mapResponseM","parseE","fields","Body","Query","flatMap","ast","propertySignatures","length","handler","fetchApi","pipe","withSpan","attributes","req","makePathWithQuery","encodeSync","fetchApi3S","makePathWithBody","fetchApi3SE"],"sources":["../../src/client/clientFor.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,IAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAIA,IAAAK,MAAA,GAAAL,OAAA;AAUA,IAAAM,OAAA,GAAAN,OAAA;AAAAO,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAvBA;AACA;;AAgCA,MAAMS,KAAK,GAAG,IAAIC,GAAG,EAAoB;AAcnC,SAAUC,SAASA,CACvBC,MAAS;EAET,MAAMC,KAAK,GAAGJ,KAAK,CAACD,GAAG,CAACI,MAAM,CAAC;EAC/B,IAAIC,KAAK,EAAE;IACT,OAAOA,KAAK;EACd;EACA,MAAMC,CAAC,GAAGC,UAAU,CAACH,MAAM,CAAC;EAC5BH,KAAK,CAACO,GAAG,CAACJ,MAAM,EAAEE,CAAC,CAAC;EACpB,OAAOA,CAAC;AACV;AAEA,SAASC,UAAUA,CAAqBH,MAAS;EAC/C,OAAQ,IAAAK,kBAAW,EAACL,MAAM;EACxB;EAAA,CACCM,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAK,SAAS,IAAIA,CAAC,KAAK,MAAM,CAAC,CAC9CC,MAAM,CAAC,CAACC,IAAI,EAAEC,GAAG,KAAI;IACpB,MAAMC,CAAC,GAAGX,MAAM,CAACU,GAAG,CAAC;IAErB,MAAME,QAAQ,GAAGC,YAAI,CAACC,cAAc,CAACH,CAAC,CAAe;IACrD,MAAMI,QAAQ,GAAGF,YAAI,CAACG,eAAe,CAACL,CAAC,CAAC;IAExC,MAAMT,CAAC,GAAIF,MAAc,CAACiB,IAA8B;IACxD,IAAI,CAACf,CAAC,EAAE,MAAM,IAAIgB,KAAK,CAAC,8BAA8B,CAAC;IACvD,MAAMC,WAAW,GAAG,GAAGjB,CAAC,CAACkB,UAAU,IAAIV,GAAa,EAAE,CACnDW,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;IAExB,MAAMC,OAAO,GAAG,cAAeV,QAAgB;MAC7C,OAAOW,IAAI,GAAG,GAAG,GAAGJ,WAAW,IAAIP,QAAQ,CAACW,IAAI,KAAK,GAAG,GAAG,EAAE,GAAGX,QAAQ,CAACW,IAAI,CAAC;MAC9E,OAAOC,MAAM,GAAGZ,QAAQ,CAACY,MAA+B,KAAK,MAAM,GAC/DX,YAAI,CAACY,eAAe,CAACf,GAAa,EAAEE,QAAQ,CAAC,GAC7CA,QAAQ,CAACY,MAAM;KACK;IAE1B,IAAKZ,QAAgB,CAACY,MAAM,KAAK,MAAM,EAAE;MACvCvC,MAAM,CAACyC,MAAM,CAACJ,OAAO,EAAE;QACrB,CAACA,OAAO,CAACE,MAAM,KAAK,KAAK,IAAIF,OAAO,CAACE,MAAM,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAIZ,QAAgB,CAACe;OACjG,CAAC;IACJ;IAEA,MAAMC,CAAC,GAAG3C,MAAM,CAACyC,MAAM,CAAC,EAAE,EAAEf,CAAC,EAAE;MAAEW,OAAO;MAAEP;IAAQ,CAAE,CAAC;IAErD,MAAME,IAAI,GAAG;MACXK,OAAO;MACPP,QAAQ;MACRc,OAAO,EAAEP,OAAO,CAACC,IAAI;MACrBO,IAAI,EAAEX;KACP;IAED,MAAMY,GAAG,GAAGhB,QAAuB;IACnC,MAAMiB,aAAa,GAAG,IAAAC,UAAI,EAACC,MAAC,CAACC,aAAa,CAACJ,GAAG,CAAC,EAAGK,CAAC,IAAKC,YAAM,CAACC,QAAQ,CAACF,CAAC,EAAGG,GAAG,IAAK,IAAIC,eAAQ,CAACD,GAAG,CAAC,CAAC,CAAC;IACvG,MAAME,cAAc,GAAG,IAAAR,UAAI,EACzBC,MAAC,CAACC,aAAa,CAACD,MAAC,CAACQ,aAAa,CAACX,GAAG,CAAC,CAAC,EACpCK,CAAC,IAAKC,YAAM,CAACC,QAAQ,CAACF,CAAC,EAAGG,GAAG,IAAK,IAAIC,eAAQ,CAACD,GAAG,CAAC,CAAC,CACtD;IAED,MAAMhB,IAAI,GAAG,IAAIoB,gBAAI,CAACrB,OAAO,CAACC,IAAI,CAAC;IACnC,MAAMqB,KAAK,GAAG,IAAAC,mBAAY,EAACb,aAAa,CAAC;IACzC,MAAMc,MAAM,GAAG,IAAAD,mBAAY,EAACJ,cAAc,CAAC;IAE3C;IACA;IACA;IACA,MAAMM,MAAM,GAAG,CAACzB,OAAO,CAAC0B,IAAI,EAAE1B,OAAO,CAAC2B,KAAK,EAAE3B,OAAO,CAACqB,IAAI,CAAC,CACvDrC,MAAM,CAAEC,CAAC,IAAKA,CAAC;IAChB;IAAA,CACC2C,OAAO,CAAE3C,CAAC,IAAKA,CAAC,CAAC4C,GAAG,CAACC,kBAAkB,CAAC;IAC3C;IACA3C,IAAI,CAACC,GAAG,CAAC,GAAGY,OAAO,CAACE,MAAM,KAAK,KAAK,GAChCuB,MAAM,CAACM,MAAM,KAAK,CAAC,GACjB;MACAC,OAAO,EAAE,IAAAC,eAAQ,EAACjC,OAAO,CAACE,MAAM,EAAEF,OAAO,CAACC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"clientFor.cjs","names":["_core","require","_schema","_pathParser","_lib","_utils","_fetch","_config","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","cache","Map","clientFor","models","found","m","clientFor_","set","typedKeysOf","filter","x","reduce","prev","cur","h","Request_","REST","extractRequest","Response","extractResponse","meta","Error","requestName","moduleName","replaceAll","Request","path","method","determineMethod","assign","Auto","b","mapPath","name","res","parseResponse","flow","S","decodeUnknown","_","Effect","mapError","err","ResError","parseResponseE","encodedSchema","Path","parse","mapResponseM","parseE","fields","Body","Query","flatMap","ast","propertySignatures","length","handler","fetchApi","undefined","errors","pipe","withSpan","attributes","req","makePathWithQuery","encodeSync","fetchApi3S","makePathWithBody","fetchApi3SE"],"sources":["../../src/client/clientFor.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/_cjs/client/fetch.cjs
CHANGED
|
@@ -21,10 +21,10 @@ var _effect = require("effect");
|
|
|
21
21
|
var _schema = require("effect-app/schema");
|
|
22
22
|
var _pathParser = require("path-parser");
|
|
23
23
|
var _queryString = _interopRequireDefault(require("query-string"));
|
|
24
|
-
var _config = require("./config.cjs");
|
|
25
|
-
var _errors = require("./errors.cjs");
|
|
26
24
|
var _http = require("../http.cjs");
|
|
27
25
|
var _lib = require("../lib.cjs");
|
|
26
|
+
var _config = require("./config.cjs");
|
|
27
|
+
var _errors = require("./errors.cjs");
|
|
28
28
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
29
29
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
30
30
|
|
|
@@ -54,51 +54,52 @@ const getClient = _core.Effect.flatMap(_http.HttpClient.HttpClient, defaultClien
|
|
|
54
54
|
status: _.status,
|
|
55
55
|
body,
|
|
56
56
|
headers: _.headers
|
|
57
|
-
}))).pipe(_core.Effect.withSpan("client.response")))
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
"ResponseError": err => _core.Effect.orDie(err.response.text
|
|
84
|
-
// TODO
|
|
85
|
-
).pipe(_core.Effect.flatMap(_ => _core.Effect.fail({
|
|
86
|
-
_tag: "HttpErrorResponse",
|
|
87
|
-
response: {
|
|
88
|
-
body: _core.Option.fromNullable(_),
|
|
89
|
-
status: err.response.status,
|
|
90
|
-
headers: err.response.headers
|
|
57
|
+
}))).pipe(_core.Effect.withSpan("client.response"))))));
|
|
58
|
+
function fetchApi(method, path, body, responseError) {
|
|
59
|
+
return _core.Effect.flatMap(getClient, client => (method === "GET" ? client(_http.HttpClientRequest.make(method)(path)) : body === undefined ? client(_http.HttpClientRequest.make(method)(path)) : _http.HttpClientRequest.make(method)(path).pipe(_http.HttpClientRequest.jsonBody(body), _core.Effect.flatMap(client))).pipe(_core.Effect.catchTag("ResponseError", err => {
|
|
60
|
+
const toError = s => _core.Effect.flatMap(err.response.json, _ => _lib.S.decodeUnknown(s)(_).pipe(_core.Effect.catchAll(() => _core.Effect.fail(err)))).pipe(_core.Effect.flatMap(_core.Effect.fail));
|
|
61
|
+
// opposite of api's `defaultErrorHandler`
|
|
62
|
+
if (err.response.status === 404) {
|
|
63
|
+
return toError(_errors.NotFoundError);
|
|
64
|
+
}
|
|
65
|
+
if (err.response.status === 400) {
|
|
66
|
+
return toError(_errors.ValidationError);
|
|
67
|
+
}
|
|
68
|
+
if (err.response.status === 401) {
|
|
69
|
+
return toError(_errors.NotLoggedInError);
|
|
70
|
+
}
|
|
71
|
+
// TODO: DomainError
|
|
72
|
+
if (err.response.status === 422) {
|
|
73
|
+
return responseError ? toError(_lib.S.Union(responseError, _errors.InvalidStateError)) : toError(_errors.InvalidStateError);
|
|
74
|
+
}
|
|
75
|
+
if (err.response.status === 503) {
|
|
76
|
+
return toError(_errors.ServiceUnavailableError);
|
|
77
|
+
}
|
|
78
|
+
if (err.response.status === 403) {
|
|
79
|
+
return toError(_errors.UnauthorizedError);
|
|
80
|
+
}
|
|
81
|
+
if (err.response.status === 412) {
|
|
82
|
+
return toError(_errors.OptimisticConcurrencyException);
|
|
91
83
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
84
|
+
return _core.Effect.fail(err);
|
|
85
|
+
}), _core.Effect.catchTags({
|
|
86
|
+
"ResponseError": err => _core.Effect.orDie(err.response.text
|
|
87
|
+
// TODO
|
|
88
|
+
).pipe(_core.Effect.flatMap(_ => _core.Effect.fail({
|
|
89
|
+
_tag: "HttpErrorResponse",
|
|
90
|
+
response: {
|
|
91
|
+
body: _core.Option.fromNullable(_),
|
|
92
|
+
status: err.response.status,
|
|
93
|
+
headers: err.response.headers
|
|
94
|
+
}
|
|
95
|
+
}))),
|
|
96
|
+
"RequestError": err => _core.Effect.fail({
|
|
97
|
+
_tag: "HttpErrorRequest",
|
|
98
|
+
error: err.cause
|
|
99
|
+
})
|
|
100
|
+
}), _core.Effect.scoped));
|
|
100
101
|
}
|
|
101
|
-
function fetchApi2S(request, response) {
|
|
102
|
+
function fetchApi2S(request, response, responseError) {
|
|
102
103
|
const encodeRequest = _lib.S.encode(request);
|
|
103
104
|
const decRes = _lib.S.decodeUnknown(response);
|
|
104
105
|
const decodeRes = u => _core.Effect.mapError(decRes(u), err => new ResError(err));
|
|
@@ -106,14 +107,14 @@ function fetchApi2S(request, response) {
|
|
|
106
107
|
return (method, path) => req => {
|
|
107
108
|
return _core.Effect.andThen(encodeRequest(req), encoded => fetchApi(method, method === "DELETE"
|
|
108
109
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
109
|
-
? makePathWithQuery(path, encoded) : makePathWithBody(path, encoded), encoded).pipe(_core.Effect.flatMap(parse)));
|
|
110
|
+
? makePathWithQuery(path, encoded) : makePathWithBody(path, encoded), encoded, responseError).pipe(_core.Effect.flatMap(parse)));
|
|
110
111
|
};
|
|
111
112
|
}
|
|
112
113
|
function fetchApi3S({
|
|
113
114
|
Request,
|
|
114
115
|
Response
|
|
115
116
|
}) {
|
|
116
|
-
return fetchApi2S(Request, Response)(Request.method, new _pathParser.Path(Request.path));
|
|
117
|
+
return fetchApi2S(Request, Response, Request.errors)(Request.method, new _pathParser.Path(Request.path));
|
|
117
118
|
}
|
|
118
119
|
function fetchApi3SE({
|
|
119
120
|
Request,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.cjs","names":["_core","require","_Function","_effect","_schema","_pathParser","_queryString","_interopRequireDefault","
|
|
1
|
+
{"version":3,"file":"fetch.cjs","names":["_core","require","_Function","_effect","_schema","_pathParser","_queryString","_interopRequireDefault","_http","_lib","_config","_errors","e","__esModule","default","ResError","error","_tag","constructor","exports","getClient","Effect","flatMap","HttpClient","defaultClient","map","ApiConfig","Tag","apiUrl","headers","pipe","filterStatusOk","mapRequest","_","HttpClientRequest","acceptJson","prependUrl","setHeaders","Option","getOrUndefined","HashMap","get","StringId","make","Object","fromEntries","tapRequest","r","logDebug","method","annotateLogs","url","body","TextDecoder","decode","mapEffect","status","sync","json","withSpan","fetchApi","path","responseError","client","undefined","jsonBody","catchTag","err","toError","s","response","S","decodeUnknown","catchAll","fail","NotFoundError","ValidationError","NotLoggedInError","Union","InvalidStateError","ServiceUnavailableError","UnauthorizedError","OptimisticConcurrencyException","catchTags","orDie","text","fromNullable","cause","scoped","fetchApi2S","request","encodeRequest","encode","decRes","decodeRes","u","mapError","parse","mapResponseM","req","andThen","encoded","makePathWithQuery","makePathWithBody","fetchApi3S","Request","Response","errors","Path","fetchApi3SE","a","pars","forQs","Record","filter","k","params","includes","q","build","ignoreSearch","ignoreConstraints","keys","length","qs","stringify","mapResponse","all","EmptyResponse","freeze","EmptyResponseM","EmptyResponseMThunk_","constant","EmptyResponseMThunk","getBody","eff","die"],"sources":["../../src/client/fetch.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/_cjs/schema.cjs
CHANGED
|
@@ -8,10 +8,11 @@ var _exportNames = {
|
|
|
8
8
|
PhoneNumber: true,
|
|
9
9
|
makeIs: true,
|
|
10
10
|
makeIsAnyOf: true,
|
|
11
|
+
taggedUnionMap: true,
|
|
11
12
|
ExtendTaggedUnion: true,
|
|
12
13
|
TaggedUnion: true
|
|
13
14
|
};
|
|
14
|
-
exports.makeIsAnyOf = exports.makeIs = exports.TaggedUnion = exports.PhoneNumber = exports.ExtendTaggedUnion = exports.Email = void 0;
|
|
15
|
+
exports.taggedUnionMap = exports.makeIsAnyOf = exports.makeIs = exports.TaggedUnion = exports.PhoneNumber = exports.ExtendTaggedUnion = exports.Email = void 0;
|
|
15
16
|
var _core = require("@effect-app/core");
|
|
16
17
|
var S = _interopRequireWildcard(require("@effect-app/schema"));
|
|
17
18
|
Object.keys(S).forEach(function (key) {
|
|
@@ -75,14 +76,24 @@ const makeIsAnyOf = schema => {
|
|
|
75
76
|
throw new Error("Unsupported");
|
|
76
77
|
};
|
|
77
78
|
exports.makeIsAnyOf = makeIsAnyOf;
|
|
79
|
+
const taggedUnionMap = self => self.reduce((acc, key) => {
|
|
80
|
+
// TODO: check upstream what's going on with literals of _tag
|
|
81
|
+
const tg = key.fields._tag;
|
|
82
|
+
const tag = "ast" in tg && tg.ast._tag === "PropertySignatureDeclaration" ? tg.ast.type.literal : tg.literals[0] // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access
|
|
83
|
+
;
|
|
84
|
+
acc[tag] = key;
|
|
85
|
+
return acc;
|
|
86
|
+
}, {});
|
|
87
|
+
exports.taggedUnionMap = taggedUnionMap;
|
|
78
88
|
const ExtendTaggedUnion = schema => (0, _utils.extendM)(schema, _ => ({
|
|
79
89
|
is: makeIs(_),
|
|
80
|
-
isAnyOf: makeIsAnyOf(_)
|
|
90
|
+
isAnyOf: makeIsAnyOf(_) /*, map: taggedUnionMap(a) */
|
|
81
91
|
}));
|
|
82
92
|
exports.ExtendTaggedUnion = ExtendTaggedUnion;
|
|
83
93
|
const TaggedUnion = (...a) => (0, _core.pipe)(S.Union(...a), _ => (0, _utils.extendM)(_, _ => ({
|
|
84
94
|
is: makeIs(_),
|
|
85
|
-
isAnyOf: makeIsAnyOf(_)
|
|
95
|
+
isAnyOf: makeIsAnyOf(_),
|
|
96
|
+
tagMap: taggedUnionMap(a)
|
|
86
97
|
})));
|
|
87
98
|
exports.TaggedUnion = TaggedUnion;
|
|
88
99
|
//# sourceMappingURL=schema.cjs.map
|
package/_cjs/schema.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.cjs","names":["_core","require","S","_interopRequireWildcard","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_faker","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","Email","pipe","annotations","arbitrary","fc","fakerArb","faker","internet","exampleEmail","map","withDefaultMake","PhoneNumber","phone","number","makeIs","schema","AST","isUnion","ast","types","reduce","acc","isTransformation","isDeclaration","to","from","isTypeLiteral","tag","Array","findFirst","propertySignatures","_","name","isLiteral","type","Option","some","none","getOrUndefined","String","literal","x","_tag","Error","makeIsAnyOf","includes","ExtendTaggedUnion","extendM","is","isAnyOf","TaggedUnion","Union"],"sources":["../src/schema.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.cjs","names":["_core","require","S","_interopRequireWildcard","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_faker","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","Email","pipe","annotations","arbitrary","fc","fakerArb","faker","internet","exampleEmail","map","withDefaultMake","PhoneNumber","phone","number","makeIs","schema","AST","isUnion","ast","types","reduce","acc","isTransformation","isDeclaration","to","from","isTypeLiteral","tag","Array","findFirst","propertySignatures","_","name","isLiteral","type","Option","some","none","getOrUndefined","String","literal","x","_tag","Error","makeIsAnyOf","includes","taggedUnionMap","self","tg","fields","literals","ExtendTaggedUnion","extendM","is","isAnyOf","TaggedUnion","Union","tagMap"],"sources":["../src/schema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/Operations.d.ts
CHANGED
|
@@ -41,6 +41,10 @@ export declare class Failure extends Failure_base {
|
|
|
41
41
|
export declare const OperationResult: S.Schema<Success | Failure, Success.From | Failure.From, never> & {
|
|
42
42
|
is: S.Is<Success | Failure>;
|
|
43
43
|
isAnyOf: S.IsAny<Success | Failure>;
|
|
44
|
+
tagMap: {
|
|
45
|
+
Success: typeof Success;
|
|
46
|
+
Failure: typeof Failure;
|
|
47
|
+
};
|
|
44
48
|
};
|
|
45
49
|
export type OperationResult = S.Schema.Type<typeof OperationResult>;
|
|
46
50
|
declare const Operation_base: S.EnhancedClass<Operation, {
|
|
@@ -56,6 +60,10 @@ declare const Operation_base: S.EnhancedClass<Operation, {
|
|
|
56
60
|
result: S.optional<S.Schema<Success | Failure, Success.From | Failure.From, never> & {
|
|
57
61
|
is: S.Is<Success | Failure>;
|
|
58
62
|
isAnyOf: S.IsAny<Success | Failure>;
|
|
63
|
+
tagMap: {
|
|
64
|
+
Success: typeof Success;
|
|
65
|
+
Failure: typeof Failure;
|
|
66
|
+
};
|
|
59
67
|
}>;
|
|
60
68
|
createdAt: S.PropertySignature<":", Date, never, ":", string, true, never>;
|
|
61
69
|
updatedAt: S.PropertySignature<":", Date | null, never, ":", string | null, true, never>;
|
package/dist/Operations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../src/Operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAA;AAEhC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAA;AACpC,eAAO,MAAM,WAAW;;;;;;CAAa,CAAA;;;;;;;;;;;;AAErC,qBAAa,iBAAkB,SAAQ,sBAMrC;CAAG;;;;;;;;AAEL,qBAAa,OAAQ,SAAQ,YAE3B;CAAG;;;;;;;;AAEL,qBAAa,OAAQ,SAAQ,YAE3B;CAAG;AAEL,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../src/Operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAA;AAEhC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAA;AACpC,eAAO,MAAM,WAAW;;;;;;CAAa,CAAA;;;;;;;;;;;;AAErC,qBAAa,iBAAkB,SAAQ,sBAMrC;CAAG;;;;;;;;AAEL,qBAAa,OAAQ,SAAQ,YAE3B;CAAG;;;;;;;;AAEL,qBAAa,OAAQ,SAAQ,YAE3B;CAAG;AAEL,eAAO,MAAM,eAAe;;;;;;;CAAkC,CAAA;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,eAAe,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEnE,qBAAa,SAAU,SAAQ,cAO7B;CAAG;AAKL,yBAAiB,iBAAiB,CAAC;IACjC,UAAiB,IAAK,SAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;KAAG;CACtF;AACD,yBAAiB,OAAO,CAAC;IACvB,UAAiB,IAAK,SAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;KAAG;CAC5E;AACD,yBAAiB,OAAO,CAAC;IACvB,UAAiB,IAAK,SAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;KAAG;CAC5E;AACD,yBAAiB,SAAS,CAAC;IACzB,UAAiB,IAAK,SAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;KAAG;CAC9E"}
|
package/dist/Operations.js
CHANGED
|
@@ -13,7 +13,7 @@ export class Failure extends S.ExtendedTaggedClass()("Failure", {
|
|
|
13
13
|
message: S.NullOr(S.NonEmptyString2k).withDefault
|
|
14
14
|
}) {
|
|
15
15
|
}
|
|
16
|
-
export const OperationResult = S.
|
|
16
|
+
export const OperationResult = S.TaggedUnion(Success, Failure);
|
|
17
17
|
export class Operation extends S.ExtendedClass()({
|
|
18
18
|
id: OperationId,
|
|
19
19
|
title: S.NonEmptyString2k,
|
|
@@ -26,4 +26,4 @@ export class Operation extends S.ExtendedClass()({
|
|
|
26
26
|
/* eslint-enable */
|
|
27
27
|
//
|
|
28
28
|
// codegen:end
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9PcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sYUFBYSxDQUFBO0FBR2hDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFBO0FBRXJDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxDQUFDLENBQUMsYUFBYSxFQUduRCxDQUFDO0lBQ0YsU0FBUyxFQUFFLENBQUMsQ0FBQyxjQUFjO0lBQzNCLEtBQUssRUFBRSxDQUFDLENBQUMsY0FBYztDQUN4QixDQUFDO0NBQUc7QUFFTCxNQUFNLE9BQU8sT0FBUSxTQUFRLENBQUMsQ0FBQyxtQkFBbUIsRUFBeUIsQ0FBQyxTQUFTLEVBQUU7SUFDckYsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsV0FBVztDQUNsRCxDQUFDO0NBQUc7QUFFTCxNQUFNLE9BQU8sT0FBUSxTQUFRLENBQUMsQ0FBQyxtQkFBbUIsRUFBeUIsQ0FBQyxTQUFTLEVBQUU7SUFDckYsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsV0FBVztDQUNsRCxDQUFDO0NBQUc7QUFFTCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFHOUQsTUFBTSxPQUFPLFNBQVUsU0FBUSxDQUFDLENBQUMsYUFBYSxFQUE2QixDQUFDO0lBQzFFLEVBQUUsRUFBRSxXQUFXO0lBQ2YsS0FBSyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0I7SUFDekIsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUM7SUFDdkMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBQ25DLFNBQVMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVc7SUFDN0IsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVc7Q0FDeEMsQ0FBQztDQUFHO0FBaUJMLG1CQUFtQjtBQUNuQixFQUFFO0FBQ0YsY0FBYyJ9
|
package/dist/client/clientFor.js
CHANGED
|
@@ -65,7 +65,7 @@ function clientFor_(models) {
|
|
|
65
65
|
prev[cur] = Request.method === "GET"
|
|
66
66
|
? fields.length === 0
|
|
67
67
|
? {
|
|
68
|
-
handler: fetchApi(Request.method, Request.path)
|
|
68
|
+
handler: fetchApi(Request.method, Request.path, undefined, Request.errors)
|
|
69
69
|
.pipe(Effect.flatMap(parse), Effect
|
|
70
70
|
.withSpan("client.request " + requestName, {
|
|
71
71
|
attributes: { "request.name": requestName }
|
|
@@ -73,7 +73,7 @@ function clientFor_(models) {
|
|
|
73
73
|
...meta
|
|
74
74
|
}
|
|
75
75
|
: {
|
|
76
|
-
handler: (req) => fetchApi(Request.method, makePathWithQuery(path, S.encodeSync(Request)(req)))
|
|
76
|
+
handler: (req) => fetchApi(Request.method, makePathWithQuery(path, S.encodeSync(Request)(req)), undefined, Request.errors)
|
|
77
77
|
.pipe(Effect.flatMap(parse), Effect
|
|
78
78
|
.withSpan("client.request " + requestName, {
|
|
79
79
|
attributes: { "request.name": requestName }
|
|
@@ -142,4 +142,4 @@ function clientFor_(models) {
|
|
|
142
142
|
return prev;
|
|
143
143
|
}, {}));
|
|
144
144
|
}
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50Rm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9jbGllbnRGb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMERBQTBEO0FBQzFELHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRS9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRWxDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUl6QyxPQUFPLEVBQ0wsUUFBUSxFQUNSLFVBQVUsRUFDVixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osUUFBUSxFQUNULE1BQU0sWUFBWSxDQUFBO0FBRW5CLGNBQWMsYUFBYSxDQUFBO0FBVTNCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFvQixDQUFBO0FBY3pDLE1BQU0sVUFBVSxTQUFTLENBQ3ZCLE1BQVM7SUFFVCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQy9CLElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFDRCxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDcEIsT0FBTyxDQUFDLENBQUE7QUFDVixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQXFCLE1BQVM7SUFDL0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDekIseURBQXlEO1NBQ3hELE1BQU0sQ0FBQyxDQUFDLENB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
|
package/dist/client/fetch.d.ts
CHANGED
|
@@ -2,30 +2,32 @@ import { Effect } from "@effect-app/core";
|
|
|
2
2
|
import type { Headers, HttpError, HttpRequestError, HttpResponseError, Method } from "@effect-app/core/http/http-client";
|
|
3
3
|
import type { REST, Schema } from "effect-app/schema";
|
|
4
4
|
import { Path } from "path-parser";
|
|
5
|
-
import { ApiConfig } from "./config.js";
|
|
6
|
-
import { InvalidStateError, NotFoundError, NotLoggedInError, OptimisticConcurrencyException, ServiceUnavailableError, UnauthorizedError, ValidationError } from "./errors.js";
|
|
7
5
|
import { HttpClient } from "../http.js";
|
|
8
6
|
import { S } from "../lib.js";
|
|
7
|
+
import { ApiConfig } from "./config.js";
|
|
8
|
+
import { InvalidStateError, NotFoundError, NotLoggedInError, OptimisticConcurrencyException, ServiceUnavailableError, UnauthorizedError, ValidationError } from "./errors.js";
|
|
9
9
|
export type FetchError = HttpError<string>;
|
|
10
10
|
export declare class ResError {
|
|
11
11
|
readonly error: unknown;
|
|
12
12
|
readonly _tag = "ResponseError";
|
|
13
13
|
constructor(error: unknown);
|
|
14
14
|
}
|
|
15
|
-
export declare function fetchApi(method: Method, path: string, body?: unknown): Effect.Effect<{
|
|
15
|
+
export declare function fetchApi(method: Method, path: string, body?: unknown, responseError?: S.Schema.AnyNoContext): Effect.Effect<{
|
|
16
16
|
status: number;
|
|
17
17
|
body: unknown;
|
|
18
18
|
headers: import("@effect/platform/Headers").Headers;
|
|
19
|
-
} | FetchResponse<unknown>, NotFoundError<ItemType> | InvalidStateError | ServiceUnavailableError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError |
|
|
20
|
-
export declare function fetchApi2S<RequestR, RequestFrom, RequestTo, ResponseR, ResponseFrom, ResponseTo
|
|
19
|
+
} | FetchResponse<unknown>, NotFoundError<ItemType> | InvalidStateError | ServiceUnavailableError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | import("@effect/platform/HttpBody").HttpBodyError | HttpResponseError<unknown>, HttpClient.HttpClient.Default | ApiConfig>;
|
|
20
|
+
export declare function fetchApi2S<RequestR, RequestFrom, RequestTo, ResponseR, ResponseFrom, ResponseTo, ResponseErrorFrom = never, ResponseErrorTo extends {
|
|
21
|
+
_tag: string;
|
|
22
|
+
} = never>(request: Schema<RequestTo, RequestFrom, RequestR>, response: Schema<ResponseTo, ResponseFrom, ResponseR>, responseError?: Schema<ResponseErrorTo, ResponseErrorFrom, never>): (method: Method, path: Path) => (req: RequestTo) => Effect.Effect<FetchResponse<ResponseTo>, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ServiceUnavailableError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError | import("@effect/platform/HttpBody").HttpBodyError | HttpResponseError<unknown>, HttpClient.HttpClient.Default | ApiConfig | RequestR | ResponseR>;
|
|
21
23
|
export declare function fetchApi3S<RequestA, RequestE, ResponseE = unknown, ResponseA = void>({ Request, Response }: {
|
|
22
24
|
Request: REST.RequestSchemed<RequestA, RequestE>;
|
|
23
25
|
Response: REST.ReqRes<ResponseA, ResponseE, any>;
|
|
24
|
-
}): (req: RequestA) => Effect.Effect<FetchResponse<ResponseA>, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ServiceUnavailableError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError |
|
|
26
|
+
}): (req: RequestA) => Effect.Effect<FetchResponse<ResponseA>, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ServiceUnavailableError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError | import("@effect/platform/HttpBody").HttpBodyError | HttpResponseError<unknown>, any>;
|
|
25
27
|
export declare function fetchApi3SE<RequestA, RequestE, ResponseE = unknown, ResponseA = void>({ Request, Response }: {
|
|
26
28
|
Request: REST.RequestSchemed<RequestA, RequestE>;
|
|
27
29
|
Response: REST.ReqRes<ResponseA, ResponseE, any>;
|
|
28
|
-
}): (req: RequestA) => Effect.Effect<FetchResponse<ResponseE>, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ServiceUnavailableError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError |
|
|
30
|
+
}): (req: RequestA) => Effect.Effect<FetchResponse<ResponseE>, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ServiceUnavailableError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError | import("@effect/platform/HttpBody").HttpBodyError | HttpResponseError<unknown>, any>;
|
|
29
31
|
export declare function makePathWithQuery(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
|
|
30
32
|
export declare function makePathWithBody(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
|
|
31
33
|
export declare function mapResponse<T, A>(map: (t: T) => A): (r: FetchResponse<T>) => FetchResponse<A>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/client/fetch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAmB,MAAM,kBAAkB,CAAA;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/client/fetch.ts"],"names":[],"mappings":"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"}
|
package/dist/client/fetch.js
CHANGED
|
@@ -5,10 +5,10 @@ import { Record } from "effect";
|
|
|
5
5
|
import { StringId } from "effect-app/schema";
|
|
6
6
|
import { Path } from "path-parser";
|
|
7
7
|
import qs from "query-string";
|
|
8
|
-
import { ApiConfig } from "./config.js";
|
|
9
|
-
import { InvalidStateError, NotFoundError, NotLoggedInError, OptimisticConcurrencyException, ServiceUnavailableError, UnauthorizedError, ValidationError } from "./errors.js";
|
|
10
8
|
import { HttpClient, HttpClientRequest } from "../http.js";
|
|
11
9
|
import { S } from "../lib.js";
|
|
10
|
+
import { ApiConfig } from "./config.js";
|
|
11
|
+
import { InvalidStateError, NotFoundError, NotLoggedInError, OptimisticConcurrencyException, ServiceUnavailableError, UnauthorizedError, ValidationError } from "./errors.js";
|
|
12
12
|
export class ResError {
|
|
13
13
|
error;
|
|
14
14
|
_tag = "ResponseError";
|
|
@@ -36,55 +36,8 @@ const getClient = Effect.flatMap(HttpClient.HttpClient, (defaultClient) => Effec
|
|
|
36
36
|
.mapEffect((_) => (_.status === 204
|
|
37
37
|
? Effect.sync(() => ({ status: _.status, body: void 0, headers: _.headers }))
|
|
38
38
|
: Effect.map(_.json, (body) => ({ status: _.status, body, headers: _.headers })))
|
|
39
|
-
.pipe(Effect.withSpan("client.response")))
|
|
40
|
-
|
|
41
|
-
const toError = (s) => Effect
|
|
42
|
-
.flatMap(err
|
|
43
|
-
.response
|
|
44
|
-
.json, (_) => S.decodeUnknown(s)(_).pipe(Effect.catchAll(() => Effect.fail(err))))
|
|
45
|
-
.pipe(Effect.flatMap(Effect.fail));
|
|
46
|
-
// opposite of api's `defaultErrorHandler`
|
|
47
|
-
if (err.response.status === 404) {
|
|
48
|
-
return toError(NotFoundError);
|
|
49
|
-
}
|
|
50
|
-
if (err.response.status === 400) {
|
|
51
|
-
return toError(ValidationError);
|
|
52
|
-
}
|
|
53
|
-
if (err.response.status === 401) {
|
|
54
|
-
return toError(NotLoggedInError);
|
|
55
|
-
}
|
|
56
|
-
if (err.response.status === 422) {
|
|
57
|
-
return toError(InvalidStateError);
|
|
58
|
-
}
|
|
59
|
-
if (err.response.status === 503) {
|
|
60
|
-
return toError(ServiceUnavailableError);
|
|
61
|
-
}
|
|
62
|
-
if (err.response.status === 403) {
|
|
63
|
-
return toError(UnauthorizedError);
|
|
64
|
-
}
|
|
65
|
-
if (err.response.status === 412) {
|
|
66
|
-
return toError(OptimisticConcurrencyException);
|
|
67
|
-
}
|
|
68
|
-
return Effect.fail(err);
|
|
69
|
-
}), HttpClient.catchTags({
|
|
70
|
-
"ResponseError": (err) => Effect
|
|
71
|
-
.orDie(err
|
|
72
|
-
.response
|
|
73
|
-
.text
|
|
74
|
-
// TODO
|
|
75
|
-
)
|
|
76
|
-
.pipe(Effect
|
|
77
|
-
.flatMap((_) => Effect.fail({
|
|
78
|
-
_tag: "HttpErrorResponse",
|
|
79
|
-
response: {
|
|
80
|
-
body: Option.fromNullable(_),
|
|
81
|
-
status: err.response.status,
|
|
82
|
-
headers: err.response.headers
|
|
83
|
-
}
|
|
84
|
-
}))),
|
|
85
|
-
"RequestError": (err) => Effect.fail({ _tag: "HttpErrorRequest", error: err.cause })
|
|
86
|
-
}))));
|
|
87
|
-
export function fetchApi(method, path, body) {
|
|
39
|
+
.pipe(Effect.withSpan("client.response"))))));
|
|
40
|
+
export function fetchApi(method, path, body, responseError) {
|
|
88
41
|
return Effect.flatMap(getClient, (client) => (method === "GET"
|
|
89
42
|
? client(HttpClientRequest.make(method)(path))
|
|
90
43
|
: body === undefined
|
|
@@ -92,9 +45,59 @@ export function fetchApi(method, path, body) {
|
|
|
92
45
|
: HttpClientRequest
|
|
93
46
|
.make(method)(path)
|
|
94
47
|
.pipe(HttpClientRequest.jsonBody(body), Effect.flatMap(client)))
|
|
95
|
-
.pipe(Effect
|
|
48
|
+
.pipe(Effect
|
|
49
|
+
.catchTag("ResponseError", (err) => {
|
|
50
|
+
const toError = (s) => Effect
|
|
51
|
+
.flatMap(err
|
|
52
|
+
.response
|
|
53
|
+
.json, (_) => S.decodeUnknown(s)(_).pipe(Effect.catchAll(() => Effect.fail(err))))
|
|
54
|
+
.pipe(Effect.flatMap(Effect.fail));
|
|
55
|
+
// opposite of api's `defaultErrorHandler`
|
|
56
|
+
if (err.response.status === 404) {
|
|
57
|
+
return toError(NotFoundError);
|
|
58
|
+
}
|
|
59
|
+
if (err.response.status === 400) {
|
|
60
|
+
return toError(ValidationError);
|
|
61
|
+
}
|
|
62
|
+
if (err.response.status === 401) {
|
|
63
|
+
return toError(NotLoggedInError);
|
|
64
|
+
}
|
|
65
|
+
// TODO: DomainError
|
|
66
|
+
if (err.response.status === 422) {
|
|
67
|
+
return responseError
|
|
68
|
+
? toError(S.Union(responseError, InvalidStateError))
|
|
69
|
+
: toError(InvalidStateError);
|
|
70
|
+
}
|
|
71
|
+
if (err.response.status === 503) {
|
|
72
|
+
return toError(ServiceUnavailableError);
|
|
73
|
+
}
|
|
74
|
+
if (err.response.status === 403) {
|
|
75
|
+
return toError(UnauthorizedError);
|
|
76
|
+
}
|
|
77
|
+
if (err.response.status === 412) {
|
|
78
|
+
return toError(OptimisticConcurrencyException);
|
|
79
|
+
}
|
|
80
|
+
return Effect.fail(err);
|
|
81
|
+
}), Effect.catchTags({
|
|
82
|
+
"ResponseError": (err) => Effect
|
|
83
|
+
.orDie(err
|
|
84
|
+
.response
|
|
85
|
+
.text
|
|
86
|
+
// TODO
|
|
87
|
+
)
|
|
88
|
+
.pipe(Effect
|
|
89
|
+
.flatMap((_) => Effect.fail({
|
|
90
|
+
_tag: "HttpErrorResponse",
|
|
91
|
+
response: {
|
|
92
|
+
body: Option.fromNullable(_),
|
|
93
|
+
status: err.response.status,
|
|
94
|
+
headers: err.response.headers
|
|
95
|
+
}
|
|
96
|
+
}))),
|
|
97
|
+
"RequestError": (err) => Effect.fail({ _tag: "HttpErrorRequest", error: err.cause })
|
|
98
|
+
}), Effect.scoped));
|
|
96
99
|
}
|
|
97
|
-
export function fetchApi2S(request, response) {
|
|
100
|
+
export function fetchApi2S(request, response, responseError) {
|
|
98
101
|
const encodeRequest = S.encode(request);
|
|
99
102
|
const decRes = S.decodeUnknown(response);
|
|
100
103
|
const decodeRes = (u) => Effect.mapError(decRes(u), (err) => new ResError(err));
|
|
@@ -103,12 +106,12 @@ export function fetchApi2S(request, response) {
|
|
|
103
106
|
return Effect.andThen(encodeRequest(req), (encoded) => fetchApi(method, method === "DELETE"
|
|
104
107
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
105
108
|
? makePathWithQuery(path, encoded)
|
|
106
|
-
: makePathWithBody(path, encoded), encoded)
|
|
109
|
+
: makePathWithBody(path, encoded), encoded, responseError)
|
|
107
110
|
.pipe(Effect.flatMap(parse)));
|
|
108
111
|
};
|
|
109
112
|
}
|
|
110
113
|
export function fetchApi3S({ Request, Response }) {
|
|
111
|
-
return fetchApi2S(Request, Response)(Request.method, new Path(Request.path));
|
|
114
|
+
return fetchApi2S(Request, Response, Request.errors)(Request.method, new Path(Request.path));
|
|
112
115
|
}
|
|
113
116
|
export function fetchApi3SE({ Request, Response }) {
|
|
114
117
|
const a = fetchApi2S(Request, Response)(Request.method, new Path(Request.path));
|
|
@@ -151,4 +154,4 @@ export function EmptyResponseMThunk() {
|
|
|
151
154
|
export function getBody(eff) {
|
|
152
155
|
return Effect.flatMap(eff, (r) => r.body === null ? Effect.die("Not found") : Effect.sync(() => r.body));
|
|
153
156
|
}
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2ZldGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFFcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUUvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV2QyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsOEJBQThCLEVBQzlCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsZUFBZSxFQUNoQixNQUFNLGFBQWEsQ0FBQTtBQUdwQixPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzFELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFJN0IsTUFBTSxPQUFPLFFBQVE7SUFFUztJQURaLElBQUksR0FBRyxlQUFlLENBQUE7SUFDdEMsWUFBNEIsS0FBYztRQUFkLFVBQUssR0FBTCxLQUFLLENBQVM7SUFBRyxDQUFDO0NBQy9DO0FBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FDOUIsVUFBVSxDQUFDLFVBQVUsRUFDckIsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUNoQixNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVB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
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2ZldGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFHcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUUvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMxRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFdkMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLDhCQUE4QixFQUM5Qix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDaEIsTUFBTSxhQUFhLENBQUE7QUFJcEIsTUFBTSxPQUFPLFFBQVE7SUFFUztJQURaLElBQUksR0FBRyxlQUFlLENBQUE7SUFDdEMsWUFBNEIsS0FBYztRQUFkLFVBQUssR0FBTCxLQUFLLENBQVM7SUFBRyxDQUFDO0NBQy9DO0FBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FDOUIsVUFBVSxDQUFDLFVBQVUsRUFDckIsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUNoQixNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVB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
|
package/dist/schema.d.ts
CHANGED
|
@@ -11,12 +11,6 @@ export declare const makeIs: <A extends {
|
|
|
11
11
|
export declare const makeIsAnyOf: <A extends {
|
|
12
12
|
_tag: string;
|
|
13
13
|
}, I, R>(schema: S.Schema<A, I, R>) => IsAny<A>;
|
|
14
|
-
export declare const ExtendTaggedUnion: <A extends {
|
|
15
|
-
_tag: string;
|
|
16
|
-
}, I, R>(schema: S.Schema<A, I, R>) => S.Schema<A, I, R> & {
|
|
17
|
-
is: Is<A>;
|
|
18
|
-
isAnyOf: IsAny<A>;
|
|
19
|
-
};
|
|
20
14
|
export type ExtractUnion<A extends {
|
|
21
15
|
_tag: string;
|
|
22
16
|
}, Tags extends A["_tag"]> = Extract<A, Record<"_tag", Tags>>;
|
|
@@ -31,11 +25,31 @@ export interface IsAny<A extends {
|
|
|
31
25
|
}> {
|
|
32
26
|
<Keys extends A["_tag"][]>(...keys: Keys): (a: A) => a is ExtractUnion<A, ElemType<Keys>>;
|
|
33
27
|
}
|
|
34
|
-
export declare const
|
|
28
|
+
export declare const taggedUnionMap: <Members extends readonly (S.Schema<{
|
|
35
29
|
_tag: string;
|
|
36
|
-
}, any, any>
|
|
30
|
+
}, any, any> & {
|
|
31
|
+
fields: {
|
|
32
|
+
_tag: {
|
|
33
|
+
literals: readonly [string];
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
})[]>(self: Members) => { [Key in Members[number] as Key["fields"]["_tag"]["literals"][0]]: Key; };
|
|
37
|
+
export declare const ExtendTaggedUnion: <A extends {
|
|
38
|
+
_tag: string;
|
|
39
|
+
}, I, R>(schema: S.Schema<A, I, R>) => S.Schema<A, I, R> & {
|
|
40
|
+
is: Is<A>;
|
|
41
|
+
isAnyOf: IsAny<A>;
|
|
42
|
+
};
|
|
43
|
+
export declare const TaggedUnion: <Members extends ReadonlyArray<S.Schema.Any & {
|
|
44
|
+
fields: {
|
|
45
|
+
_tag: {
|
|
46
|
+
literals: readonly [string];
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
}>>(...a: Members) => S.Schema<S.Schema.Type<[...Members][number]>, S.Schema.Encoded<[...Members][number]>, S.Schema.Context<[...Members][number]>> & {
|
|
37
50
|
is: Is<S.Schema.Type<[...Members][number]>>;
|
|
38
51
|
isAnyOf: IsAny<S.Schema.Type<[...Members][number]>>;
|
|
52
|
+
tagMap: { [Key in Members[number] as Key["fields"]["_tag"]["literals"][0]]: Key; };
|
|
39
53
|
};
|
|
40
54
|
export type PhoneNumber = PhoneNumberT;
|
|
41
55
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAU,KAAK,KAAK,IAAI,MAAM,EAAE,KAAK,WAAW,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAIvC,cAAc,oBAAoB,CAAA;AAElC,eAAO,MAAM,KAAK,qJAQf,CAAA;AAEH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAA;AAE1B,eAAO,MAAM,WAAW,iKASrB,CAAA;AAEH,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,UAC7C,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UA6B1B,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,UAClD,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACxB,KAAK,CAAC,CAAC,CAMT,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAU,KAAK,KAAK,IAAI,MAAM,EAAE,KAAK,WAAW,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAIvC,cAAc,oBAAoB,CAAA;AAElC,eAAO,MAAM,KAAK,qJAQf,CAAA;AAEH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAA;AAE1B,eAAO,MAAM,WAAW,iKASrB,CAAA;AAEH,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,UAC7C,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UA6B1B,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,UAClD,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACxB,KAAK,CAAC,CAAC,CAMT,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;AAC/G,MAAM,MAAM,EAAE,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,IAAI;KAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;CAAE,CAAA;AACxF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAC9D,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;IAC/C,CAAC,IAAI,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;CAC1F;AAED,eAAO,MAAM,cAAc,GACzB,OAAO,SACG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG;IAAE,MAAM,EAAE;QAAE,IAAI,EAAE;YAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,CAAC,EAAE,QAE7G,OAAO,QASD,GAAG,oEAAoE,CAAA;AAErF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,UACxD,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;CAC4E,CAAA;AAEvG,eAAO,MAAM,WAAW,GACtB,OAAO,SAAS,aAAa,CAC3B,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;IAAE,MAAM,EAAE;QAAE,IAAI,EAAE;YAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,CACrE,QACK,OAAO;;;eAVD,GAAG;CAWuG,CAAA;AAExH,MAAM,MAAM,WAAW,GAAG,YAAY,CAAA"}
|
package/dist/schema.js
CHANGED
|
@@ -53,6 +53,15 @@ export const makeIsAnyOf = (schema) => {
|
|
|
53
53
|
}
|
|
54
54
|
throw new Error("Unsupported");
|
|
55
55
|
};
|
|
56
|
-
export const
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
export const taggedUnionMap = (self) => self.reduce((acc, key) => {
|
|
57
|
+
// TODO: check upstream what's going on with literals of _tag
|
|
58
|
+
const tg = key.fields._tag;
|
|
59
|
+
const tag = ("ast" in tg && tg.ast._tag === "PropertySignatureDeclaration" ? tg.ast.type.literal : tg
|
|
60
|
+
.literals[0]) // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access
|
|
61
|
+
;
|
|
62
|
+
acc[tag] = key;
|
|
63
|
+
return acc;
|
|
64
|
+
}, {});
|
|
65
|
+
export const ExtendTaggedUnion = (schema) => extendM(schema, (_) => ({ is: makeIs(_), isAnyOf: makeIsAnyOf(_) /*, map: taggedUnionMap(a) */ }));
|
|
66
|
+
export const TaggedUnion = (...a) => pipe(S.Union(...a), (_) => extendM(_, (_) => ({ is: makeIs(_), isAnyOf: makeIsAnyOf(_), tagMap: taggedUnionMap(a) })));
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUV0RCxPQUFPLEtBQUssQ0FBQyxNQUFNLG9CQUFvQixDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVwQyxjQUFjLG9CQUFvQixDQUFBO0FBRWxDLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDO0tBQ25CLEtBQUs7S0FDTCxJQUFJLENBQ0gsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNaLDZEQUE2RDtJQUM3RCxTQUFTLEVBQUUsR0FBMkIsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztDQUNqSCxDQUFDLEVBQ0YsQ0FBQyxDQUFDLGVBQWUsQ0FDbEIsQ0FBQTtBQUlILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDO0tBQ3pCLFdBQVc7S0FDWCxJQUFJLENBQ0gsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNaLFNBQVMsRUFBRSxHQUFpQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtJQUNwRCw2REFBNkQ7SUFDN0QsUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7Q0FDL0QsQ0FBQyxFQUNGLENBQUMsQ0FBQyxlQUFlLENBQ2xCLENB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-app",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"ts-pattern": "^5.3.1",
|
|
13
13
|
"uuid": "^10.0.0",
|
|
14
14
|
"validator": "^13.12.0",
|
|
15
|
-
"@effect-app/
|
|
16
|
-
"@effect-app/
|
|
15
|
+
"@effect-app/core": "1.7.1",
|
|
16
|
+
"@effect-app/schema": "1.8.0"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@babel/cli": "^7.25.6",
|
package/src/Operations.ts
CHANGED
|
@@ -19,7 +19,7 @@ export class Failure extends S.ExtendedTaggedClass<Failure, Failure.From>()("Fai
|
|
|
19
19
|
message: S.NullOr(S.NonEmptyString2k).withDefault
|
|
20
20
|
}) {}
|
|
21
21
|
|
|
22
|
-
export const OperationResult = S.
|
|
22
|
+
export const OperationResult = S.TaggedUnion(Success, Failure)
|
|
23
23
|
export type OperationResult = S.Schema.Type<typeof OperationResult>
|
|
24
24
|
|
|
25
25
|
export class Operation extends S.ExtendedClass<Operation, Operation.From>()({
|
package/src/client/clientFor.ts
CHANGED
|
@@ -116,7 +116,7 @@ function clientFor_<M extends Requests>(models: M) {
|
|
|
116
116
|
prev[cur] = Request.method === "GET"
|
|
117
117
|
? fields.length === 0
|
|
118
118
|
? {
|
|
119
|
-
handler: fetchApi(Request.method, Request.path)
|
|
119
|
+
handler: fetchApi(Request.method, Request.path, undefined, Request.errors)
|
|
120
120
|
.pipe(
|
|
121
121
|
Effect.flatMap(parse),
|
|
122
122
|
Effect
|
|
@@ -128,7 +128,7 @@ function clientFor_<M extends Requests>(models: M) {
|
|
|
128
128
|
}
|
|
129
129
|
: {
|
|
130
130
|
handler: (req: any) =>
|
|
131
|
-
fetchApi(Request.method, makePathWithQuery(path, S.encodeSync(Request)(req)))
|
|
131
|
+
fetchApi(Request.method, makePathWithQuery(path, S.encodeSync(Request)(req)), undefined, Request.errors)
|
|
132
132
|
.pipe(
|
|
133
133
|
Effect.flatMap(parse),
|
|
134
134
|
Effect
|
package/src/client/fetch.ts
CHANGED
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
import { Effect, HashMap, Option } from "@effect-app/core"
|
|
3
3
|
import { constant } from "@effect-app/core/Function"
|
|
4
4
|
import type { Headers, HttpError, HttpRequestError, HttpResponseError, Method } from "@effect-app/core/http/http-client"
|
|
5
|
+
import type { ResponseError } from "@effect/platform/HttpClientError"
|
|
5
6
|
import { Record } from "effect"
|
|
6
7
|
import type { REST, Schema } from "effect-app/schema"
|
|
7
8
|
import { StringId } from "effect-app/schema"
|
|
8
9
|
import { Path } from "path-parser"
|
|
9
10
|
import qs from "query-string"
|
|
11
|
+
import { HttpClient, HttpClientRequest } from "../http.js"
|
|
12
|
+
import { S } from "../lib.js"
|
|
10
13
|
import { ApiConfig } from "./config.js"
|
|
11
14
|
import type { SupportedErrors } from "./errors.js"
|
|
12
15
|
import {
|
|
@@ -19,10 +22,6 @@ import {
|
|
|
19
22
|
ValidationError
|
|
20
23
|
} from "./errors.js"
|
|
21
24
|
|
|
22
|
-
import type { ResponseError } from "@effect/platform/HttpClientError"
|
|
23
|
-
import { HttpClient, HttpClientRequest } from "../http.js"
|
|
24
|
-
import { S } from "../lib.js"
|
|
25
|
-
|
|
26
25
|
export type FetchError = HttpError<string>
|
|
27
26
|
|
|
28
27
|
export class ResError {
|
|
@@ -68,75 +67,15 @@ const getClient = Effect.flatMap(
|
|
|
68
67
|
? Effect.sync(() => ({ status: _.status, body: void 0, headers: _.headers }))
|
|
69
68
|
: Effect.map(_.json, (body) => ({ status: _.status, body, headers: _.headers })))
|
|
70
69
|
.pipe(Effect.withSpan("client.response"))
|
|
71
|
-
)
|
|
72
|
-
HttpClient
|
|
73
|
-
.catchTag(
|
|
74
|
-
"ResponseError",
|
|
75
|
-
(err): Effect<FetchResponse<unknown>, ResponseError | SupportedErrors> => {
|
|
76
|
-
const toError = <R, From, To>(s: Schema<To, From, R>) =>
|
|
77
|
-
Effect
|
|
78
|
-
.flatMap(
|
|
79
|
-
err
|
|
80
|
-
.response
|
|
81
|
-
.json,
|
|
82
|
-
(_) => S.decodeUnknown(s)(_).pipe(Effect.catchAll(() => Effect.fail(err)))
|
|
83
|
-
)
|
|
84
|
-
.pipe(Effect.flatMap(Effect.fail))
|
|
85
|
-
|
|
86
|
-
// opposite of api's `defaultErrorHandler`
|
|
87
|
-
if (err.response.status === 404) {
|
|
88
|
-
return toError(NotFoundError)
|
|
89
|
-
}
|
|
90
|
-
if (err.response.status === 400) {
|
|
91
|
-
return toError(ValidationError)
|
|
92
|
-
}
|
|
93
|
-
if (err.response.status === 401) {
|
|
94
|
-
return toError(NotLoggedInError)
|
|
95
|
-
}
|
|
96
|
-
if (err.response.status === 422) {
|
|
97
|
-
return toError(InvalidStateError)
|
|
98
|
-
}
|
|
99
|
-
if (err.response.status === 503) {
|
|
100
|
-
return toError(ServiceUnavailableError)
|
|
101
|
-
}
|
|
102
|
-
if (err.response.status === 403) {
|
|
103
|
-
return toError(UnauthorizedError)
|
|
104
|
-
}
|
|
105
|
-
if (err.response.status === 412) {
|
|
106
|
-
return toError(OptimisticConcurrencyException)
|
|
107
|
-
}
|
|
108
|
-
return Effect.fail(err)
|
|
109
|
-
}
|
|
110
|
-
),
|
|
111
|
-
HttpClient.catchTags({
|
|
112
|
-
"ResponseError": (err) =>
|
|
113
|
-
Effect
|
|
114
|
-
.orDie(
|
|
115
|
-
err
|
|
116
|
-
.response
|
|
117
|
-
.text
|
|
118
|
-
// TODO
|
|
119
|
-
)
|
|
120
|
-
.pipe(Effect
|
|
121
|
-
.flatMap((_) =>
|
|
122
|
-
Effect.fail({
|
|
123
|
-
_tag: "HttpErrorResponse" as const,
|
|
124
|
-
response: {
|
|
125
|
-
body: Option.fromNullable(_),
|
|
126
|
-
status: err.response.status,
|
|
127
|
-
headers: err.response.headers
|
|
128
|
-
}
|
|
129
|
-
} as HttpResponseError<unknown>)
|
|
130
|
-
)),
|
|
131
|
-
"RequestError": (err) => Effect.fail({ _tag: "HttpErrorRequest", error: err.cause } as HttpRequestError)
|
|
132
|
-
})
|
|
70
|
+
)
|
|
133
71
|
))
|
|
134
72
|
)
|
|
135
73
|
|
|
136
74
|
export function fetchApi(
|
|
137
75
|
method: Method,
|
|
138
76
|
path: string,
|
|
139
|
-
body?: unknown
|
|
77
|
+
body?: unknown,
|
|
78
|
+
responseError?: S.Schema.AnyNoContext
|
|
140
79
|
) {
|
|
141
80
|
return Effect.flatMap(getClient, (client) =>
|
|
142
81
|
(method === "GET"
|
|
@@ -146,12 +85,88 @@ export function fetchApi(
|
|
|
146
85
|
: HttpClientRequest
|
|
147
86
|
.make(method)(path)
|
|
148
87
|
.pipe(HttpClientRequest.jsonBody(body), Effect.flatMap(client)))
|
|
149
|
-
.pipe(
|
|
88
|
+
.pipe(
|
|
89
|
+
Effect
|
|
90
|
+
.catchTag(
|
|
91
|
+
"ResponseError",
|
|
92
|
+
(err): Effect<FetchResponse<unknown>, ResponseError | SupportedErrors> => {
|
|
93
|
+
const toError = <R, From, To>(s: Schema<To, From, R>) =>
|
|
94
|
+
Effect
|
|
95
|
+
.flatMap(
|
|
96
|
+
err
|
|
97
|
+
.response
|
|
98
|
+
.json,
|
|
99
|
+
(_) => S.decodeUnknown(s)(_).pipe(Effect.catchAll(() => Effect.fail(err)))
|
|
100
|
+
)
|
|
101
|
+
.pipe(Effect.flatMap(Effect.fail))
|
|
102
|
+
|
|
103
|
+
// opposite of api's `defaultErrorHandler`
|
|
104
|
+
if (err.response.status === 404) {
|
|
105
|
+
return toError(NotFoundError)
|
|
106
|
+
}
|
|
107
|
+
if (err.response.status === 400) {
|
|
108
|
+
return toError(ValidationError)
|
|
109
|
+
}
|
|
110
|
+
if (err.response.status === 401) {
|
|
111
|
+
return toError(NotLoggedInError)
|
|
112
|
+
}
|
|
113
|
+
// TODO: DomainError
|
|
114
|
+
if (err.response.status === 422) {
|
|
115
|
+
return responseError
|
|
116
|
+
? toError(S.Union(responseError, InvalidStateError) as any)
|
|
117
|
+
: toError(InvalidStateError)
|
|
118
|
+
}
|
|
119
|
+
if (err.response.status === 503) {
|
|
120
|
+
return toError(ServiceUnavailableError)
|
|
121
|
+
}
|
|
122
|
+
if (err.response.status === 403) {
|
|
123
|
+
return toError(UnauthorizedError)
|
|
124
|
+
}
|
|
125
|
+
if (err.response.status === 412) {
|
|
126
|
+
return toError(OptimisticConcurrencyException)
|
|
127
|
+
}
|
|
128
|
+
return Effect.fail(err)
|
|
129
|
+
}
|
|
130
|
+
),
|
|
131
|
+
Effect.catchTags({
|
|
132
|
+
"ResponseError": (err) =>
|
|
133
|
+
Effect
|
|
134
|
+
.orDie(
|
|
135
|
+
err
|
|
136
|
+
.response
|
|
137
|
+
.text
|
|
138
|
+
// TODO
|
|
139
|
+
)
|
|
140
|
+
.pipe(Effect
|
|
141
|
+
.flatMap((_) =>
|
|
142
|
+
Effect.fail({
|
|
143
|
+
_tag: "HttpErrorResponse" as const,
|
|
144
|
+
response: {
|
|
145
|
+
body: Option.fromNullable(_),
|
|
146
|
+
status: err.response.status,
|
|
147
|
+
headers: err.response.headers
|
|
148
|
+
}
|
|
149
|
+
} as HttpResponseError<unknown>)
|
|
150
|
+
)),
|
|
151
|
+
"RequestError": (err) => Effect.fail({ _tag: "HttpErrorRequest", error: err.cause } as HttpRequestError)
|
|
152
|
+
}),
|
|
153
|
+
Effect.scoped
|
|
154
|
+
))
|
|
150
155
|
}
|
|
151
156
|
|
|
152
|
-
export function fetchApi2S<
|
|
157
|
+
export function fetchApi2S<
|
|
158
|
+
RequestR,
|
|
159
|
+
RequestFrom,
|
|
160
|
+
RequestTo,
|
|
161
|
+
ResponseR,
|
|
162
|
+
ResponseFrom,
|
|
163
|
+
ResponseTo,
|
|
164
|
+
ResponseErrorFrom = never,
|
|
165
|
+
ResponseErrorTo extends { _tag: string } = never
|
|
166
|
+
>(
|
|
153
167
|
request: Schema<RequestTo, RequestFrom, RequestR>,
|
|
154
|
-
response: Schema<ResponseTo, ResponseFrom, ResponseR
|
|
168
|
+
response: Schema<ResponseTo, ResponseFrom, ResponseR>,
|
|
169
|
+
responseError?: Schema<ResponseErrorTo, ResponseErrorFrom, never>
|
|
155
170
|
) {
|
|
156
171
|
const encodeRequest = S.encode(request)
|
|
157
172
|
const decRes = S.decodeUnknown(response)
|
|
@@ -165,7 +180,8 @@ export function fetchApi2S<RequestR, RequestFrom, RequestTo, ResponseR, Response
|
|
|
165
180
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
166
181
|
? makePathWithQuery(path, encoded as any)
|
|
167
182
|
: makePathWithBody(path, encoded as any),
|
|
168
|
-
encoded
|
|
183
|
+
encoded,
|
|
184
|
+
responseError
|
|
169
185
|
)
|
|
170
186
|
.pipe(Effect.flatMap(parse)))
|
|
171
187
|
}
|
|
@@ -180,7 +196,7 @@ export function fetchApi3S<RequestA, RequestE, ResponseE = unknown, ResponseA =
|
|
|
180
196
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
181
197
|
Response: REST.ReqRes<ResponseA, ResponseE, any>
|
|
182
198
|
}) {
|
|
183
|
-
return fetchApi2S(Request, Response)(
|
|
199
|
+
return fetchApi2S(Request, Response, Request.errors)(
|
|
184
200
|
Request.method,
|
|
185
201
|
new Path(Request.path)
|
|
186
202
|
)
|
package/src/schema.ts
CHANGED
|
@@ -71,10 +71,6 @@ export const makeIsAnyOf = <A extends { _tag: string }, I, R>(
|
|
|
71
71
|
throw new Error("Unsupported")
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
export const ExtendTaggedUnion = <A extends { _tag: string }, I, R>(
|
|
75
|
-
schema: S.Schema<A, I, R>
|
|
76
|
-
) => extendM(schema, (_) => ({ is: makeIs(_), isAnyOf: makeIsAnyOf(_) }))
|
|
77
|
-
|
|
78
74
|
export type ExtractUnion<A extends { _tag: string }, Tags extends A["_tag"]> = Extract<A, Record<"_tag", Tags>>
|
|
79
75
|
export type Is<A extends { _tag: string }> = { [K in A as K["_tag"]]: (a: A) => a is K }
|
|
80
76
|
export type ElemType<A> = A extends Array<infer E> ? E : never
|
|
@@ -82,7 +78,30 @@ export interface IsAny<A extends { _tag: string }> {
|
|
|
82
78
|
<Keys extends A["_tag"][]>(...keys: Keys): (a: A) => a is ExtractUnion<A, ElemType<Keys>>
|
|
83
79
|
}
|
|
84
80
|
|
|
85
|
-
export const
|
|
86
|
-
|
|
81
|
+
export const taggedUnionMap = <
|
|
82
|
+
Members
|
|
83
|
+
extends readonly (S.Schema<{ _tag: string }, any, any> & { fields: { _tag: { literals: readonly [string] } } })[]
|
|
84
|
+
>(
|
|
85
|
+
self: Members
|
|
86
|
+
) =>
|
|
87
|
+
self.reduce((acc, key) => {
|
|
88
|
+
// TODO: check upstream what's going on with literals of _tag
|
|
89
|
+
const tg = key.fields._tag as any
|
|
90
|
+
const tag = ("ast" in tg && tg.ast._tag === "PropertySignatureDeclaration" ? tg.ast.type.literal : tg
|
|
91
|
+
.literals[0]) as string // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access
|
|
92
|
+
;(acc as any)[tag] = key as any
|
|
93
|
+
return acc
|
|
94
|
+
}, {} as { [Key in Members[number] as Key["fields"]["_tag"]["literals"][0]]: Key })
|
|
95
|
+
|
|
96
|
+
export const ExtendTaggedUnion = <A extends { _tag: string }, I, R>(
|
|
97
|
+
schema: S.Schema<A, I, R>
|
|
98
|
+
) => extendM(schema, (_) => ({ is: makeIs(_), isAnyOf: makeIsAnyOf(_) /*, map: taggedUnionMap(a) */ }))
|
|
99
|
+
|
|
100
|
+
export const TaggedUnion = <
|
|
101
|
+
Members extends ReadonlyArray<
|
|
102
|
+
S.Schema.Any & { fields: { _tag: { literals: readonly [string] } } }
|
|
103
|
+
>
|
|
104
|
+
>(...a: Members) =>
|
|
105
|
+
pipe(S.Union(...a), (_) => extendM(_, (_) => ({ is: makeIs(_), isAnyOf: makeIsAnyOf(_), tagMap: taggedUnionMap(a) })))
|
|
87
106
|
|
|
88
107
|
export type PhoneNumber = PhoneNumberT
|