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.
- package/CHANGELOG.md +11 -0
- package/_cjs/client/clientFor.cjs +147 -96
- package/_cjs/client/clientFor.cjs.map +1 -1
- package/_cjs/client.cjs +0 -11
- package/_cjs/client.cjs.map +1 -1
- package/dist/client/clientFor.d.ts +38 -28
- package/dist/client/clientFor.d.ts.map +1 -1
- package/dist/client/clientFor.js +115 -97
- package/dist/client.d.ts +0 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1 -2
- package/package.json +2 -32
- package/src/client/clientFor.ts +241 -158
- package/src/client.ts +0 -1
- package/vitest.config.ts.timestamp-1670862388823.mjs +23 -0
- package/_cjs/client/clientFor2.cjs +0 -197
- package/_cjs/client/clientFor2.cjs.map +0 -1
- package/_cjs/client/fetch.cjs +0 -176
- package/_cjs/client/fetch.cjs.map +0 -1
- package/_cjs/client/router.cjs +0 -31
- package/_cjs/client/router.cjs.map +0 -1
- package/dist/client/clientFor2.d.ts +0 -49
- package/dist/client/clientFor2.d.ts.map +0 -1
- package/dist/client/clientFor2.js +0 -165
- package/dist/client/fetch.d.ts +0 -56
- package/dist/client/fetch.d.ts.map +0 -1
- package/dist/client/fetch.js +0 -158
- package/dist/client/router.d.ts +0 -32
- package/dist/client/router.d.ts.map +0 -1
- package/dist/client/router.js +0 -17
- package/src/client/clientFor2.ts +0 -339
- package/src/client/fetch.ts +0 -299
- package/src/client/router.ts +0 -87
- package/vitest.config.ts.timestamp-1709838418683-4e8d39caec6be.mjs +0 -33
- package/vitest.config.ts.timestamp-1711656440837-b61cd88636759.mjs +0 -37
- package/vitest.config.ts.timestamp-1711724061890-f88ec51585e5c.mjs +0 -37
- package/vitest.config.ts.timestamp-1711743471020-0a3f182bca84f.mjs +0 -0
- package/vitest.config.ts.timestamp-1711743489536-f03d3db08b368.mjs +0 -37
- package/vitest.config.ts.timestamp-1711743593445-f537ce2bb2c6a.mjs +0 -0
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
-
import { Effect, flow, HashMap, Layer, Option, Predicate, Struct } from "@effect-app/core";
|
|
4
|
-
import { RpcResolver } from "@effect/rpc";
|
|
5
|
-
import { HttpRpcResolver } from "@effect/rpc-http";
|
|
6
|
-
import { S } from "effect-app";
|
|
7
|
-
import { ApiConfig, makePathWithBody, makePathWithQuery } from "effect-app/client";
|
|
8
|
-
import { HttpClient, HttpClientRequest } from "effect-app/http";
|
|
9
|
-
import { typedKeysOf } from "effect-app/utils";
|
|
10
|
-
import { Path } from "path-parser";
|
|
11
|
-
const apiClient = Effect.gen(function* () {
|
|
12
|
-
const client = yield* HttpClient.HttpClient;
|
|
13
|
-
const config = yield* ApiConfig.Tag;
|
|
14
|
-
return client.pipe(HttpClient.mapRequest(HttpClientRequest.prependUrl(config.apiUrl + "/rpc")), HttpClient.mapRequest(HttpClientRequest.setHeaders(config.headers.pipe(Option.getOrElse(() => HashMap.empty())))));
|
|
15
|
-
});
|
|
16
|
-
export function clientFor2(layers) {
|
|
17
|
-
const cache = new Map();
|
|
18
|
-
return (models) => {
|
|
19
|
-
const found = cache.get(models);
|
|
20
|
-
if (found) {
|
|
21
|
-
return found;
|
|
22
|
-
}
|
|
23
|
-
const m = clientFor_(models, layers);
|
|
24
|
-
cache.set(models, m);
|
|
25
|
-
return m;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
function clientFor_(models, layers = Layer.empty) {
|
|
29
|
-
const filtered = typedKeysOf(models).reduce((acc, cur) => {
|
|
30
|
-
if (Predicate.isObject(models[cur])
|
|
31
|
-
&& (models[cur].success)) {
|
|
32
|
-
acc[cur] = models[cur];
|
|
33
|
-
}
|
|
34
|
-
return acc;
|
|
35
|
-
}, {});
|
|
36
|
-
const meta = models.meta;
|
|
37
|
-
if (!meta)
|
|
38
|
-
throw new Error("No meta defined in Resource!");
|
|
39
|
-
const resolver = flow((HttpRpcResolver.make), (_) => RpcResolver.toClient(_));
|
|
40
|
-
const baseClient = apiClient.pipe(Effect.andThen(HttpClient.mapRequest(HttpClientRequest.appendUrl("/" + meta.moduleName))));
|
|
41
|
-
return (typedKeysOf(filtered)
|
|
42
|
-
.reduce((prev, cur) => {
|
|
43
|
-
const h = filtered[cur];
|
|
44
|
-
const Request = h;
|
|
45
|
-
const Response = h.success;
|
|
46
|
-
const encodeRequest = S.encodeSync(Request);
|
|
47
|
-
const requestName = `${meta.moduleName}.${cur}`
|
|
48
|
-
.replaceAll(".js", "");
|
|
49
|
-
const requestMeta = {
|
|
50
|
-
method: "POST", // TODO
|
|
51
|
-
Request,
|
|
52
|
-
Response,
|
|
53
|
-
mapPath: requestName,
|
|
54
|
-
name: requestName
|
|
55
|
-
};
|
|
56
|
-
const client = baseClient.pipe(Effect.andThen(HttpClient.mapRequest(HttpClientRequest.appendUrlParam("action", cur))), Effect.andThen(resolver));
|
|
57
|
-
const fields = Struct.omit(Request.fields, "_tag");
|
|
58
|
-
const p = requestName;
|
|
59
|
-
const path = new Path(p); // TODO
|
|
60
|
-
// @ts-expect-error doc
|
|
61
|
-
prev[cur] = requestMeta.method === "GET"
|
|
62
|
-
? Object.keys(fields).length === 0
|
|
63
|
-
? {
|
|
64
|
-
handler: client
|
|
65
|
-
.pipe(Effect.andThen((cl) => cl(new Request())), Effect.map((_) => ({ body: _, status: 200, headers: {} })), // TODO
|
|
66
|
-
Effect
|
|
67
|
-
.withSpan("client.request " + requestName, {
|
|
68
|
-
captureStackTrace: false,
|
|
69
|
-
attributes: { "request.name": requestName }
|
|
70
|
-
}), Effect.provide(layers)),
|
|
71
|
-
...requestMeta
|
|
72
|
-
}
|
|
73
|
-
: {
|
|
74
|
-
handler: (req) => client
|
|
75
|
-
.pipe(Effect.andThen((cl) => cl(new Request(req))), Effect.map((_) => ({ body: _, status: 200, headers: {} })), // TODO
|
|
76
|
-
Effect
|
|
77
|
-
.withSpan("client.request " + requestName, {
|
|
78
|
-
captureStackTrace: false,
|
|
79
|
-
attributes: { "request.name": requestName }
|
|
80
|
-
}), Effect.provide(layers)),
|
|
81
|
-
...requestMeta,
|
|
82
|
-
mapPath: (req) => req ? makePathWithQuery(path, encodeRequest(req)) : p
|
|
83
|
-
}
|
|
84
|
-
: Object.keys(fields).length === 0
|
|
85
|
-
? {
|
|
86
|
-
handler: client
|
|
87
|
-
.pipe(Effect.andThen((cl) => cl(new Request())), Effect.map((_) => ({ body: _, status: 200, headers: {} })), // TODO
|
|
88
|
-
Effect.withSpan("client.request " + requestName, {
|
|
89
|
-
captureStackTrace: false,
|
|
90
|
-
attributes: { "request.name": requestName }
|
|
91
|
-
}), Effect.provide(layers)),
|
|
92
|
-
...requestMeta
|
|
93
|
-
}
|
|
94
|
-
: {
|
|
95
|
-
handler: (req) => client
|
|
96
|
-
.pipe(Effect.andThen((cl) => cl(new Request(req))), Effect.map((_) => ({ body: _, status: 200, headers: {} })), // TODO
|
|
97
|
-
Effect.withSpan("client.request " + requestName, {
|
|
98
|
-
captureStackTrace: false,
|
|
99
|
-
attributes: { "request.name": requestName }
|
|
100
|
-
}), Effect.provide(layers)),
|
|
101
|
-
...requestMeta,
|
|
102
|
-
mapPath: (req) => req
|
|
103
|
-
? requestMeta.method === "DELETE"
|
|
104
|
-
? makePathWithQuery(path, encodeRequest(req))
|
|
105
|
-
: makePathWithBody(path, encodeRequest(req))
|
|
106
|
-
: p
|
|
107
|
-
};
|
|
108
|
-
// generate handler
|
|
109
|
-
// @ts-expect-error doc
|
|
110
|
-
prev[`${cur}E`] = requestMeta.method === "GET"
|
|
111
|
-
? Object.keys(fields).length === 0
|
|
112
|
-
? {
|
|
113
|
-
handler: client
|
|
114
|
-
.pipe(Effect.andThen((cl) => cl(new Request())), Effect.flatMap((res) => S.encode(Response)(res)), // TODO
|
|
115
|
-
Effect.map((_) => ({ body: _, status: 200, headers: {} })), // TODO,
|
|
116
|
-
Effect
|
|
117
|
-
.withSpan("client.request " + requestName, {
|
|
118
|
-
captureStackTrace: false,
|
|
119
|
-
attributes: { "request.name": requestName }
|
|
120
|
-
}), Effect.provide(layers)),
|
|
121
|
-
...requestMeta
|
|
122
|
-
}
|
|
123
|
-
: {
|
|
124
|
-
handler: (req) => client
|
|
125
|
-
.pipe(Effect.andThen((cl) => cl(new Request(req))), Effect.flatMap((res) => S.encode(Response)(res)), // TODO
|
|
126
|
-
Effect.map((_) => ({ body: _, status: 200, headers: {} })), // TODO,
|
|
127
|
-
Effect
|
|
128
|
-
.withSpan("client.request " + requestName, {
|
|
129
|
-
captureStackTrace: false,
|
|
130
|
-
attributes: { "request.name": requestName }
|
|
131
|
-
}), Effect.provide(layers)),
|
|
132
|
-
...requestMeta,
|
|
133
|
-
mapPath: (req) => req ? makePathWithQuery(path, encodeRequest(req)) : p
|
|
134
|
-
}
|
|
135
|
-
: Object.keys(fields).length === 0
|
|
136
|
-
? {
|
|
137
|
-
handler: client
|
|
138
|
-
.pipe(Effect.andThen((cl) => cl(new Request())), Effect.flatMap((res) => S.encode(Response)(res)), // TODO
|
|
139
|
-
Effect.map((_) => ({ body: _, status: 200, headers: {} })), // TODO,
|
|
140
|
-
Effect.withSpan("client.request " + requestName, {
|
|
141
|
-
captureStackTrace: false,
|
|
142
|
-
attributes: { "request.name": requestName }
|
|
143
|
-
}), Effect.provide(layers)),
|
|
144
|
-
...requestMeta
|
|
145
|
-
}
|
|
146
|
-
: {
|
|
147
|
-
handler: (req) => client
|
|
148
|
-
.pipe(Effect.andThen((cl) => cl(new Request(req))), Effect.flatMap((res) => S.encode(Response)(res)), // TODO
|
|
149
|
-
Effect.map((_) => ({ body: _, status: 200, headers: {} })), // TODO,
|
|
150
|
-
Effect.withSpan("client.request " + requestName, {
|
|
151
|
-
captureStackTrace: false,
|
|
152
|
-
attributes: { "request.name": requestName }
|
|
153
|
-
}), Effect.provide(layers)),
|
|
154
|
-
...requestMeta,
|
|
155
|
-
mapPath: (req) => req
|
|
156
|
-
? requestMeta.method === "DELETE"
|
|
157
|
-
? makePathWithQuery(path, encodeRequest(req))
|
|
158
|
-
: makePathWithBody(path, encodeRequest(req))
|
|
159
|
-
: p
|
|
160
|
-
};
|
|
161
|
-
// generate handler
|
|
162
|
-
return prev;
|
|
163
|
-
}, {}));
|
|
164
|
-
}
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50Rm9yMi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvY2xpZW50Rm9yMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwREFBMEQ7QUFDMUQsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUdsRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTlCLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRTlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFJbEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDcEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQTtJQUMzQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFBO0lBQ25DLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FDaEIsVUFBVSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUMzRSxVQUFVLENBQUMsVUFBVSxDQUNuQixpQkFBaUIsQ0FBQyxVQUFVLENBQUMs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
|
package/dist/client/fetch.d.ts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { Effect } from "@effect-app/core";
|
|
2
|
-
import type { Headers, HttpError, HttpRequestError, HttpResponseError, Method } from "@effect-app/core/http/http-client";
|
|
3
|
-
import type { REST, Schema } from "effect-app/schema";
|
|
4
|
-
import { Path } from "path-parser";
|
|
5
|
-
import { HttpClient } from "../http.js";
|
|
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
|
-
export type FetchError = HttpError<string>;
|
|
10
|
-
export declare class ResError {
|
|
11
|
-
readonly error: unknown;
|
|
12
|
-
readonly _tag = "ResponseError";
|
|
13
|
-
constructor(error: unknown);
|
|
14
|
-
}
|
|
15
|
-
export declare function fetchApi(method: Method, path: string, body?: unknown, responseError?: S.Schema.AnyNoContext): Effect.Effect<{
|
|
16
|
-
status: number;
|
|
17
|
-
body: unknown;
|
|
18
|
-
headers: import("@effect/platform/Headers").Headers;
|
|
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.Service | 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.Service | ApiConfig | RequestR | ResponseR>;
|
|
23
|
-
export declare function fetchApi3S<RequestA, RequestE, ResponseE = unknown, ResponseA = void>({ Request, Response }: {
|
|
24
|
-
Request: REST.RequestSchemed<RequestA, RequestE>;
|
|
25
|
-
Response: REST.ReqRes<ResponseA, ResponseE, any>;
|
|
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>;
|
|
27
|
-
export declare function fetchApi3SE<RequestA, RequestE, ResponseE = unknown, ResponseA = void>({ Request, Response }: {
|
|
28
|
-
Request: REST.RequestSchemed<RequestA, RequestE>;
|
|
29
|
-
Response: REST.ReqRes<ResponseA, ResponseE, any>;
|
|
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>;
|
|
31
|
-
export declare function makePathWithQuery(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
|
|
32
|
-
export declare function makePathWithBody(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
|
|
33
|
-
export declare function mapResponse<T, A>(map: (t: T) => A): (r: FetchResponse<T>) => FetchResponse<A>;
|
|
34
|
-
export declare function mapResponseM<T, R, E, A>(map: (t: T) => Effect<A, E, R>): (r: FetchResponse<T>) => Effect<FetchResponse<A>, E, R>;
|
|
35
|
-
export type FetchResponse<T> = {
|
|
36
|
-
body: T;
|
|
37
|
-
headers: Headers;
|
|
38
|
-
status: number;
|
|
39
|
-
};
|
|
40
|
-
export declare const EmptyResponse: Readonly<{
|
|
41
|
-
body: null;
|
|
42
|
-
headers: {};
|
|
43
|
-
status: 404;
|
|
44
|
-
}>;
|
|
45
|
-
export declare const EmptyResponseM: Effect.Effect<Readonly<{
|
|
46
|
-
body: null;
|
|
47
|
-
headers: {};
|
|
48
|
-
status: 404;
|
|
49
|
-
}>, never, never>;
|
|
50
|
-
export declare function EmptyResponseMThunk<T>(): Effect<Readonly<{
|
|
51
|
-
body: null | T;
|
|
52
|
-
headers: {};
|
|
53
|
-
status: 404;
|
|
54
|
-
}>, never, unknown>;
|
|
55
|
-
export declare function getBody<R, E, A>(eff: Effect<FetchResponse<A | null>, E, R>): Effect.Effect<A | null, E, R>;
|
|
56
|
-
//# sourceMappingURL=fetch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/client/fetch.ts"],"names":[],"mappings":"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"}
|
package/dist/client/fetch.js
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { Effect, HashMap, Option } from "@effect-app/core";
|
|
3
|
-
import { constant } from "@effect-app/core/Function";
|
|
4
|
-
import { Record } from "effect";
|
|
5
|
-
import { StringId } from "effect-app/schema";
|
|
6
|
-
import { Path } from "path-parser";
|
|
7
|
-
import qs from "query-string";
|
|
8
|
-
import { HttpClient, HttpClientRequest } from "../http.js";
|
|
9
|
-
import { S } from "../lib.js";
|
|
10
|
-
import { PreludeLogger } from "../logger.js";
|
|
11
|
-
import { ApiConfig } from "./config.js";
|
|
12
|
-
import { InvalidStateError, NotFoundError, NotLoggedInError, OptimisticConcurrencyException, ServiceUnavailableError, UnauthorizedError, ValidationError } from "./errors.js";
|
|
13
|
-
export class ResError {
|
|
14
|
-
error;
|
|
15
|
-
_tag = "ResponseError";
|
|
16
|
-
constructor(error) {
|
|
17
|
-
this.error = error;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
const getClient = Effect.flatMap(HttpClient.HttpClient, (defaultClient) => Effect.map(ApiConfig.Tag, ({ apiUrl, headers }) => defaultClient
|
|
21
|
-
.pipe(HttpClient.filterStatusOk, HttpClient
|
|
22
|
-
.mapRequest((_) => _.pipe(HttpClientRequest.acceptJson, HttpClientRequest.prependUrl(apiUrl), HttpClientRequest
|
|
23
|
-
.setHeaders({
|
|
24
|
-
"request-id": Option.getOrUndefined(Option.flatMap(headers, (_) => HashMap.get(_, "request-id")))
|
|
25
|
-
?? StringId.make(),
|
|
26
|
-
...Option.getOrUndefined(Option.map(headers, (_) => Object.fromEntries(_)))
|
|
27
|
-
}))), HttpClient
|
|
28
|
-
.tapRequest((r) => PreludeLogger
|
|
29
|
-
.logDebug(`[HTTP] ${r.method}`)
|
|
30
|
-
.pipe(Effect.annotateLogs({
|
|
31
|
-
"url": r.url,
|
|
32
|
-
"body": r.body._tag === "Uint8Array"
|
|
33
|
-
? new TextDecoder().decode(r.body.body)
|
|
34
|
-
: r.body._tag,
|
|
35
|
-
"headers": r.headers
|
|
36
|
-
}))), HttpClient
|
|
37
|
-
.mapEffect((_) => (_.status === 204
|
|
38
|
-
? Effect.sync(() => ({ status: _.status, body: void 0, headers: _.headers }))
|
|
39
|
-
: Effect.map(_.json, (body) => ({ status: _.status, body, headers: _.headers })))
|
|
40
|
-
.pipe(Effect.withSpan("client.response", { captureStackTrace: false }))))));
|
|
41
|
-
export function fetchApi(method, path, body, responseError) {
|
|
42
|
-
return Effect.flatMap(getClient, (client) => (method === "GET"
|
|
43
|
-
? client.execute(HttpClientRequest.make(method)(path))
|
|
44
|
-
: body === undefined
|
|
45
|
-
? client.execute(HttpClientRequest.make(method)(path))
|
|
46
|
-
: HttpClientRequest
|
|
47
|
-
.make(method)(path)
|
|
48
|
-
.pipe(HttpClientRequest.bodyJson(body), Effect.flatMap(client.execute)))
|
|
49
|
-
.pipe(Effect
|
|
50
|
-
.catchTag("ResponseError", (err) => {
|
|
51
|
-
const toError = (s) => Effect
|
|
52
|
-
.flatMap(err
|
|
53
|
-
.response
|
|
54
|
-
.json, (_) => S.decodeUnknown(s)(_).pipe(Effect.catchAll(() => Effect.fail(err))))
|
|
55
|
-
.pipe(Effect.flatMap(Effect.fail));
|
|
56
|
-
// opposite of api's `defaultErrorHandler`
|
|
57
|
-
if (err.response.status === 404) {
|
|
58
|
-
return toError(NotFoundError);
|
|
59
|
-
}
|
|
60
|
-
if (err.response.status === 400) {
|
|
61
|
-
return toError(ValidationError);
|
|
62
|
-
}
|
|
63
|
-
if (err.response.status === 401) {
|
|
64
|
-
return toError(NotLoggedInError);
|
|
65
|
-
}
|
|
66
|
-
// TODO: DomainError
|
|
67
|
-
if (err.response.status === 422) {
|
|
68
|
-
return responseError
|
|
69
|
-
? toError(S.Union(responseError, InvalidStateError))
|
|
70
|
-
: toError(InvalidStateError);
|
|
71
|
-
}
|
|
72
|
-
if (err.response.status === 503) {
|
|
73
|
-
return toError(ServiceUnavailableError);
|
|
74
|
-
}
|
|
75
|
-
if (err.response.status === 403) {
|
|
76
|
-
return toError(UnauthorizedError);
|
|
77
|
-
}
|
|
78
|
-
if (err.response.status === 412) {
|
|
79
|
-
return toError(OptimisticConcurrencyException);
|
|
80
|
-
}
|
|
81
|
-
return Effect.fail(err);
|
|
82
|
-
}), Effect.catchTags({
|
|
83
|
-
"ResponseError": (err) => Effect
|
|
84
|
-
.orDie(err
|
|
85
|
-
.response
|
|
86
|
-
.text
|
|
87
|
-
// TODO
|
|
88
|
-
)
|
|
89
|
-
.pipe(Effect
|
|
90
|
-
.flatMap((_) => Effect.fail({
|
|
91
|
-
_tag: "HttpErrorResponse",
|
|
92
|
-
response: {
|
|
93
|
-
body: Option.fromNullable(_),
|
|
94
|
-
status: err.response.status,
|
|
95
|
-
headers: err.response.headers
|
|
96
|
-
}
|
|
97
|
-
}))),
|
|
98
|
-
"RequestError": (err) => Effect.fail({ _tag: "HttpErrorRequest", error: err.cause })
|
|
99
|
-
}), Effect.scoped));
|
|
100
|
-
}
|
|
101
|
-
export function fetchApi2S(request, response, responseError) {
|
|
102
|
-
const encodeRequest = S.encode(request);
|
|
103
|
-
const decRes = S.decodeUnknown(response);
|
|
104
|
-
const decodeRes = (u) => Effect.mapError(decRes(u), (err) => new ResError(err));
|
|
105
|
-
const parse = mapResponseM(decodeRes);
|
|
106
|
-
return (method, path) => (req) => {
|
|
107
|
-
return Effect.andThen(encodeRequest(req), (encoded) => fetchApi(method, method === "DELETE"
|
|
108
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
109
|
-
? makePathWithQuery(path, encoded)
|
|
110
|
-
: makePathWithBody(path, encoded), encoded, responseError)
|
|
111
|
-
.pipe(Effect.flatMap(parse)));
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
export function fetchApi3S({ Request, Response }) {
|
|
115
|
-
return fetchApi2S(Request, Response, Request.errors)(Request.method, new Path(Request.path));
|
|
116
|
-
}
|
|
117
|
-
export function fetchApi3SE({ Request, Response }) {
|
|
118
|
-
const a = fetchApi2S(Request, Response)(Request.method, new Path(Request.path));
|
|
119
|
-
const parse = mapResponseM(S.encode(Response));
|
|
120
|
-
return (req) => Effect.flatMap(a(req), parse);
|
|
121
|
-
}
|
|
122
|
-
export function makePathWithQuery(path, pars) {
|
|
123
|
-
const forQs = Record.filter(pars, (_, k) => !path.params.includes(k));
|
|
124
|
-
const q = forQs; // { ...forQs, _: JSON.stringify(forQs) } // TODO: drop completely individual keys from query?, sticking to json only
|
|
125
|
-
return (path.build(pars, { ignoreSearch: true, ignoreConstraints: true })
|
|
126
|
-
+ (Object.keys(q).length
|
|
127
|
-
? "?" + qs.stringify(q)
|
|
128
|
-
: ""));
|
|
129
|
-
}
|
|
130
|
-
export function makePathWithBody(path, pars) {
|
|
131
|
-
return path.build(pars, { ignoreSearch: true, ignoreConstraints: true });
|
|
132
|
-
}
|
|
133
|
-
export function mapResponse(map) {
|
|
134
|
-
return (r) => {
|
|
135
|
-
return { ...r, body: map(r.body) };
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
export function mapResponseM(map) {
|
|
139
|
-
return (r) => {
|
|
140
|
-
return Effect
|
|
141
|
-
.all({
|
|
142
|
-
body: map(r.body),
|
|
143
|
-
headers: Effect.sync(() => r.headers),
|
|
144
|
-
status: Effect.sync(() => r.status)
|
|
145
|
-
})
|
|
146
|
-
.pipe(Effect.withSpan("client.decode", { captureStackTrace: false }));
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
export const EmptyResponse = Object.freeze({ body: null, headers: {}, status: 404 });
|
|
150
|
-
export const EmptyResponseM = Effect.sync(() => EmptyResponse);
|
|
151
|
-
const EmptyResponseMThunk_ = constant(EmptyResponseM);
|
|
152
|
-
export function EmptyResponseMThunk() {
|
|
153
|
-
return EmptyResponseMThunk_();
|
|
154
|
-
}
|
|
155
|
-
export function getBody(eff) {
|
|
156
|
-
return Effect.flatMap(eff, (r) => r.body === null ? Effect.die("Not found") : Effect.sync(() => r.body));
|
|
157
|
-
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2ZldGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFHcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUUvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMxRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV2QyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsOEJBQThCLEVBQzlCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsZUFBZSxFQUNoQixNQUFNLGFBQWEsQ0FBQTtBQUlwQixNQUFNLE9BQU8sUUFBUTtJQUVTO0lBRFosSUFBSSxHQUFHLGVBQWUsQ0FBQTtJQUN0QyxZQUE0QixLQUFjO1FBQWQsVUFBSyxHQUFMLEtBQUssQ0FBUztJQUFHLENBQUM7Q0FDL0M7QUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUM5QixVQUFVLENBQUMsVUFBVSxFQUNyQixDQUFDLGFBQWEsRUFBRSxFQUFFLENBQ2hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxD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
|
package/dist/client/router.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { BuildRequest } from "@effect-app/schema/REST";
|
|
2
|
-
import { S } from "../lib.js";
|
|
3
|
-
export declare const makeClientRouter: <RequestConfig extends object>() => <M>() => {
|
|
4
|
-
<Fields extends S.Struct.Fields, C extends {
|
|
5
|
-
success: S.Schema.Any;
|
|
6
|
-
}>(fields: Fields, config: RequestConfig & C): BuildRequest<Fields, "/", "AUTO", M, C & {
|
|
7
|
-
Response: C["success"];
|
|
8
|
-
}> & {
|
|
9
|
-
Request: BuildRequest<Fields, "/", "AUTO", M, C & {
|
|
10
|
-
Response: C["success"];
|
|
11
|
-
}>;
|
|
12
|
-
};
|
|
13
|
-
<Fields extends S.Struct.Fields, C_1 extends Record<string, any>>(fields: Fields, config: C_1 & RequestConfig): BuildRequest<Fields, "/", "AUTO", M, C_1 & {
|
|
14
|
-
success: typeof S.Void;
|
|
15
|
-
Response: typeof S.Void;
|
|
16
|
-
}> & {
|
|
17
|
-
Request: BuildRequest<Fields, "/", "AUTO", M, C_1 & {
|
|
18
|
-
success: typeof S.Void;
|
|
19
|
-
Response: typeof S.Void;
|
|
20
|
-
}>;
|
|
21
|
-
};
|
|
22
|
-
<Fields extends S.Struct.Fields>(fields: Fields): BuildRequest<Fields, "/", "AUTO", M, {
|
|
23
|
-
success: typeof S.Void;
|
|
24
|
-
Response: typeof S.Void;
|
|
25
|
-
}> & {
|
|
26
|
-
Request: BuildRequest<Fields, "/", "AUTO", M, {
|
|
27
|
-
success: typeof S.Void;
|
|
28
|
-
Response: typeof S.Void;
|
|
29
|
-
}>;
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=router.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/client/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAG7B,eAAO,MAAM,gBAAgB,GAAI,aAAa,SAAS,MAAM,QAG9C,CAAC,OAAK;IACjB,CAAC,MAA8B,SAAf,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAiB;iBAF1B,CAAC,CAAC,MAAM,CAAC,GAAG;KAEc,EAChD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,GAAG,CAAC,GAEvB,YAAY,CACZ,MAAM,EACN,GAAG,EACH,MAAM,EACN,CAAC,EACD,CAAC,GAAG;QAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;KAAE,CAC/B,GACC;QACA,OAAO,EAAE,YAAY,CACnB,MAAM,EACN,GAAG,EACH,MAAM,EACN,CAAC,EACD,CAAC,GAAG;YAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;SAAE,CAC/B,CAAA;KACF,CAAA;IACH,CAAC,MAA8B,SAAf,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,GAA6B,SAAnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5D,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,GAAC,GAAG,aAAa,GAEvB,YAAY,CACZ,MAAM,EACN,GAAG,EACH,MAAM,EACN,CAAC,EACD,GAAC,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAA;KAAE,CACxD,GACC;QACA,OAAO,EAAE,YAAY,CACnB,MAAM,EACN,GAAG,EACH,MAAM,EACN,CAAC,EACD,GAAC,GAAG;YAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAA;SAAE,CACxD,CAAA;KACF,CAAA;IACH,CAAC,MAA8B,SAAf,CAAC,CAAC,MAAM,CAAC,MAAM,EAC7B,MAAM,EAAE,MAAM,GAEZ,YAAY,CACZ,MAAM,EACN,GAAG,EACH,MAAM,EACN,CAAC,EACD;QACE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAA;QACtB,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAA;KACxB,CACF,GACC;QACA,OAAO,EAAE,YAAY,CACnB,MAAM,EACN,GAAG,EACH,MAAM,EACN,CAAC,EACD;YAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAA;SAAE,CACpD,CAAA;KACF,CAAA;CAgBN,CAAA"}
|
package/dist/client/router.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Req as Req_ } from "@effect-app/schema/REST";
|
|
2
|
-
import { S } from "../lib.js";
|
|
3
|
-
// TODO: get rid of Request in Request and Response in C
|
|
4
|
-
export const makeClientRouter = () => {
|
|
5
|
-
function Req() {
|
|
6
|
-
return ((fields, config) => {
|
|
7
|
-
// TODO: get rid of Response, just use success (only all legacy migrated)
|
|
8
|
-
const req = config?.success
|
|
9
|
-
? Req_({ ...config, Response: config.success })()(fields)
|
|
10
|
-
: Req_({ ...config, success: S.Void, Response: S.Void })()(fields);
|
|
11
|
-
const req2 = Object.assign(req, { Request: req }); // bwc
|
|
12
|
-
return req2;
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
return Req;
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRTdCLHdEQUF3RDtBQUN4RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFpQyxFQUFFO0lBR2pFLFNBQVMsR0FBRztRQWdFVixPQUFPLENBQUMsQ0FDTixNQUFjLEVBQ2QsTUFBVSxFQUNWLEVBQUU7WUFDRix5RUFBeUU7WUFDekUsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLE9BQU87Z0JBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUssQ0FBUyxNQUFNLENBQUM7Z0JBQ3ZFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUssQ0FBUyxNQUFNLENBQUMsQ0FBQTtZQUMvRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFBLENBQUMsTUFBTTtZQUN4RCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUMsQ0FBUSxDQUFBO0lBQ1gsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQyxDQUFBIn0=
|