effect-app 4.0.0-beta.29 → 4.0.0-beta.30
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,9 @@
|
|
|
1
1
|
import { type GetContextConfig, type GetEffectError, type RequestContextMapTagAny } from "../rpc/RpcContextMap.js";
|
|
2
2
|
import * as S from "../Schema.js";
|
|
3
|
+
/**
|
|
4
|
+
* Whatever the input, we will only decode or encode to void
|
|
5
|
+
*/
|
|
6
|
+
export declare const ForceVoid: S.decodeTo<S.Any, S.Any, never, never>;
|
|
3
7
|
type SchemaOrFields<T> = T extends S.Top ? T : T extends S.Struct.Fields ? S.Struct<T> : S.Void;
|
|
4
8
|
type TaggedRequestResult<Tag extends string, Payload extends S.Struct.Fields, Success extends S.Top, Error extends S.Top, Config = Record<string, never>> = S.TaggedStruct<Tag, Payload> & {
|
|
5
9
|
new (...args: any[]): any;
|
|
@@ -29,13 +33,13 @@ export declare const makeRpcClient: <RequestContextMap extends RequestContextMap
|
|
|
29
33
|
<Tag extends string, Payload_2 extends S.Struct.Fields, C_2 extends Pick<{
|
|
30
34
|
success: S.Top | S.Struct.Fields;
|
|
31
35
|
error: S.Top | S.Struct.Fields;
|
|
32
|
-
}, "error">>(tag: Tag, fields: Payload_2, config: GetContextConfig<RequestContextMap["config"]> & C_2): TaggedRequestResult<Tag, Payload_2,
|
|
36
|
+
}, "error">>(tag: Tag, fields: Payload_2, config: GetContextConfig<RequestContextMap["config"]> & C_2): TaggedRequestResult<Tag, Payload_2, typeof ForceVoid, C_2 extends {
|
|
33
37
|
error: infer E;
|
|
34
38
|
} ? [GeneralErrors] extends [never] ? SchemaOrFields<E> : S.Union<[SchemaOrFields<E>, GeneralErrors]> : [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], C_2> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], C_2>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], C_2>>, GeneralErrors]>, Omit<C_2, "success" | "error">>;
|
|
35
|
-
<Tag extends string, Payload_3 extends S.Struct.Fields, C_3 extends Record<string, any>>(tag: Tag, fields: Payload_3, config: C_3 & GetContextConfig<RequestContextMap["config"]>): TaggedRequestResult<Tag, Payload_3,
|
|
39
|
+
<Tag extends string, Payload_3 extends S.Struct.Fields, C_3 extends Record<string, any>>(tag: Tag, fields: Payload_3, config: C_3 & GetContextConfig<RequestContextMap["config"]>): TaggedRequestResult<Tag, Payload_3, typeof ForceVoid, C_3 extends {
|
|
36
40
|
error: infer E;
|
|
37
41
|
} ? [GeneralErrors] extends [never] ? SchemaOrFields<E> : S.Union<[SchemaOrFields<E>, GeneralErrors]> : [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], C_3> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], C_3>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], C_3>>, GeneralErrors]>, Omit<C_3, "success" | "error">>;
|
|
38
|
-
<Tag extends string, Payload_4 extends S.Struct.Fields>(tag: Tag, fields: Payload_4): TaggedRequestResult<Tag, Payload_4,
|
|
42
|
+
<Tag extends string, Payload_4 extends S.Struct.Fields>(tag: Tag, fields: Payload_4): TaggedRequestResult<Tag, Payload_4, typeof ForceVoid, [GeneralErrors] extends [never] ? GetEffectError<RequestContextMap["config"], {}> : [GeneralErrors] extends [never] ? SchemaOrFields<GetEffectError<RequestContextMap["config"], {}>> : S.Union<[SchemaOrFields<GetEffectError<RequestContextMap["config"], {}>>, GeneralErrors]>, Record<string, never>>;
|
|
39
43
|
};
|
|
40
44
|
};
|
|
41
45
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeClient.d.ts","sourceRoot":"","sources":["../../src/client/makeClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAClH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"makeClient.d.ts","sourceRoot":"","sources":["../../src/client/makeClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const merge = (a, b) => a !== undefined && b.length ? S.Union([a, ...b]) : a !==
|
|
|
5
5
|
/**
|
|
6
6
|
* Whatever the input, we will only decode or encode to void
|
|
7
7
|
*/
|
|
8
|
-
const ForceVoid = S.Any.pipe(S.decodeTo(S.
|
|
8
|
+
export const ForceVoid = S.Any.pipe(S.decodeTo(S.Any, SchemaTransformation.transform({ decode: () => void 0, encode: () => void 0 })));
|
|
9
9
|
export const makeRpcClient = (rcs, generalErrors) => {
|
|
10
10
|
function TaggedRequest() {
|
|
11
11
|
// TODO: filter errors based on config + take care of inversion
|
|
@@ -33,4 +33,4 @@ export const makeRpcClient = (rcs, generalErrors) => {
|
|
|
33
33
|
TaggedRequest
|
|
34
34
|
};
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvbWFrZUNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFN0MsT0FBTyxLQUFLLENBQUMsTUFBTSxjQUFjLENBQUE7QUFDakMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUVsQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQU0sRUFBRSxDQUFhLEVBQUUsRUFBRSxDQUN0QyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFFMUc7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQ2pDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUMxRyxDQUFBO0FBc0JELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUczQixHQUFzQixFQUFFLGFBQTZCLEVBQUUsRUFBRTtJQWN6RCxTQUFTLGFBQWE7UUEwQnBCLCtEQUErRDtRQUMvRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsRSxPQUFPLENBQUMsQ0FDTixHQUFRLEVBQ1IsTUFBYyxFQUNkLE1BQVUsRUFDVixFQUFFO1lBQ0YsNEZBQTRGO1lBQzVGLGlGQUFpRjtZQUNqRixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQ3pCLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUM1RixDQUFDLEdBQUcsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDakQsQ0FBQTtZQUNELE1BQU0sYUFBYSxHQUFHLE1BQU0sRUFBRSxPQUFPO2dCQUNuQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO29CQUMxQixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPO29CQUM3RCxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUM1QixDQUFDLENBQUMsU0FBUyxDQUFBO1lBRWIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN0RCxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtnQkFDMUIsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLEtBQUssRUFBRSxhQUFhO2dCQUNwQixNQUFNO2FBQ1AsQ0FBQyxDQUFBO1lBRUYsT0FBTyxZQUFZLENBQUE7UUFDckIsQ0FBQyxDQUFRLENBQUE7SUFDWCxDQUFDO0lBRUQsT0FBTztRQUNMLGFBQWE7S0FDZCxDQUFBO0FBQ0gsQ0FBQyxDQUFBIn0=
|
package/package.json
CHANGED
package/src/client/makeClient.ts
CHANGED
|
@@ -9,8 +9,8 @@ const merge = (a: any, b: Array<any>) =>
|
|
|
9
9
|
/**
|
|
10
10
|
* Whatever the input, we will only decode or encode to void
|
|
11
11
|
*/
|
|
12
|
-
const ForceVoid
|
|
13
|
-
S.decodeTo(S.
|
|
12
|
+
export const ForceVoid = S.Any.pipe(
|
|
13
|
+
S.decodeTo(S.Any, SchemaTransformation.transform({ decode: () => void 0 as void, encode: () => void 0 }))
|
|
14
14
|
)
|
|
15
15
|
|
|
16
16
|
type SchemaOrFields<T> = T extends S.Top ? T : T extends S.Struct.Fields ? S.Struct<T> : S.Void
|
|
@@ -65,16 +65,16 @@ export const makeRpcClient = <
|
|
|
65
65
|
tag: Tag,
|
|
66
66
|
fields: Payload,
|
|
67
67
|
config: RequestConfig & C
|
|
68
|
-
): TaggedRequestResult<Tag, Payload,
|
|
68
|
+
): TaggedRequestResult<Tag, Payload, typeof ForceVoid, ErrorResult<C>, Omit<C, "success" | "error">>
|
|
69
69
|
<Tag extends string, Payload extends S.Struct.Fields, C extends Record<string, any>>(
|
|
70
70
|
tag: Tag,
|
|
71
71
|
fields: Payload,
|
|
72
72
|
config: C & RequestConfig
|
|
73
|
-
): TaggedRequestResult<Tag, Payload,
|
|
73
|
+
): TaggedRequestResult<Tag, Payload, typeof ForceVoid, ErrorResult<C>, Omit<C, "success" | "error">>
|
|
74
74
|
<Tag extends string, Payload extends S.Struct.Fields>(
|
|
75
75
|
tag: Tag,
|
|
76
76
|
fields: Payload
|
|
77
|
-
): TaggedRequestResult<Tag, Payload,
|
|
77
|
+
): TaggedRequestResult<Tag, Payload, typeof ForceVoid, ErrorResult<{}>, Record<string, never>>
|
|
78
78
|
} {
|
|
79
79
|
// TODO: filter errors based on config + take care of inversion
|
|
80
80
|
const errorSchemas = Object.values(rcs.config).map((_) => _.error)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.test.d.ts","sourceRoot":"","sources":["../rpc.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rpc.test.d.ts","sourceRoot":"","sources":["../rpc.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAErF,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAE7C,qBAAa,iBAAkB,SAAQ,sBAIrC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIL,qBAAa,KAAM,SAAQ,UAQzB;CAAG"}
|
package/test/rpc.test.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { expect, test } from "vitest"
|
|
1
2
|
import { makeRpcClient, NotLoggedInError, UnauthorizedError } from "../src/client.js"
|
|
3
|
+
import { ForceVoid } from "../src/client/makeClient.js"
|
|
2
4
|
import { S } from "../src/index.js"
|
|
3
5
|
import { RpcContextMap } from "../src/rpc.js"
|
|
4
6
|
|
|
@@ -21,3 +23,11 @@ export class Stats extends TaggedRequest<Stats>()("Stats", {}, {
|
|
|
21
23
|
}) {}
|
|
22
24
|
|
|
23
25
|
declare const _stats: typeof Stats.success.Type
|
|
26
|
+
|
|
27
|
+
test("ForceVoid decodes and encodes as void", () => {
|
|
28
|
+
expect(S.decodeUnknownSync(ForceVoid)(undefined)).toBe(undefined)
|
|
29
|
+
expect(S.is(ForceVoid)(undefined)).toBe(true)
|
|
30
|
+
expect(S.decodeUnknownSync(ForceVoid)("test")).toBe(undefined)
|
|
31
|
+
expect(S.is(ForceVoid)("test")).toBe(true)
|
|
32
|
+
expect(S.encodeUnknownSync(ForceVoid)("test")).toBe(undefined)
|
|
33
|
+
})
|