effect-app 1.20.0 → 1.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/_cjs/client/clientFor.cjs +147 -96
  3. package/_cjs/client/clientFor.cjs.map +1 -1
  4. package/_cjs/client.cjs +0 -11
  5. package/_cjs/client.cjs.map +1 -1
  6. package/dist/client/clientFor.d.ts +38 -28
  7. package/dist/client/clientFor.d.ts.map +1 -1
  8. package/dist/client/clientFor.js +115 -97
  9. package/dist/client.d.ts +0 -1
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js +1 -2
  12. package/package.json +2 -32
  13. package/src/client/clientFor.ts +241 -158
  14. package/src/client.ts +0 -1
  15. package/vitest.config.ts.timestamp-1670862388823.mjs +23 -0
  16. package/_cjs/client/clientFor2.cjs +0 -197
  17. package/_cjs/client/clientFor2.cjs.map +0 -1
  18. package/_cjs/client/fetch.cjs +0 -176
  19. package/_cjs/client/fetch.cjs.map +0 -1
  20. package/_cjs/client/router.cjs +0 -31
  21. package/_cjs/client/router.cjs.map +0 -1
  22. package/dist/client/clientFor2.d.ts +0 -49
  23. package/dist/client/clientFor2.d.ts.map +0 -1
  24. package/dist/client/clientFor2.js +0 -165
  25. package/dist/client/fetch.d.ts +0 -56
  26. package/dist/client/fetch.d.ts.map +0 -1
  27. package/dist/client/fetch.js +0 -158
  28. package/dist/client/router.d.ts +0 -32
  29. package/dist/client/router.d.ts.map +0 -1
  30. package/dist/client/router.js +0 -17
  31. package/src/client/clientFor2.ts +0 -339
  32. package/src/client/fetch.ts +0 -299
  33. package/src/client/router.ts +0 -87
  34. package/vitest.config.ts.timestamp-1709838418683-4e8d39caec6be.mjs +0 -33
  35. package/vitest.config.ts.timestamp-1711656440837-b61cd88636759.mjs +0 -37
  36. package/vitest.config.ts.timestamp-1711724061890-f88ec51585e5c.mjs +0 -37
  37. package/vitest.config.ts.timestamp-1711743471020-0a3f182bca84f.mjs +0 -0
  38. package/vitest.config.ts.timestamp-1711743489536-f03d3db08b368.mjs +0 -37
  39. package/vitest.config.ts.timestamp-1711743593445-f537ce2bb2c6a.mjs +0 -0
