effect-app 0.174.0 → 0.175.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 +19 -0
- package/_cjs/Request.cjs +8 -12
- package/_cjs/Request.cjs.map +1 -1
- package/dist/Request.d.ts +9 -12
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +4 -10
- package/package.json +6 -6
- package/src/Request.ts +10 -23
- package/vitest.config.ts.timestamp-1670862388823.mjs +23 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @effect-app/prelude
|
|
2
2
|
|
|
3
|
+
## 0.175.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 117be64: bump
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [117be64]
|
|
12
|
+
- @effect-app/core@0.148.0
|
|
13
|
+
- @effect-app/fluent-extensions@0.141.0
|
|
14
|
+
- @effect-app/schema@0.199.0
|
|
15
|
+
|
|
16
|
+
## 0.174.1
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- 4008eb1: cleanup and add byIdAndSaveWithPure
|
|
21
|
+
|
|
3
22
|
## 0.174.0
|
|
4
23
|
|
|
5
24
|
### Minor Changes
|
package/_cjs/Request.cjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.schemaJsonBodyUnsafe = exports.schemaJsonBody = exports.responseWithSchemaBody = exports.responseWithJsonBody = exports.demandJson = void 0;
|
|
7
7
|
var _http = require("./http.cjs");
|
|
8
8
|
var _lib = require("./lib.cjs");
|
|
9
9
|
// TODO: consider rebuilding the text/json helpers to use a cached effect
|
|
@@ -32,21 +32,17 @@ const schemaJsonBodyUnsafe = (client, schema) => {
|
|
|
32
32
|
return _http.HttpClient.mapEffect(client, _ => _lib.Effect.map(_.json, _lib.S.decodeUnknownSync(schema)));
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
35
|
-
* @tsplus fluent effect/platform/Http/Client
|
|
35
|
+
* @tsplus fluent effect/platform/Http/Client responseWithSchemaBody
|
|
36
36
|
*/
|
|
37
37
|
exports.schemaJsonBodyUnsafe = schemaJsonBodyUnsafe;
|
|
38
|
-
const
|
|
39
|
-
return _http.HttpClient.mapEffect(client, _ => _lib.Effect.flatMap(responseWithJsonBody(_), _lib.S.decodeUnknown(schema))
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
*/
|
|
44
|
-
exports.schemaJson = schemaJson;
|
|
45
|
-
const schemaJsonUnsafe = (client, schema) => {
|
|
46
|
-
return _http.HttpClient.mapEffect(client, _ => _lib.Effect.flatMap(responseWithJsonBody(_), _lib.S.decodeUnknown(schema)));
|
|
38
|
+
const responseWithSchemaBody = (client, schema) => {
|
|
39
|
+
return _http.HttpClient.mapEffect(client, _ => _lib.Effect.flatMap(responseWithJsonBody(_), _ => _lib.Effect.map(_lib.S.decodeUnknown(schema)(_.body), body => ({
|
|
40
|
+
..._,
|
|
41
|
+
body
|
|
42
|
+
}))));
|
|
47
43
|
};
|
|
48
44
|
/** @tsplus getter effect/platform/Http/Client demandJson */
|
|
49
|
-
exports.
|
|
45
|
+
exports.responseWithSchemaBody = responseWithSchemaBody;
|
|
50
46
|
const demandJson = client => _http.HttpClient.mapRequest(client, _ => _http.HttpClientRequest.acceptJson(_)).pipe(_http.HttpClient.transform((r, request) => _lib.Effect.tap(r, response => _lib.Option.getOrUndefined(_http.HttpHeaders.get(response.headers, "Content-Type"))?.startsWith("application/json") ? _lib.Effect.unit : _lib.Effect.fail(_http.HttpClientError.ResponseError({
|
|
51
47
|
request,
|
|
52
48
|
response,
|
package/_cjs/Request.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.cjs","names":["_http","require","_lib","responseWithJsonBody","response","Effect","map","json","body","headers","status","remoteAddress","exports","schemaJsonBody","client","schema","HttpClient","mapEffect","_","flatMap","S","decodeUnknown","schemaJsonBodyUnsafe","decodeUnknownSync","
|
|
1
|
+
{"version":3,"file":"Request.cjs","names":["_http","require","_lib","responseWithJsonBody","response","Effect","map","json","body","headers","status","remoteAddress","exports","schemaJsonBody","client","schema","HttpClient","mapEffect","_","flatMap","S","decodeUnknown","schemaJsonBodyUnsafe","decodeUnknownSync","responseWithSchemaBody","demandJson","mapRequest","HttpClientRequest","acceptJson","pipe","transform","r","request","tap","Option","getOrUndefined","HttpHeaders","get","startsWith","unit","fail","HttpClientError","ResponseError","reason","error"],"sources":["../src/Request.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAMA;AACA;AAEA;;;AAGO,MAAME,oBAAoB,GAC/BC,QAAwB,IAExBC,WAAM,CAACC,GAAG,CAACF,QAAQ,CAACG,IAAI,EAAGC,IAAI,KAAiC;EAC9DA,IAAI;EACJC,OAAO,EAAEL,QAAQ,CAACK,OAAO;EACzBC,MAAM,EAAEN,QAAQ,CAACM,MAAM;EACvBC,aAAa,EAAEP,QAAQ,CAACO;CACzB,CAAC,CAAC;AAEL;;;AAAAC,OAAA,CAAAT,oBAAA,GAAAA,oBAAA;AAGO,MAAMU,cAAc,GAAGA,CAC5BC,MAA+C,EAC/CC,MAA2B,KACzB;EACF,OAAOC,gBAAU,CAACC,SAAS,CAACH,MAAM,EAAGI,CAAC,IAAKb,WAAM,CAACc,OAAO,CAACD,CAAC,CAACX,IAAI,EAAEa,MAAC,CAACC,aAAa,CAACN,MAAM,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;;AAAAH,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAGO,MAAMS,oBAAoB,GAAGA,CAClCR,MAA+C,EAC/CC,MAAwB,KACtB;EACF,OAAOC,gBAAU,CAACC,SAAS,CAACH,MAAM,EAAGI,CAAC,IAAKb,WAAM,CAACC,GAAG,CAACY,CAAC,CAACX,IAAI,EAAEa,MAAC,CAACG,iBAAiB,CAACR,MAAM,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;;AAAAH,OAAA,CAAAU,oBAAA,GAAAA,oBAAA;AAGO,MAAME,sBAAsB,GAAGA,CAWpCV,MAA+C,EAC/CC,MAA2B,KACzB;EACF,OAAOC,gBAAU,CAACC,SAAS,CACzBH,MAAM,EACLI,CAAC,IACAb,WAAM,CAACc,OAAO,CACZhB,oBAAoB,CAACe,CAAC,CAAC,EACtBA,CAAC,IAAKb,WAAM,CAACC,GAAG,CAACc,MAAC,CAACC,aAAa,CAACN,MAAM,CAAC,CAACG,CAAC,CAACV,IAAI,CAAC,EAAGA,IAAI,KAAM;IAAE,GAAGU,CAAC;IAAEV;EAAI,CAAE,CAAC,CAAC,CAC/E,CACJ;AACH,CAAC;AAED;AAAAI,OAAA,CAAAY,sBAAA,GAAAA,sBAAA;AACO,MAAMC,UAAU,GAAUX,MAA+C,IAC9EE,gBAAU,CACPU,UAAU,CAACZ,MAAM,EAAGI,CAAC,IAAKS,uBAAiB,CAACC,UAAU,CAACV,CAAC,CAAC,CAAC,CAC1DW,IAAI,CAACb,gBAAU,CAACc,SAAS,CAAC,CAACC,CAAC,EAAEC,OAAO,KACpC3B,WAAM,CAAC4B,GAAG,CAACF,CAAC,EAAG3B,QAAQ,IACrB8B,WAAM,CACDC,cAAc,CAACC,iBAAW,CACxBC,GAAG,CAACjC,QAAQ,CAACK,OAAO,EAAE,cAAc,CAAC,CAAC,EACvC6B,UAAU,CAAC,kBAAkB,CAAC,GAChCjC,WAAM,CAACkC,IAAI,GACXlC,WAAM,CAACmC,IAAI,CAACC,qBAAe,CAACC,aAAa,CAAC;EAC1CV,OAAO;EACP5B,QAAQ;EACRuC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,qBAAqB,GAAGV,WAAM,CAACC,cAAc,CAACC,iBAAW,CAACC,GAAG,CAACjC,QAAQ,CAACK,OAAO,EAAE,cAAc,CAAC;CACvG,CAAC,CAAC,CAAC,CACT,CAAC;AAAAG,OAAA,CAAAa,UAAA,GAAAA,UAAA"}
|
package/dist/Request.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Schema } from "@effect-app/schema";
|
|
|
2
2
|
import type { ClientResponse } from "@effect/platform/Http/ClientResponse";
|
|
3
3
|
import type { Headers } from "@effect/platform/Http/Headers";
|
|
4
4
|
import { HttpClient, HttpClientError } from "./http.js";
|
|
5
|
-
import { Effect, S } from "./lib.js";
|
|
5
|
+
import { Effect, Option, S } from "./lib.js";
|
|
6
6
|
export interface ResponseWithBody<A> extends Pick<ClientResponse, "headers" | "status" | "remoteAddress"> {
|
|
7
7
|
readonly body: A;
|
|
8
8
|
}
|
|
@@ -19,21 +19,18 @@ export declare const schemaJsonBody: <R, To, From, A, B>(client: HttpClient.Clie
|
|
|
19
19
|
*/
|
|
20
20
|
export declare const schemaJsonBodyUnsafe: <To, From, A, B>(client: HttpClient.Client<A, B, ClientResponse>, schema: Schema<To, From, never>) => HttpClient.Client<A, HttpClientError.ResponseError | B, To>;
|
|
21
21
|
/**
|
|
22
|
-
* @tsplus fluent effect/platform/Http/Client
|
|
22
|
+
* @tsplus fluent effect/platform/Http/Client responseWithSchemaBody
|
|
23
23
|
*/
|
|
24
|
-
export declare const
|
|
24
|
+
export declare const responseWithSchemaBody: <R, From extends {
|
|
25
25
|
readonly status?: number;
|
|
26
26
|
readonly headers?: Headers;
|
|
27
27
|
readonly body?: unknown;
|
|
28
|
-
}, To, A, B>(client: HttpClient.Client<A, B, ClientResponse>, schema: Schema<To, From, R>) => HttpClient.Client<R | A, HttpClientError.ResponseError | B | S.ParseResult.ParseError,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
readonly headers?: Headers;
|
|
35
|
-
readonly body?: unknown;
|
|
36
|
-
}, To, A, B>(client: HttpClient.Client<A, B, ClientResponse>, schema: Schema<To, From, R>) => HttpClient.Client<R | A, HttpClientError.ResponseError | B | S.ParseResult.ParseError, To>;
|
|
28
|
+
}, To, A, B>(client: HttpClient.Client<A, B, ClientResponse>, schema: Schema<To, From, R>) => HttpClient.Client<R | A, HttpClientError.ResponseError | B | S.ParseResult.ParseError, {
|
|
29
|
+
body: To;
|
|
30
|
+
headers: Headers;
|
|
31
|
+
status: number;
|
|
32
|
+
remoteAddress: Option.Option<string>;
|
|
33
|
+
}>;
|
|
37
34
|
/** @tsplus getter effect/platform/Http/Client demandJson */
|
|
38
35
|
export declare const demandJson: <R, E>(client: HttpClient.Client<R, E, ClientResponse>) => HttpClient.Client<R, HttpClientError.ResponseError | E, ClientResponse>;
|
|
39
36
|
//# sourceMappingURL=Request.d.ts.map
|
package/dist/Request.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAkC,MAAM,WAAW,CAAA;AACvF,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAkC,MAAM,WAAW,CAAA;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAAU,CAAA;AAE5C,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,QAAQ,GAAG,eAAe,CAAC;IACvG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CACjB;AAKD;;GAEG;AACH,eAAO,MAAM,oBAAoB,aACrB,cAAc,mFAOrB,CAAA;AAEL;;GAEG;AACH,eAAO,MAAM,cAAc,iMAK1B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,mKAKhC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB;sBAGb,MAAM;uBACL,OAAO;oBACV,OAAO;;;;;;EAiB1B,CAAA;AAED,4DAA4D;AAC5D,eAAO,MAAM,UAAU,oIAgBjB,CAAA"}
|
package/dist/Request.js
CHANGED
|
@@ -24,16 +24,10 @@ export const schemaJsonBodyUnsafe = (client, schema) => {
|
|
|
24
24
|
return HttpClient.mapEffect(client, (_) => Effect.map(_.json, S.decodeUnknownSync(schema)));
|
|
25
25
|
};
|
|
26
26
|
/**
|
|
27
|
-
* @tsplus fluent effect/platform/Http/Client
|
|
27
|
+
* @tsplus fluent effect/platform/Http/Client responseWithSchemaBody
|
|
28
28
|
*/
|
|
29
|
-
export const
|
|
30
|
-
return HttpClient.mapEffect(client, (_) => Effect.flatMap(responseWithJsonBody(_), S.decodeUnknown(schema)));
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* @tsplus fluent effect/platform/Http/Client schemaJsonUnsafe
|
|
34
|
-
*/
|
|
35
|
-
export const schemaJsonUnsafe = (client, schema) => {
|
|
36
|
-
return HttpClient.mapEffect(client, (_) => Effect.flatMap(responseWithJsonBody(_), S.decodeUnknown(schema)));
|
|
29
|
+
export const responseWithSchemaBody = (client, schema) => {
|
|
30
|
+
return HttpClient.mapEffect(client, (_) => Effect.flatMap(responseWithJsonBody(_), (_) => Effect.map(S.decodeUnknown(schema)(_.body), (body) => ({ ..._, body }))));
|
|
37
31
|
};
|
|
38
32
|
/** @tsplus getter effect/platform/Http/Client demandJson */
|
|
39
33
|
export const demandJson = (client) => HttpClient
|
|
@@ -49,4 +43,4 @@ export const demandJson = (client) => HttpClient
|
|
|
49
43
|
reason: "Decode",
|
|
50
44
|
error: "not json response: " + Option.getOrUndefined(HttpHeaders.get(response.headers, "Content-Type"))
|
|
51
45
|
})))));
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9SZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN2RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFNNUMseUVBQXlFO0FBQ3pFLDBGQUEwRjtBQUUxRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQ2xDLFFBQXdCLEVBQ3hCLEVBQUUsQ0FDRixNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQTZCLEVBQUUsQ0FBQyxDQUFDO0lBQzlELElBQUk7SUFDSixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87SUFDekIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLGFBQWEsRUFBRSxRQUFRLENBQUMsYUFBYTtDQUN0QyxDQUFDLENBQUMsQ0FBQTtBQUVMOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQzVCLE1BQStDLEVBQy9DLE1BQTJCLEVBQzNCLEVBQUU7SUFDRixPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDN0YsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxNQUErQyxFQUMvQyxNQUF3QixFQUN4QixFQUFFO0lBQ0YsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDN0YsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQVdwQyxNQUErQyxFQUMvQyxNQUEyQixFQUMzQixFQUFFO0lBQ0YsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUN6QixNQUFNLEVBQ04sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLE1BQU0sQ0FBQyxPQUFPLENBQ1osb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQ3ZCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUMvRSxDQUNKLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCw0REFBNEQ7QUFDNUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQU8sTUFBK0MsRUFBRSxFQUFFLENBQ2xGLFVBQVU7S0FDUCxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDeEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUN6QixNQUFNO0tBQ0QsY0FBYyxDQUFDLFdBQVc7S0FDeEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDekMsRUFBRSxVQUFVLENBQUMsa0JBQWtCLENBQUM7SUFDbEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJO0lBQ2IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUMxQyxPQUFPO1FBQ1AsUUFBUTtRQUNSLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLEtBQUssRUFBRSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztLQUN4RyxDQUFDLENBQUMsQ0FBQyxDQUNULENBQUMsQ0FBQSJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.175.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"ts-pattern": "^5.0.8",
|
|
14
14
|
"uuid": "^9.0.1",
|
|
15
15
|
"validator": "^13.11.0",
|
|
16
|
-
"@effect-app/core": "0.
|
|
17
|
-
"@effect-app/
|
|
18
|
-
"@effect-app/
|
|
16
|
+
"@effect-app/core": "0.148.0",
|
|
17
|
+
"@effect-app/fluent-extensions": "0.141.0",
|
|
18
|
+
"@effect-app/schema": "0.199.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@babel/cli": "^7.23.9",
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
"ts-node": "^10.9.2",
|
|
28
28
|
"typescript": "^5.3.3",
|
|
29
29
|
"vitest": "^1.3.1",
|
|
30
|
-
"@effect-app/compiler": "0.
|
|
30
|
+
"@effect-app/compiler": "0.69.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"@effect/platform": "^0.46.1",
|
|
34
34
|
"effect": "^2.4.0",
|
|
35
35
|
"@effect/schema": "^0.63.0",
|
|
36
|
-
"@fp-ts/optic": "
|
|
36
|
+
"@fp-ts/optic": "0.22.0"
|
|
37
37
|
},
|
|
38
38
|
"typesVersions": {
|
|
39
39
|
"*": {
|
package/src/Request.ts
CHANGED
|
@@ -45,9 +45,9 @@ export const schemaJsonBodyUnsafe = <To, From, A, B>(
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
|
-
* @tsplus fluent effect/platform/Http/Client
|
|
48
|
+
* @tsplus fluent effect/platform/Http/Client responseWithSchemaBody
|
|
49
49
|
*/
|
|
50
|
-
export const
|
|
50
|
+
export const responseWithSchemaBody = <
|
|
51
51
|
R,
|
|
52
52
|
From extends {
|
|
53
53
|
readonly status?: number
|
|
@@ -61,27 +61,14 @@ export const schemaJson = <
|
|
|
61
61
|
client: HttpClient.Client<A, B, ClientResponse>,
|
|
62
62
|
schema: Schema<To, From, R>
|
|
63
63
|
) => {
|
|
64
|
-
return HttpClient.mapEffect(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
From extends {
|
|
73
|
-
readonly status?: number
|
|
74
|
-
readonly headers?: Headers
|
|
75
|
-
readonly body?: unknown
|
|
76
|
-
},
|
|
77
|
-
To,
|
|
78
|
-
A,
|
|
79
|
-
B
|
|
80
|
-
>(
|
|
81
|
-
client: HttpClient.Client<A, B, ClientResponse>,
|
|
82
|
-
schema: Schema<To, From, R>
|
|
83
|
-
) => {
|
|
84
|
-
return HttpClient.mapEffect(client, (_) => Effect.flatMap(responseWithJsonBody(_), S.decodeUnknown(schema)))
|
|
64
|
+
return HttpClient.mapEffect(
|
|
65
|
+
client,
|
|
66
|
+
(_) =>
|
|
67
|
+
Effect.flatMap(
|
|
68
|
+
responseWithJsonBody(_),
|
|
69
|
+
(_) => Effect.map(S.decodeUnknown(schema)(_.body), (body) => ({ ..._, body }))
|
|
70
|
+
)
|
|
71
|
+
)
|
|
85
72
|
}
|
|
86
73
|
|
|
87
74
|
/** @tsplus getter effect/platform/Http/Client demandJson */
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// vitest.config.ts
|
|
2
|
+
import { defineConfig } from "file:///Users/patrickroza/Projects/Personal/effect-ts-app/libs/node_modules/.pnpm/vite@4.0.0_@types+node@18.11.12/node_modules/vite/dist/node/index.js";
|
|
3
|
+
|
|
4
|
+
// ../../vite.config.base.ts
|
|
5
|
+
import { tsPlugin } from "file:///Users/patrickroza/Projects/Personal/effect-ts-app/libs/packages/compiler/dist/vitePlugin.js";
|
|
6
|
+
function makeConfig() {
|
|
7
|
+
return {
|
|
8
|
+
plugins: [tsPlugin({})],
|
|
9
|
+
test: {
|
|
10
|
+
include: ["./_src/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
|
|
11
|
+
exclude: ["./_test/**/*"],
|
|
12
|
+
reporters: "verbose",
|
|
13
|
+
globals: true
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// vitest.config.ts
|
|
19
|
+
var vitest_config_default = defineConfig(makeConfig());
|
|
20
|
+
export {
|
|
21
|
+
vitest_config_default as default
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZXN0LmNvbmZpZy50cyIsICIuLi8uLi92aXRlLmNvbmZpZy5iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL1Byb2plY3RzL1BlcnNvbmFsL2VmZmVjdC10cy1hcHAvbGlicy9wYWNrYWdlcy9ib2lsZXJwbGF0ZS1wcmVsdWRlXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvUHJvamVjdHMvUGVyc29uYWwvZWZmZWN0LXRzLWFwcC9saWJzL3BhY2thZ2VzL2JvaWxlcnBsYXRlLXByZWx1ZGUvdml0ZXN0LmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvcGF0cmlja3JvemEvUHJvamVjdHMvUGVyc29uYWwvZWZmZWN0LXRzLWFwcC9saWJzL3BhY2thZ2VzL2JvaWxlcnBsYXRlLXByZWx1ZGUvdml0ZXN0LmNvbmZpZy50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBtYWtlQ29uZmlnIGZyb20gXCIuLi8uLi92aXRlLmNvbmZpZy5iYXNlXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKG1ha2VDb25maWcoKSlcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL1Byb2plY3RzL1BlcnNvbmFsL2VmZmVjdC10cy1hcHAvbGlic1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL1Byb2plY3RzL1BlcnNvbmFsL2VmZmVjdC10cy1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9Qcm9qZWN0cy9QZXJzb25hbC9lZmZlY3QtdHMtYXBwL2xpYnMvdml0ZS5jb25maWcuYmFzZS50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IHRzUGx1Z2luIH0gZnJvbSBcIkBlZmZlY3QtdHMtYXBwL2NvbXBpbGVyL3ZpdGVQbHVnaW5cIlxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFrZUNvbmZpZygpIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgIHBsdWdpbnM6IFt0c1BsdWdpbih7fSldLFxuICAgIHRlc3Q6IHtcbiAgICAgIGluY2x1ZGU6IFtcIi4vX3NyYy8qKi8qLnRlc3Que2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fVwiXSxcbiAgICAgIGV4Y2x1ZGU6IFtcIi4vX3Rlc3QvKiovKlwiXSxcbiAgICAgIHJlcG9ydGVyczogXCJ2ZXJib3NlXCIsXG4gICAgICBnbG9iYWxzOiB0cnVlXG4gICAgfSxcbiAgICAvLyByZXNvbHZlOiB7XG4gICAgLy8gICBhbGlhczoge1xuICAgIC8vICAgICBcIkBlZmZlY3QvaW8vdGVzdFwiOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcIi90ZXN0XCIpLFxuICAgIC8vICAgICBcIkBlZmZlY3QvaW9cIjogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgXCIvc3JjXCIpXG4gICAgLy8gICB9XG4gICAgLy8gfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7OztBQ0E3QixTQUFTLGdCQUFnQjtBQUNWLFNBQVIsYUFBOEI7QUFDbkMsU0FBTztBQUFBLElBRUwsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFBQSxJQUN0QixNQUFNO0FBQUEsTUFDSixTQUFTLENBQUMsa0RBQWtEO0FBQUEsTUFDNUQsU0FBUyxDQUFDLGNBQWM7QUFBQSxNQUN4QixXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsSUFDWDtBQUFBLEVBT0Y7QUFDRjs7O0FEZkEsSUFBTyx3QkFBUSxhQUFhLFdBQVcsQ0FBQzsiLAogICJuYW1lcyI6IFtdCn0K
|