effect-app 2.47.2 → 2.49.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 +12 -0
- package/dist/client/apiClientFactory.d.ts +1 -1
- package/dist/client/req.d.ts +14 -18
- package/dist/client/req.d.ts.map +1 -1
- package/dist/client/req.js +1 -1
- package/package.json +1 -1
- package/src/client/req.ts +25 -29
- package/test/dist/rpc.test.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -44,7 +44,7 @@ declare const ApiClientFactory_base: (abstract new (service: (requestLevelLayers
|
|
|
44
44
|
raw: import("./clientFor.js").RequestHandler<S.Schema.Type<Omit<M, "meta">[K]["success"]>, S.Schema.Type<Omit<M, "meta">[K]["failure"]>, never, Omit<M, "meta">[K]>;
|
|
45
45
|
} : import("./clientFor.js").RequestHandlerWithInput<Omit<S.Schema.Type<Omit<M, "meta">[K]>, typeof S.symbolSerializable | typeof S.symbolWithResult | "_tag" | typeof import("effect/Request").RequestTypeId>, S.Schema.Type<Omit<M, "meta">[K]["success"]>, S.Schema.Type<Omit<M, "meta">[K]["failure"]>, never, Omit<M, "meta">[K]> & {
|
|
46
46
|
raw: import("./clientFor.js").RequestHandlerWithInput<Omit<S.Schema.Type<Omit<M, "meta">[K]>, typeof S.symbolSerializable | typeof S.symbolWithResult | "_tag" | typeof import("effect/Request").RequestTypeId>, S.Schema.Encoded<Omit<M, "meta">[K]["success"]>, S.Schema.Type<Omit<M, "meta">[K]["failure"]>, never, Omit<M, "meta">[K]>;
|
|
47
|
-
}; } : never>) => X) => X extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E,
|
|
47
|
+
}; } : never>) => X) => X extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, R | ApiClientFactory> : Effect.Effect<X, never, ApiClientFactory>;
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
50
50
|
* Used to create clients for resource modules.
|
package/dist/client/req.d.ts
CHANGED
|
@@ -4,15 +4,13 @@ import { type Values } from "../utils.js";
|
|
|
4
4
|
* Middleware is inactivate by default, the Key is optional in route context, and the service is optionally provided as Effect Context.
|
|
5
5
|
* Unless explicitly configured as `true`.
|
|
6
6
|
*/
|
|
7
|
-
export type RPCContextMap<
|
|
8
|
-
key: Key;
|
|
7
|
+
export type RPCContextMap<Service, E> = {
|
|
9
8
|
service: Service;
|
|
10
9
|
error: E;
|
|
11
10
|
contextActivation: true;
|
|
12
11
|
};
|
|
13
12
|
export declare namespace RPCContextMap {
|
|
14
|
-
type Custom<
|
|
15
|
-
key: Key;
|
|
13
|
+
type Custom<Service, E, Custom> = {
|
|
16
14
|
service: Service;
|
|
17
15
|
error: E;
|
|
18
16
|
contextActivation: Custom;
|
|
@@ -21,28 +19,26 @@ export declare namespace RPCContextMap {
|
|
|
21
19
|
* Middleware is active by default, and provides the Service at Key in route context, and the Service is provided as Effect Context.
|
|
22
20
|
* Unless explicitly omitted.
|
|
23
21
|
*/
|
|
24
|
-
type Inverted<
|
|
25
|
-
key: Key;
|
|
22
|
+
type Inverted<Service, E> = {
|
|
26
23
|
service: Service;
|
|
27
24
|
error: E;
|
|
28
25
|
contextActivation: false;
|
|
29
26
|
};
|
|
30
27
|
type Any = {
|
|
31
|
-
key: string;
|
|
32
28
|
service: any;
|
|
33
29
|
error: S.Schema.All;
|
|
34
30
|
contextActivation: any;
|
|
35
31
|
};
|
|
36
32
|
}
|
|
37
|
-
export type GetEffectContext<
|
|
38
|
-
[key in keyof
|
|
33
|
+
export type GetEffectContext<RequestContextMap extends Record<string, RPCContextMap.Any>, T> = Values<{
|
|
34
|
+
[key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends true ? never : key extends keyof T ? T[key] extends true ? never : key : key]: RequestContextMap[key]["service"];
|
|
39
35
|
} & {
|
|
40
|
-
[key in keyof
|
|
36
|
+
[key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends false ? never : key extends keyof T ? T[key] extends true ? key : never : never]: RequestContextMap[key]["service"];
|
|
41
37
|
}>;
|
|
42
|
-
export type GetEffectError<
|
|
43
|
-
[key in keyof
|
|
38
|
+
export type GetEffectError<RequestContextMap extends Record<string, RPCContextMap.Any>, T> = Values<{
|
|
39
|
+
[key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends true ? never : key extends keyof T ? T[key] extends true ? never : key : key]: RequestContextMap[key]["error"];
|
|
44
40
|
} & {
|
|
45
|
-
[key in keyof
|
|
41
|
+
[key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends false ? never : key extends keyof T ? T[key] extends true ? key : never : never]: RequestContextMap[key]["error"];
|
|
46
42
|
}>;
|
|
47
43
|
type JoinSchema<T> = T extends ReadonlyArray<S.Schema.All> ? S.Union<T> : typeof S.Never;
|
|
48
44
|
/**
|
|
@@ -60,14 +56,14 @@ type JoinSchema<T> = T extends ReadonlyArray<S.Schema.All> ? S.Union<T> : typeof
|
|
|
60
56
|
* ```
|
|
61
57
|
*/
|
|
62
58
|
type SchemaOrFields<T> = T extends S.Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never;
|
|
63
|
-
export declare const makeRpcClient: <RequestConfig extends object,
|
|
59
|
+
export declare const makeRpcClient: <RequestConfig extends object, RequestContextMap extends Record<string, RPCContextMap.Any>, GeneralErrors extends S.Schema.All = never>(errors: { [K in keyof RequestContextMap]: RequestContextMap[K]["error"]; }, generalErrors?: GeneralErrors) => {
|
|
64
60
|
TaggedRequest: <Self>() => {
|
|
65
61
|
<Tag extends string, Payload extends S.Struct.Fields, C extends {
|
|
66
62
|
success: S.Schema.Any | S.Struct.Fields;
|
|
67
63
|
failure: S.Schema.Any | S.Struct.Fields;
|
|
68
64
|
}>(tag: Tag, fields: Payload, config: RequestConfig & C): S.TaggedRequestClass<Self, Tag, {
|
|
69
65
|
readonly _tag: S.tag<Tag>;
|
|
70
|
-
} & Payload, SchemaOrFields<(typeof config)["success"]>, JoinSchema<[SchemaOrFields<(typeof config)["failure"]> | GetEffectError<
|
|
66
|
+
} & Payload, SchemaOrFields<(typeof config)["success"]>, JoinSchema<[SchemaOrFields<(typeof config)["failure"]> | GetEffectError<RequestContextMap, C> | GeneralErrors]>> & {
|
|
71
67
|
config: Omit<C, "success" | "failure">;
|
|
72
68
|
};
|
|
73
69
|
<Tag extends string, Payload_1 extends S.Struct.Fields, C_1 extends Pick<{
|
|
@@ -75,7 +71,7 @@ export declare const makeRpcClient: <RequestConfig extends object, CTXMap extend
|
|
|
75
71
|
failure: S.Schema.Any | S.Struct.Fields;
|
|
76
72
|
}, "success">>(tag: Tag, fields: Payload_1, config: RequestConfig & C_1): S.TaggedRequestClass<Self, Tag, {
|
|
77
73
|
readonly _tag: S.tag<Tag>;
|
|
78
|
-
} & Payload_1, SchemaOrFields<(typeof config)["success"]>, JoinSchema<[GetEffectError<
|
|
74
|
+
} & Payload_1, SchemaOrFields<(typeof config)["success"]>, JoinSchema<[GetEffectError<RequestContextMap, C_1> | GeneralErrors]>> & {
|
|
79
75
|
config: Omit<C_1, "success" | "failure">;
|
|
80
76
|
};
|
|
81
77
|
<Tag extends string, Payload_2 extends S.Struct.Fields, C_2 extends Pick<{
|
|
@@ -83,12 +79,12 @@ export declare const makeRpcClient: <RequestConfig extends object, CTXMap extend
|
|
|
83
79
|
failure: S.Schema.Any | S.Struct.Fields;
|
|
84
80
|
}, "failure">>(tag: Tag, fields: Payload_2, config: RequestConfig & C_2): S.TaggedRequestClass<Self, Tag, {
|
|
85
81
|
readonly _tag: S.tag<Tag>;
|
|
86
|
-
} & Payload_2, typeof S.Void, JoinSchema<[SchemaOrFields<(typeof config)["failure"]> | GetEffectError<
|
|
82
|
+
} & Payload_2, typeof S.Void, JoinSchema<[SchemaOrFields<(typeof config)["failure"]> | GetEffectError<RequestContextMap, C_2> | GeneralErrors]>> & {
|
|
87
83
|
config: Omit<C_2, "success" | "failure">;
|
|
88
84
|
};
|
|
89
85
|
<Tag extends string, Payload_3 extends S.Struct.Fields, C_3 extends Record<string, any>>(tag: Tag, fields: Payload_3, config: C_3 & RequestConfig): S.TaggedRequestClass<Self, Tag, {
|
|
90
86
|
readonly _tag: S.tag<Tag>;
|
|
91
|
-
} & Payload_3, typeof S.Void, JoinSchema<[GetEffectError<
|
|
87
|
+
} & Payload_3, typeof S.Void, JoinSchema<[GetEffectError<RequestContextMap, C_3> | GeneralErrors]>> & {
|
|
92
88
|
config: Omit<C_3, "success" | "failure">;
|
|
93
89
|
};
|
|
94
90
|
<Tag extends string, Payload_4 extends S.Struct.Fields>(tag: Tag, fields: Payload_4): S.TaggedRequestClass<Self, Tag, {
|
package/dist/client/req.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"req.d.ts","sourceRoot":"","sources":["../../src/client/req.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"req.d.ts","sourceRoot":"","sources":["../../src/client/req.ts"],"names":[],"mappings":"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"}
|
package/dist/client/req.js
CHANGED
|
@@ -35,4 +35,4 @@ export const makeRpcClient = (errors, generalErrors) => {
|
|
|
35
35
|
TaggedRequest
|
|
36
36
|
};
|
|
37
37
|
};
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9yZXEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHdEQUF3RDtBQUN4RCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBa0Z0QyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQU0sRUFBRSxDQUFhLEVBQUUsRUFBRSxDQUN0QyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0FBa0IzRzs7R0FFRztBQUNILE1BQU0sU0FBUyxHQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBRTVHLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUszQixNQUF5RSxFQUN6RSxhQUE2QixFQUM3QixFQUFFO0lBT0YsU0FBUyxhQUFhO1FBdUVwQiwrREFBK0Q7UUFDL0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMxQyxPQUFPLENBQUMsQ0FDTixHQUFRLEVBQ1IsTUFBYyxFQUNkLE1BQVUsRUFDVixFQUFFO1lBQ0YsMkVBQTJFO1lBQzNFLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZDLE9BQU8sRUFBRSxNQUFNO2dCQUNmLDhDQUE4QztnQkFDOUMsT0FBTyxFQUFFLEtBQUssQ0FDWixNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDcEcsQ0FBQyxHQUFHLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQ2pEO2dCQUNELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTztvQkFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzt3QkFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU87d0JBQ3RFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7b0JBQzVCLENBQUMsQ0FBQyxTQUFTO2FBQ2QsQ0FBQyxDQUFBO1lBQ0YsT0FBTyxLQUFNLFNBQVMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBUztnQkFDMUQsWUFBWSxPQUFZLEVBQUUsb0JBQXlCLElBQUk7b0JBQ3JELDZEQUE2RDtvQkFDN0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO2dCQUNuQyxDQUFDO2FBQ0YsQ0FBQTtRQUNILENBQUMsQ0FBUSxDQUFBO0lBQ1gsQ0FBQztJQUVELE9BQU87UUFDTCxhQUFhO0tBQ2QsQ0FBQTtBQUNILENBQUMsQ0FBQSJ9
|
package/package.json
CHANGED
package/src/client/req.ts
CHANGED
|
@@ -9,16 +9,14 @@ import { type Values } from "../utils.js"
|
|
|
9
9
|
* Middleware is inactivate by default, the Key is optional in route context, and the service is optionally provided as Effect Context.
|
|
10
10
|
* Unless explicitly configured as `true`.
|
|
11
11
|
*/
|
|
12
|
-
export type RPCContextMap<
|
|
13
|
-
key: Key
|
|
12
|
+
export type RPCContextMap<Service, E> = {
|
|
14
13
|
service: Service
|
|
15
14
|
error: E
|
|
16
15
|
contextActivation: true
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
export declare namespace RPCContextMap {
|
|
20
|
-
export type Custom<
|
|
21
|
-
key: Key
|
|
19
|
+
export type Custom<Service, E, Custom> = {
|
|
22
20
|
service: Service
|
|
23
21
|
error: E
|
|
24
22
|
contextActivation: Custom
|
|
@@ -28,60 +26,58 @@ export declare namespace RPCContextMap {
|
|
|
28
26
|
* Middleware is active by default, and provides the Service at Key in route context, and the Service is provided as Effect Context.
|
|
29
27
|
* Unless explicitly omitted.
|
|
30
28
|
*/
|
|
31
|
-
export type Inverted<
|
|
32
|
-
key: Key
|
|
29
|
+
export type Inverted<Service, E> = {
|
|
33
30
|
service: Service
|
|
34
31
|
error: E
|
|
35
32
|
contextActivation: false
|
|
36
33
|
}
|
|
37
34
|
|
|
38
35
|
export type Any = {
|
|
39
|
-
key: string
|
|
40
36
|
service: any
|
|
41
37
|
error: S.Schema.All
|
|
42
38
|
contextActivation: any
|
|
43
39
|
}
|
|
44
40
|
}
|
|
45
41
|
|
|
46
|
-
export type GetEffectContext<
|
|
42
|
+
export type GetEffectContext<RequestContextMap extends Record<string, RPCContextMap.Any>, T> = Values<
|
|
47
43
|
// inverted: contextActivation is false => remove if explicitly set to true (like allowAnonymous: true disables auth and auth service and related errors)
|
|
48
44
|
& {
|
|
49
45
|
[
|
|
50
|
-
key in keyof
|
|
51
|
-
: key extends keyof T ? T[key] extends true ? never :
|
|
52
|
-
:
|
|
46
|
+
key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends true ? never
|
|
47
|
+
: key extends keyof T ? T[key] extends true ? never : key
|
|
48
|
+
: key
|
|
53
49
|
]: // TODO: or as an Optional available?
|
|
54
|
-
|
|
50
|
+
RequestContextMap[key]["service"]
|
|
55
51
|
}
|
|
56
52
|
// normal: contextActivation is true => add if explicitly set to true
|
|
57
53
|
& {
|
|
58
54
|
[
|
|
59
|
-
key in keyof
|
|
60
|
-
: key extends keyof T ? T[key] extends true ?
|
|
55
|
+
key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends false ? never
|
|
56
|
+
: key extends keyof T ? T[key] extends true ? key : never
|
|
61
57
|
: never
|
|
62
58
|
]: // TODO: or as an Optional available?
|
|
63
|
-
|
|
59
|
+
RequestContextMap[key]["service"]
|
|
64
60
|
}
|
|
65
61
|
>
|
|
66
62
|
|
|
67
|
-
export type GetEffectError<
|
|
63
|
+
export type GetEffectError<RequestContextMap extends Record<string, RPCContextMap.Any>, T> = Values<
|
|
68
64
|
// inverted: contextActivation is false => remove if explicitly set to true (like allowAnonymous: true disables auth and auth service and related errors)
|
|
69
65
|
& {
|
|
70
66
|
[
|
|
71
|
-
key in keyof
|
|
72
|
-
: key extends keyof T ? T[key] extends true ? never :
|
|
73
|
-
:
|
|
67
|
+
key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends true ? never
|
|
68
|
+
: key extends keyof T ? T[key] extends true ? never : key
|
|
69
|
+
: key
|
|
74
70
|
]: // TODO: or as an Optional available?
|
|
75
|
-
|
|
71
|
+
RequestContextMap[key]["error"]
|
|
76
72
|
}
|
|
77
73
|
// normal: contextActivation is true => add if explicitly set to true
|
|
78
74
|
& {
|
|
79
75
|
[
|
|
80
|
-
key in keyof
|
|
81
|
-
: key extends keyof T ? T[key] extends true ?
|
|
76
|
+
key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends false ? never
|
|
77
|
+
: key extends keyof T ? T[key] extends true ? key : never
|
|
82
78
|
: never
|
|
83
79
|
]: // TODO: or as an Optional available?
|
|
84
|
-
|
|
80
|
+
RequestContextMap[key]["error"]
|
|
85
81
|
}
|
|
86
82
|
>
|
|
87
83
|
|
|
@@ -114,10 +110,10 @@ const ForceVoid: S.Schema<void> = S.transform(S.Any, S.Void, { decode: () => voi
|
|
|
114
110
|
|
|
115
111
|
export const makeRpcClient = <
|
|
116
112
|
RequestConfig extends object,
|
|
117
|
-
|
|
113
|
+
RequestContextMap extends Record<string, RPCContextMap.Any>,
|
|
118
114
|
GeneralErrors extends S.Schema.All = never
|
|
119
115
|
>(
|
|
120
|
-
errors: { [K in keyof
|
|
116
|
+
errors: { [K in keyof RequestContextMap]: RequestContextMap[K]["error"] },
|
|
121
117
|
generalErrors?: GeneralErrors
|
|
122
118
|
) => {
|
|
123
119
|
// Long way around Context/C extends etc to support actual jsdoc from passed in RequestConfig etc... (??)
|
|
@@ -138,7 +134,7 @@ export const makeRpcClient = <
|
|
|
138
134
|
{ readonly _tag: S.tag<Tag> } & Payload,
|
|
139
135
|
SchemaOrFields<typeof config["success"]>,
|
|
140
136
|
JoinSchema<
|
|
141
|
-
[SchemaOrFields<typeof config["failure"]> | GetEffectError<
|
|
137
|
+
[SchemaOrFields<typeof config["failure"]> | GetEffectError<RequestContextMap, C> | GeneralErrors]
|
|
142
138
|
>
|
|
143
139
|
>
|
|
144
140
|
& { config: Omit<C, "success" | "failure"> }
|
|
@@ -152,7 +148,7 @@ export const makeRpcClient = <
|
|
|
152
148
|
Tag,
|
|
153
149
|
{ readonly _tag: S.tag<Tag> } & Payload,
|
|
154
150
|
SchemaOrFields<typeof config["success"]>,
|
|
155
|
-
JoinSchema<[GetEffectError<
|
|
151
|
+
JoinSchema<[GetEffectError<RequestContextMap, C> | GeneralErrors]>
|
|
156
152
|
>
|
|
157
153
|
& { config: Omit<C, "success" | "failure"> }
|
|
158
154
|
<Tag extends string, Payload extends S.Struct.Fields, C extends Pick<Context, "failure">>(
|
|
@@ -166,7 +162,7 @@ export const makeRpcClient = <
|
|
|
166
162
|
{ readonly _tag: S.tag<Tag> } & Payload,
|
|
167
163
|
typeof S.Void,
|
|
168
164
|
JoinSchema<
|
|
169
|
-
[SchemaOrFields<typeof config["failure"]> | GetEffectError<
|
|
165
|
+
[SchemaOrFields<typeof config["failure"]> | GetEffectError<RequestContextMap, C> | GeneralErrors]
|
|
170
166
|
>
|
|
171
167
|
>
|
|
172
168
|
& { config: Omit<C, "success" | "failure"> }
|
|
@@ -180,7 +176,7 @@ export const makeRpcClient = <
|
|
|
180
176
|
Tag,
|
|
181
177
|
{ readonly _tag: S.tag<Tag> } & Payload,
|
|
182
178
|
typeof S.Void,
|
|
183
|
-
JoinSchema<[GetEffectError<
|
|
179
|
+
JoinSchema<[GetEffectError<RequestContextMap, C> | GeneralErrors]>
|
|
184
180
|
>
|
|
185
181
|
& { config: Omit<C, "success" | "failure"> }
|
|
186
182
|
<Tag extends string, Payload extends S.Struct.Fields>(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.test.d.ts","sourceRoot":"","sources":["../rpc.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA
|
|
1
|
+
{"version":3,"file":"rpc.test.d.ts","sourceRoot":"","sources":["../rpc.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAInC,qBAAa,KAAM,SAAQ,UAQzB;CAAG"}
|