@@ -1,197 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.clientFor2 = clientFor2;
7
- var _core = require("@effect-app/core");
8
- var _rpc = require("@effect/rpc");
9
- var _rpcHttp = require("@effect/rpc-http");
10
- var _effectApp = require("effect-app");
11
- var _client = require("effect-app/client");
12
- var _http = require("effect-app/http");
13
- var _utils = require("effect-app/utils");
14
- var _pathParser = require("path-parser");
15
- /* eslint-disable @typescript-eslint/no-unsafe-argument */
16
- /* eslint-disable @typescript-eslint/no-explicit-any */
17
-
18
- const apiClient = _core.Effect.gen(function* () {
19
- const client = yield* _http.HttpClient.HttpClient;
20
- const config = yield* _client.ApiConfig.Tag;
21
- return client.pipe(_http.HttpClient.mapRequest(_http.HttpClientRequest.prependUrl(config.apiUrl + "/rpc")), _http.HttpClient.mapRequest(_http.HttpClientRequest.setHeaders(config.headers.pipe(_core.Option.getOrElse(() => _core.HashMap.empty())))));
22
- });
23
- function clientFor2(layers) {
24
- const cache = new Map();
25
- return models => {
26
- const found = cache.get(models);
27
- if (found) {
28
- return found;
29
- }
30
- const m = clientFor_(models, layers);
31
- cache.set(models, m);
32
- return m;
33
- };
34
- }
35
- function clientFor_(models, layers = _core.Layer.empty) {
36
- const filtered = (0, _utils.typedKeysOf)(models).reduce((acc, cur) => {
37
- if (_core.Predicate.isObject(models[cur]) && models[cur].success) {
38
- acc[cur] = models[cur];
39
- }
40
- return acc;
41
- }, {});
42
- const meta = models.meta;
43
- if (!meta) throw new Error("No meta defined in Resource!");
44
- const resolver = (0, _core.flow)(_rpcHttp.HttpRpcResolver.make, _ => _rpc.RpcResolver.toClient(_));
45
- const baseClient = apiClient.pipe(_core.Effect.andThen(_http.HttpClient.mapRequest(_http.HttpClientRequest.appendUrl("/" + meta.moduleName))));
46
- return (0, _utils.typedKeysOf)(filtered).reduce((prev, cur) => {
47
- const h = filtered[cur];
48
- const Request = h;
49
- const Response = h.success;
50
- const encodeRequest = _effectApp.S.encodeSync(Request);
51
- const requestName = `${meta.moduleName}.${cur}`.replaceAll(".js", "");
52
- const requestMeta = {
53
- method: "POST",
54
- // TODO
55
- Request,
56
- Response,
57
- mapPath: requestName,
58
- name: requestName
59
- };
60
- const client = baseClient.pipe(_core.Effect.andThen(_http.HttpClient.mapRequest(_http.HttpClientRequest.appendUrlParam("action", cur))), _core.Effect.andThen(resolver));
61
- const fields = _core.Struct.omit(Request.fields, "_tag");
62
- const p = requestName;
63
- const path = new _pathParser.Path(p); // TODO
64
- // @ts-expect-error doc
65
- prev[cur] = requestMeta.method === "GET" ? Object.keys(fields).length === 0 ? {
66
- handler: client.pipe(_core.Effect.andThen(cl => cl(new Request())), _core.Effect.map(_ => ({
67
- body: _,
68
- status: 200,
69
- headers: {}
70
- })),
71
- // TODO
72
- _core.Effect.withSpan("client.request " + requestName, {
73
- captureStackTrace: false,
74
- attributes: {
75
- "request.name": requestName
76
- }
77
- }), _core.Effect.provide(layers)),
78
- ...requestMeta
79
- } : {
80
- handler: req => client.pipe(_core.Effect.andThen(cl => cl(new Request(req))), _core.Effect.map(_ => ({
81
- body: _,
82
- status: 200,
83
- headers: {}
84
- })),
85
- // TODO
86
- _core.Effect.withSpan("client.request " + requestName, {
87
- captureStackTrace: false,
88
- attributes: {
89
- "request.name": requestName
90
- }
91
- }), _core.Effect.provide(layers)),
92
- ...requestMeta,
93
- mapPath: req => req ? (0, _client.makePathWithQuery)(path, encodeRequest(req)) : p
94
- } : Object.keys(fields).length === 0 ? {
95
- handler: client.pipe(_core.Effect.andThen(cl => cl(new Request())), _core.Effect.map(_ => ({
96
- body: _,
97
- status: 200,
98
- headers: {}
99
- })),
100
- // TODO
101
- _core.Effect.withSpan("client.request " + requestName, {
102
- captureStackTrace: false,
103
- attributes: {
104
- "request.name": requestName
105
- }
106
- }), _core.Effect.provide(layers)),
107
- ...requestMeta
108
- } : {
109
- handler: req => client.pipe(_core.Effect.andThen(cl => cl(new Request(req))), _core.Effect.map(_ => ({
110
- body: _,
111
- status: 200,
112
- headers: {}
113
- })),
114
- // TODO
115
- _core.Effect.withSpan("client.request " + requestName, {
116
- captureStackTrace: false,
117
- attributes: {
118
- "request.name": requestName
119
- }
120
- }), _core.Effect.provide(layers)),
121
- ...requestMeta,
122
- mapPath: req => req ? requestMeta.method === "DELETE" ? (0, _client.makePathWithQuery)(path, encodeRequest(req)) : (0, _client.makePathWithBody)(path, encodeRequest(req)) : p
123
- };
124
- // generate handler
125
- // @ts-expect-error doc
126
- prev[`${cur}E`] = requestMeta.method === "GET" ? Object.keys(fields).length === 0 ? {
127
- handler: client.pipe(_core.Effect.andThen(cl => cl(new Request())), _core.Effect.flatMap(res => _effectApp.S.encode(Response)(res)),
128
- // TODO
129
- _core.Effect.map(_ => ({
130
- body: _,
131
- status: 200,
132
- headers: {}
133
- })),
134
- // TODO,
135
- _core.Effect.withSpan("client.request " + requestName, {
136
- captureStackTrace: false,
137
- attributes: {
138
- "request.name": requestName
139
- }
140
- }), _core.Effect.provide(layers)),
141
- ...requestMeta
142
- } : {
143
- handler: req => client.pipe(_core.Effect.andThen(cl => cl(new Request(req))), _core.Effect.flatMap(res => _effectApp.S.encode(Response)(res)),
144
- // TODO
145
- _core.Effect.map(_ => ({
146
- body: _,
147
- status: 200,
148
- headers: {}
149
- })),
150
- // TODO,
151
- _core.Effect.withSpan("client.request " + requestName, {
152
- captureStackTrace: false,
153
- attributes: {
154
- "request.name": requestName
155
- }
156
- }), _core.Effect.provide(layers)),
157
- ...requestMeta,
158
- mapPath: req => req ? (0, _client.makePathWithQuery)(path, encodeRequest(req)) : p
159
- } : Object.keys(fields).length === 0 ? {
160
- handler: client.pipe(_core.Effect.andThen(cl => cl(new Request())), _core.Effect.flatMap(res => _effectApp.S.encode(Response)(res)),
161
- // TODO
162
- _core.Effect.map(_ => ({
163
- body: _,
164
- status: 200,
165
- headers: {}
166
- })),
167
- // TODO,
168
- _core.Effect.withSpan("client.request " + requestName, {
169
- captureStackTrace: false,
170
- attributes: {
171
- "request.name": requestName
172
- }
173
- }), _core.Effect.provide(layers)),
174
- ...requestMeta
175
- } : {
176
- handler: req => client.pipe(_core.Effect.andThen(cl => cl(new Request(req))), _core.Effect.flatMap(res => _effectApp.S.encode(Response)(res)),
177
- // TODO
178
- _core.Effect.map(_ => ({
179
- body: _,
180
- status: 200,
181
- headers: {}
182
- })),
183
- // TODO,
184
- _core.Effect.withSpan("client.request " + requestName, {
185
- captureStackTrace: false,
186
- attributes: {
187
- "request.name": requestName
188
- }
189
- }), _core.Effect.provide(layers)),
190
- ...requestMeta,
191
- mapPath: req => req ? requestMeta.method === "DELETE" ? (0, _client.makePathWithQuery)(path, encodeRequest(req)) : (0, _client.makePathWithBody)(path, encodeRequest(req)) : p
192
- };
193
- // generate handler
194
- return prev;
195
- }, {});
196
- }
197
- //# sourceMappingURL=clientFor2.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clientFor2.cjs","names":["_core","require","_rpc","_rpcHttp","_effectApp","_client","_http","_utils","_pathParser","apiClient","Effect","gen","client","HttpClient","config","ApiConfig","Tag","pipe","mapRequest","HttpClientRequest","prependUrl","apiUrl","setHeaders","headers","Option","getOrElse","HashMap","empty","clientFor2","layers","cache","Map","models","found","get","m","clientFor_","set","Layer","filtered","typedKeysOf","reduce","acc","cur","Predicate","isObject","success","meta","Error","resolver","flow","HttpRpcResolver","make","_","RpcResolver","toClient","baseClient","andThen","appendUrl","moduleName","prev","h","Request","Response","encodeRequest","S","encodeSync","requestName","replaceAll","requestMeta","method","mapPath","name","appendUrlParam","fields","Struct","omit","p","path","Path","Object","keys","length","handler","cl","map","body","status","withSpan","captureStackTrace","attributes","provide","req","makePathWithQuery","makePathWithBody","flatMap","res","encode"],"sources":["../../src/client/clientFor2.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,176 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.EmptyResponseM = exports.EmptyResponse = void 0;
7
- exports.EmptyResponseMThunk = EmptyResponseMThunk;
8
- exports.ResError = void 0;
9
- exports.fetchApi = fetchApi;
10
- exports.fetchApi2S = fetchApi2S;
11
- exports.fetchApi3S = fetchApi3S;
12
- exports.fetchApi3SE = fetchApi3SE;
13
- exports.getBody = getBody;
14
- exports.makePathWithBody = makePathWithBody;
15
- exports.makePathWithQuery = makePathWithQuery;
16
- exports.mapResponse = mapResponse;
17
- exports.mapResponseM = mapResponseM;
18
- var _core = require("@effect-app/core");
19
- var _Function = require("@effect-app/core/Function");
20
- var _effect = require("effect");
21
- var _schema = require("effect-app/schema");
22
- var _pathParser = require("path-parser");
23
- var _queryString = _interopRequireDefault(require("query-string"));
24
- var _http = require("../http.cjs");
25
- var _lib = require("../lib.cjs");
26
- var _logger = require("../logger.cjs");
27
- var _config = require("./config.cjs");
28
- var _errors = require("./errors.cjs");
29
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
30
- /* eslint-disable @typescript-eslint/no-explicit-any */
31
-
32
- class ResError {
33
- error;
34
- _tag = "ResponseError";
35
- constructor(error) {
36
- this.error = error;
37
- }
38
- }
39
- exports.ResError = ResError;
40
- const getClient = _core.Effect.flatMap(_http.HttpClient.HttpClient, defaultClient => _core.Effect.map(_config.ApiConfig.Tag, ({
41
- apiUrl,
42
- headers
43
- }) => defaultClient.pipe(_http.HttpClient.filterStatusOk, _http.HttpClient.mapRequest(_ => _.pipe(_http.HttpClientRequest.acceptJson, _http.HttpClientRequest.prependUrl(apiUrl), _http.HttpClientRequest.setHeaders({
44
- "request-id": _core.Option.getOrUndefined(_core.Option.flatMap(headers, _ => _core.HashMap.get(_, "request-id"))) ?? _schema.StringId.make(),
45
- ..._core.Option.getOrUndefined(_core.Option.map(headers, _ => Object.fromEntries(_)))
46
- }))), _http.HttpClient.tapRequest(r => _logger.PreludeLogger.logDebug(`[HTTP] ${r.method}`).pipe(_core.Effect.annotateLogs({
47
- "url": r.url,
48
- "body": r.body._tag === "Uint8Array" ? new TextDecoder().decode(r.body.body) : r.body._tag,
49
- "headers": r.headers
50
- }))), _http.HttpClient.mapEffect(_ => (_.status === 204 ? _core.Effect.sync(() => ({
51
- status: _.status,
52
- body: void 0,
53
- headers: _.headers
54
- })) : _core.Effect.map(_.json, body => ({
55
- status: _.status,
56
- body,
57
- headers: _.headers
58
- }))).pipe(_core.Effect.withSpan("client.response", {
59
- captureStackTrace: false
60
- }))))));
61
- function fetchApi(method, path, body, responseError) {
62
- return _core.Effect.flatMap(getClient, client => (method === "GET" ? client.execute(_http.HttpClientRequest.make(method)(path)) : body === undefined ? client.execute(_http.HttpClientRequest.make(method)(path)) : _http.HttpClientRequest.make(method)(path).pipe(_http.HttpClientRequest.bodyJson(body), _core.Effect.flatMap(client.execute))).pipe(_core.Effect.catchTag("ResponseError", err => {
63
- 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));
64
- // opposite of api's `defaultErrorHandler`
65
- if (err.response.status === 404) {
66
- return toError(_errors.NotFoundError);
67
- }
68
- if (err.response.status === 400) {
69
- return toError(_errors.ValidationError);
70
- }
71
- if (err.response.status === 401) {
72
- return toError(_errors.NotLoggedInError);
73
- }
74
- // TODO: DomainError
75
- if (err.response.status === 422) {
76
- return responseError ? toError(_lib.S.Union(responseError, _errors.InvalidStateError)) : toError(_errors.InvalidStateError);
77
- }
78
- if (err.response.status === 503) {
79
- return toError(_errors.ServiceUnavailableError);
80
- }
81
- if (err.response.status === 403) {
82
- return toError(_errors.UnauthorizedError);
83
- }
84
- if (err.response.status === 412) {
85
- return toError(_errors.OptimisticConcurrencyException);
86
- }
87
- return _core.Effect.fail(err);
88
- }), _core.Effect.catchTags({
89
- "ResponseError": err => _core.Effect.orDie(err.response.text
90
- // TODO
91
- ).pipe(_core.Effect.flatMap(_ => _core.Effect.fail({
92
- _tag: "HttpErrorResponse",
93
- response: {
94
- body: _core.Option.fromNullable(_),
95
- status: err.response.status,
96
- headers: err.response.headers
97
- }
98
- }))),
99
- "RequestError": err => _core.Effect.fail({
100
- _tag: "HttpErrorRequest",
101
- error: err.cause
102
- })
103
- }), _core.Effect.scoped));
104
- }
105
- function fetchApi2S(request, response, responseError) {
106
- const encodeRequest = _lib.S.encode(request);
107
- const decRes = _lib.S.decodeUnknown(response);
108
- const decodeRes = u => _core.Effect.mapError(decRes(u), err => new ResError(err));
109
- const parse = mapResponseM(decodeRes);
110
- return (method, path) => req => {
111
- return _core.Effect.andThen(encodeRequest(req), encoded => fetchApi(method, method === "DELETE"
112
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
113
- ? makePathWithQuery(path, encoded) : makePathWithBody(path, encoded), encoded, responseError).pipe(_core.Effect.flatMap(parse)));
114
- };
115
- }
116
- function fetchApi3S({
117
- Request,
118
- Response
119
- }) {
120
- return fetchApi2S(Request, Response, Request.errors)(Request.method, new _pathParser.Path(Request.path));
121
- }
122
- function fetchApi3SE({
123
- Request,
124
- Response
125
- }) {
126
- const a = fetchApi2S(Request, Response)(Request.method, new _pathParser.Path(Request.path));
127
- const parse = mapResponseM(_lib.S.encode(Response));
128
- return req => _core.Effect.flatMap(a(req), parse);
129
- }
130
- function makePathWithQuery(path, pars) {
131
- const forQs = _effect.Record.filter(pars, (_, k) => !path.params.includes(k));
132
- const q = forQs; // { ...forQs, _: JSON.stringify(forQs) } // TODO: drop completely individual keys from query?, sticking to json only
133
- return path.build(pars, {
134
- ignoreSearch: true,
135
- ignoreConstraints: true
136
- }) + (Object.keys(q).length ? "?" + _queryString.default.stringify(q) : "");
137
- }
138
- function makePathWithBody(path, pars) {
139
- return path.build(pars, {
140
- ignoreSearch: true,
141
- ignoreConstraints: true
142
- });
143
- }
144
- function mapResponse(map) {
145
- return r => {
146
- return {
147
- ...r,
148
- body: map(r.body)
149
- };
150
- };
151
- }
152
- function mapResponseM(map) {
153
- return r => {
154
- return _core.Effect.all({
155
- body: map(r.body),
156
- headers: _core.Effect.sync(() => r.headers),
157
- status: _core.Effect.sync(() => r.status)
158
- }).pipe(_core.Effect.withSpan("client.decode", {
159
- captureStackTrace: false
160
- }));
161
- };
162
- }
163
- const EmptyResponse = exports.EmptyResponse = Object.freeze({
164
- body: null,
165
- headers: {},
166
- status: 404
167
- });
168
- const EmptyResponseM = exports.EmptyResponseM = _core.Effect.sync(() => EmptyResponse);
169
- const EmptyResponseMThunk_ = (0, _Function.constant)(EmptyResponseM);
170
- function EmptyResponseMThunk() {
171
- return EmptyResponseMThunk_();
172
- }
173
- function getBody(eff) {
174
- return _core.Effect.flatMap(eff, r => r.body === null ? _core.Effect.die("Not found") : _core.Effect.sync(() => r.body));
175
- }
176
- //# sourceMappingURL=fetch.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.cjs","names":["_core","require","_Function","_effect","_schema","_pathParser","_queryString","_interopRequireDefault","_http","_lib","_logger","_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","PreludeLogger","logDebug","method","annotateLogs","url","body","TextDecoder","decode","mapEffect","status","sync","json","withSpan","captureStackTrace","fetchApi","path","responseError","client","execute","undefined","bodyJson","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":[]}
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makeClientRouter = void 0;
7
- var _REST = require("@effect-app/schema/REST");
8
- var _lib = require("../lib.cjs");
9
- // TODO: get rid of Request in Request and Response in C
10
- const makeClientRouter = () => {
11
- function Req() {
12
- return (fields, config) => {
13
- // TODO: get rid of Response, just use success (only all legacy migrated)
14
- const req = config?.success ? (0, _REST.Req)({
15
- ...config,
16
- Response: config.success
17
- })()(fields) : (0, _REST.Req)({
18
- ...config,
19
- success: _lib.S.Void,
20
- Response: _lib.S.Void
21
- })()(fields);
22
- const req2 = Object.assign(req, {
23
- Request: req
24
- }); // bwc
25
- return req2;
26
- };
27
- }
28
- return Req;
29
- };
30
- exports.makeClientRouter = makeClientRouter;
31
- //# sourceMappingURL=router.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.cjs","names":["_REST","require","_lib","makeClientRouter","Req","fields","config","req","success","Req_","Response","S","Void","req2","Object","assign","Request","exports"],"sources":["../../src/client/router.ts"],"sourcesContent":[null],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAEA;AACO,MAAME,gBAAgB,GAAGA,CAAA,KAAmC;EAGjE,SAASC,GAAGA,CAAA;IAgEV,OAAQ,CACNC,MAAc,EACdC,MAAU,KACR;MACF;MACA,MAAMC,GAAG,GAAGD,MAAM,EAAEE,OAAO,GACvB,IAAAC,SAAI,EAAI;QAAE,GAAGH,MAAM;QAAEI,QAAQ,EAAEJ,MAAM,CAACE;MAAO,CAAE,CAAC,EAAK,CAASH,MAAM,CAAC,GACrE,IAAAI,SAAI,EAAC;QAAE,GAAGH,MAAM;QAAEE,OAAO,EAAEG,MAAC,CAACC,IAAI;QAAEF,QAAQ,EAAEC,MAAC,CAACC;MAAI,CAAE,CAAC,EAAK,CAASP,MAAM,CAAC;MAC/E,MAAMQ,IAAI,GAAGC,MAAM,CAACC,MAAM,CAACR,GAAG,EAAE;QAAES,OAAO,EAAET;MAAG,CAAE,CAAC,EAAC;MAClD,OAAOM,IAAI;IACb,CAAC;EACH;EAEA,OAAOT,GAAG;AACZ,CAAC;AAAAa,OAAA,CAAAd,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -1,49 +0,0 @@
1
- import { Effect, Layer } from "@effect-app/core";
2
- import type * as Serializable from "@effect/schema/Serializable";
3
- import { S } from "effect-app";
4
- import type { FetchResponse } from "effect-app/client";
5
- import { ApiConfig } from "effect-app/client";
6
- import { HttpClient } from "effect-app/http";
7
- import type { Schema } from "effect-app/schema";
8
- import type * as Request from "effect/Request";
9
- type Requests = Record<string, any>;
10
- export type Client<M extends Requests> = RequestHandlers<ApiConfig | HttpClient.HttpClient.Service, never, // SupportedErrors | FetchError | ResError,
11
- M> & RequestHandlersE<ApiConfig | HttpClient.HttpClient.Service, never, // SupportedErrors | FetchError | ResError,
12
- M>;
13
- export declare function clientFor2(layers: Layer.Layer<never, never, never>): <M extends Requests>(models: M) => Client<Omit<M, "meta">>;
14
- export type ExtractResponse<T> = T extends Schema<any, any, any> ? Schema.Type<T> : T extends unknown ? void : never;
15
- export type ExtractEResponse<T> = T extends Schema<any, any, any> ? Schema.Encoded<T> : T extends unknown ? void : never;
16
- type IsEmpty<T> = keyof T extends never ? true : false;
17
- type Cruft = "_tag" | Request.RequestTypeId | typeof Serializable.symbol | typeof Serializable.symbolResult;
18
- type RequestHandlers<R, E, M extends Requests> = {
19
- [K in keyof M]: IsEmpty<Omit<S.Schema.Type<M[K]>, Cruft>> extends true ? {
20
- handler: Effect<FetchResponse<Schema.Type<M[K]["success"]>>, Schema.Type<M[K]["failure"]> | E, R>;
21
- Request: M[K];
22
- Reponse: Schema.Type<M[K]["success"]>;
23
- mapPath: string;
24
- name: string;
25
- } : {
26
- handler: (req: Omit<S.Schema.Type<M[K]>, Cruft>) => Effect<FetchResponse<Schema.Type<M[K]["success"]>>, Schema.Type<M[K]["failure"]> | E, R>;
27
- Request: M[K];
28
- Reponse: Schema.Type<M[K]["success"]>;
29
- mapPath: (req: Omit<S.Schema.Type<M[K]>, Cruft>) => string;
30
- name: string;
31
- };
32
- };
33
- type RequestHandlersE<R, E, M extends Requests> = {
34
- [K in keyof M & string as `${K}E`]: IsEmpty<Omit<S.Schema.Type<M[K]>, Cruft>> extends true ? {
35
- handler: Effect<FetchResponse<Schema.Encoded<M[K]["success"]>>, Schema.Type<M[K]["failure"]> | E, R>;
36
- Request: M[K];
37
- Reponse: Schema.Type<M[K]["success"]>;
38
- mapPath: string;
39
- name: string;
40
- } : {
41
- handler: (req: Omit<S.Schema.Type<M[K]>, Cruft>) => Effect<FetchResponse<Schema.Encoded<M[K]["success"]>>, Schema.Type<M[K]["failure"]> | E, R>;
42
- Request: M[K];
43
- Reponse: Schema.Type<M[K]["success"]>;
44
- mapPath: (req: Omit<S.Schema.Type<M[K]>, Cruft>) => string;
45
- name: string;
46
- };
47
- };
48
- export {};
49
- //# sourceMappingURL=clientFor2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clientFor2.d.ts","sourceRoot":"","sources":["../../src/client/clientFor2.ts"],"names":[],"mappings":"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"}