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,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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
@@ -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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"}
@@ -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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
@@ -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"}
@@ -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=