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 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.schemaJsonUnsafe = exports.schemaJsonBodyUnsafe = exports.schemaJsonBody = exports.schemaJson = exports.responseWithJsonBody = exports.demandJson = void 0;
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 schemaJson
35
+ * @tsplus fluent effect/platform/Http/Client responseWithSchemaBody
36
36
  */
37
37
  exports.schemaJsonBodyUnsafe = schemaJsonBodyUnsafe;
38
- const schemaJson = (client, schema) => {
39
- return _http.HttpClient.mapEffect(client, _ => _lib.Effect.flatMap(responseWithJsonBody(_), _lib.S.decodeUnknown(schema)));
40
- };
41
- /**
42
- * @tsplus fluent effect/platform/Http/Client schemaJsonUnsafe
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.schemaJsonUnsafe = schemaJsonUnsafe;
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,
@@ -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","schemaJson","schemaJsonUnsafe","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,UAAU,GAAGA,CAWxBV,MAA+C,EAC/CC,MAA2B,KACzB;EACF,OAAOC,gBAAU,CAACC,SAAS,CAACH,MAAM,EAAGI,CAAC,IAAKb,WAAM,CAACc,OAAO,CAAChB,oBAAoB,CAACe,CAAC,CAAC,EAAEE,MAAC,CAACC,aAAa,CAACN,MAAM,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED;;;AAAAH,OAAA,CAAAY,UAAA,GAAAA,UAAA;AAGO,MAAMC,gBAAgB,GAAGA,CAW9BX,MAA+C,EAC/CC,MAA2B,KACzB;EACF,OAAOC,gBAAU,CAACC,SAAS,CAACH,MAAM,EAAGI,CAAC,IAAKb,WAAM,CAACc,OAAO,CAAChB,oBAAoB,CAACe,CAAC,CAAC,EAAEE,MAAC,CAACC,aAAa,CAACN,MAAM,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED;AAAAH,OAAA,CAAAa,gBAAA,GAAAA,gBAAA;AACO,MAAMC,UAAU,GAAUZ,MAA+C,IAC9EE,gBAAU,CACPW,UAAU,CAACb,MAAM,EAAGI,CAAC,IAAKU,uBAAiB,CAACC,UAAU,CAACX,CAAC,CAAC,CAAC,CAC1DY,IAAI,CAACd,gBAAU,CAACe,SAAS,CAAC,CAACC,CAAC,EAAEC,OAAO,KACpC5B,WAAM,CAAC6B,GAAG,CAACF,CAAC,EAAG5B,QAAQ,IACrB+B,WAAM,CACDC,cAAc,CAACC,iBAAW,CACxBC,GAAG,CAAClC,QAAQ,CAACK,OAAO,EAAE,cAAc,CAAC,CAAC,EACvC8B,UAAU,CAAC,kBAAkB,CAAC,GAChClC,WAAM,CAACmC,IAAI,GACXnC,WAAM,CAACoC,IAAI,CAACC,qBAAe,CAACC,aAAa,CAAC;EAC1CV,OAAO;EACP7B,QAAQ;EACRwC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,qBAAqB,GAAGV,WAAM,CAACC,cAAc,CAACC,iBAAW,CAACC,GAAG,CAAClC,QAAQ,CAACK,OAAO,EAAE,cAAc,CAAC;CACvG,CAAC,CAAC,CAAC,CACT,CAAC;AAAAG,OAAA,CAAAc,UAAA,GAAAA,UAAA"}
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 schemaJson
22
+ * @tsplus fluent effect/platform/Http/Client responseWithSchemaBody
23
23
  */
24
- export declare const schemaJson: <R, From extends {
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, To>;
29
- /**
30
- * @tsplus fluent effect/platform/Http/Client schemaJsonUnsafe
31
- */
32
- export declare const schemaJsonUnsafe: <R, From extends {
33
- readonly status?: number;
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
@@ -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,EAAU,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,UAAU;sBAGD,MAAM;uBACL,OAAO;oBACV,OAAO;wLAU1B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;sBAGP,MAAM;uBACL,OAAO;oBACV,OAAO;wLAU1B,CAAA;AAED,4DAA4D;AAC5D,eAAO,MAAM,UAAU,oIAgBjB,CAAA"}
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 schemaJson
27
+ * @tsplus fluent effect/platform/Http/Client responseWithSchemaBody
28
28
  */
29
- export const schemaJson = (client, schema) => {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9SZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN2RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFNNUMseUVBQXlFO0FBQ3pFLDBGQUEwRjtBQUUxRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQ2xDLFFBQXdCLEVBQ3hCLEVBQUUsQ0FDRixNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQTZCLEVBQUUsQ0FBQyxDQUFDO0lBQzlELElBQUk7SUFDSixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87SUFDekIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLGFBQWEsRUFBRSxRQUFRLENBQUMsYUFBYTtDQUN0QyxDQUFDLENBQUMsQ0FBQTtBQUVMOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQzVCLE1BQStDLEVBQy9DLE1BQTJCLEVBQzNCLEVBQUU7SUFDRixPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDN0YsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxNQUErQyxFQUMvQyxNQUF3QixFQUN4QixFQUFFO0lBQ0YsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDN0YsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FXeEIsTUFBK0MsRUFDL0MsTUFBMkIsRUFDM0IsRUFBRTtJQUNGLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDOUcsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQVc5QixNQUErQyxFQUMvQyxNQUEyQixFQUMzQixFQUFFO0lBQ0YsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUM5RyxDQUFDLENBQUE7QUFFRCw0REFBNEQ7QUFDNUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQU8sTUFBK0MsRUFBRSxFQUFFLENBQ2xGLFVBQVU7S0FDUCxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDeEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUN6QixNQUFNO0tBQ0QsY0FBYyxDQUFDLFdBQVc7S0FDeEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDekMsRUFBRSxVQUFVLENBQUMsa0JBQWtCLENBQUM7SUFDbEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJO0lBQ2IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUMxQyxPQUFPO1FBQ1AsUUFBUTtRQUNSLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLEtBQUssRUFBRSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztLQUN4RyxDQUFDLENBQUMsQ0FBQyxDQUNULENBQUMsQ0FBQSJ9
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.174.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.147.0",
17
- "@effect-app/schema": "0.198.0",
18
- "@effect-app/fluent-extensions": "0.140.0"
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.68.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": "^0.22.0"
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 schemaJson
48
+ * @tsplus fluent effect/platform/Http/Client responseWithSchemaBody
49
49
  */
50
- export const schemaJson = <
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(client, (_) => Effect.flatMap(responseWithJsonBody(_), S.decodeUnknown(schema)))
65
- }
66
-
67
- /**
68
- * @tsplus fluent effect/platform/Http/Client schemaJsonUnsafe
69
- */
70
- export const schemaJsonUnsafe = <
71
- R,
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