effect-app 2.8.0 → 2.8.2
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/_cjs/client/req.cjs +1 -1
- package/_cjs/client/req.cjs.map +1 -1
- package/dist/client/req.d.ts +5 -5
- package/dist/client/req.d.ts.map +1 -1
- package/dist/client/req.js +2 -2
- package/package.json +1 -1
- package/src/client/req.ts +19 -6
- package/test/dist/rpc.test.d.ts.map +1 -0
- package/test/rpc.test.ts +17 -0
package/CHANGELOG.md
CHANGED
package/_cjs/client/req.cjs
CHANGED
|
@@ -19,7 +19,7 @@ const makeRpcClient = (errors, generalErrors) => {
|
|
|
19
19
|
return (tag, fields, config) => {
|
|
20
20
|
const req = _lib.S.TaggedRequest()(tag, {
|
|
21
21
|
payload: fields,
|
|
22
|
-
failure: merge(config?.failure, [...errorSchemas, generalErrors].filter(Boolean)),
|
|
22
|
+
failure: merge(config?.failure ? _lib.S.isSchema(config.failure) ? config.failure : _lib.S.Struct(config.failure) : undefined, [...errorSchemas, generalErrors].filter(Boolean)),
|
|
23
23
|
success: config?.success ? _lib.S.isSchema(config.success) ? config.success : _lib.S.Struct(config.success) : _lib.S.Void
|
|
24
24
|
});
|
|
25
25
|
return class extends Object.assign(req, {
|
package/_cjs/client/req.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"req.cjs","names":["_lib","require","merge","a","b","undefined","length","S","Union","Never","makeRpcClient","errors","generalErrors","TaggedRequest","errorSchemas","Object","values","tag","fields","config","req","payload","failure","
|
|
1
|
+
{"version":3,"file":"req.cjs","names":["_lib","require","merge","a","b","undefined","length","S","Union","Never","makeRpcClient","errors","generalErrors","TaggedRequest","errorSchemas","Object","values","tag","fields","config","req","payload","failure","isSchema","Struct","filter","Boolean","success","Void","assign","constructor","exports"],"sources":["../../src/client/req.ts"],"sourcesContent":[null],"mappings":";;;;;;AAIA,IAAAA,IAAA,GAAAC,OAAA;AAJA;AACA;AACA;;AAyEA,MAAMC,KAAK,GAAGA,CAACC,CAAM,EAAEC,CAAa;AAClC;AACAD,CAAC,KAAKE,SAAS,IAAID,CAAC,CAACE,MAAM,GAAGC,MAAC,CAACC,KAAK,CAACL,CAAC,EAAE,GAAGC,CAAC,CAAC,GAAGD,CAAC,KAAKE,SAAS,GAAGF,CAAC,GAAGC,CAAC,CAACE,MAAM,GAAGC,MAAC,CAACC,KAAK,CAAC,GAAGJ,CAAC,CAAC,GAAGG,MAAC,CAACE,KAAK;AAIpG,MAAMC,aAAa,GAAGA,CAK3BC,MAA6C,EAC7CC,aAA6B,KAC3B;EAGF,SAASC,aAAaA,CAAA;IA0EpB;IACA,MAAMC,YAAY,GAAGC,MAAM,CAACC,MAAM,CAACL,MAAM,CAAC;IAC1C,OAAQ,CACNM,GAAQ,EACRC,MAAc,EACdC,MAAU,KACR;MACF,MAAMC,GAAG,GAAGb,MAAC,CAACM,aAAa,EAAQ,CAACI,GAAG,EAAE;QACvCI,OAAO,EAAEH,MAAM;QACfI,OAAO,EAAEpB,KAAK,CACZiB,MAAM,EAAEG,OAAO,GAAGf,MAAC,CAACgB,QAAQ,CAACJ,MAAM,CAACG,OAAO,CAAC,GAAGH,MAAM,CAACG,OAAO,GAAGf,MAAC,CAACiB,MAAM,CAACL,MAAM,CAACG,OAAO,CAAC,GAAGjB,SAAS,EACpG,CAAC,GAAGS,YAAY,EAAEF,aAAa,CAAC,CAACa,MAAM,CAACC,OAAO,CAAC,CACjD;QACDC,OAAO,EAAER,MAAM,EAAEQ,OAAO,GAAGpB,MAAC,CAACgB,QAAQ,CAACJ,MAAM,CAACQ,OAAO,CAAC,GAAGR,MAAM,CAACQ,OAAO,GAAGpB,MAAC,CAACiB,MAAM,CAACL,MAAM,CAACQ,OAAO,CAAC,GAAGpB,MAAC,CAACqB;OACvG,CAAC;MACF,OAAO,cAAeb,MAAM,CAACc,MAAM,CAACT,GAAG,EAAE;QAAED;MAAM,CAAE,CAAS;QAC1DW,YAAY3B,CAAM,EAAEC,CAAA,GAAS,IAAI;UAC/B;UACA,KAAK,CAACD,CAAC,EAAEC,CAAC,CAAC;QACb;OACD;IACH,CAAC;EACH;EAEA,OAAO;IACLS;GACD;AACH,CAAC;AAAAkB,OAAA,CAAArB,aAAA,GAAAA,aAAA","ignoreList":[]}
|
package/dist/client/req.d.ts
CHANGED
|
@@ -32,24 +32,24 @@ export declare const makeRpcClient: <RequestConfig extends object, CTXMap extend
|
|
|
32
32
|
TaggedRequest: <Self>() => {
|
|
33
33
|
<Tag extends string, Payload extends S.Struct.Fields, C extends {
|
|
34
34
|
success: S.Schema.Any | S.Struct.Fields;
|
|
35
|
-
failure: S.Schema.Any;
|
|
35
|
+
failure: S.Schema.Any | S.Struct.Fields;
|
|
36
36
|
}>(tag: Tag, fields: Payload, config: RequestConfig & C): S.TaggedRequestClass<Self, Tag, {
|
|
37
37
|
readonly _tag: S.tag<Tag>;
|
|
38
|
-
} & Payload, SchemaOrFields<(typeof config)["success"]>, JoinSchema<ExcludeFromTuple<[(typeof config)["failure"] | GetEffectError<CTXMap, C> | GeneralErrors], never>>> & {
|
|
38
|
+
} & Payload, SchemaOrFields<(typeof config)["success"]>, JoinSchema<ExcludeFromTuple<[SchemaOrFields<(typeof config)["failure"]> | GetEffectError<CTXMap, C> | GeneralErrors], never>>> & {
|
|
39
39
|
config: Omit<C, "success" | "failure">;
|
|
40
40
|
};
|
|
41
41
|
<Tag extends string, Payload_1 extends S.Struct.Fields, C_1 extends {
|
|
42
|
-
success: S.Schema.Any;
|
|
42
|
+
success: S.Schema.Any | S.Struct.Fields;
|
|
43
43
|
}>(tag: Tag, fields: Payload_1, config: RequestConfig & C_1): S.TaggedRequestClass<Self, Tag, {
|
|
44
44
|
readonly _tag: S.tag<Tag>;
|
|
45
45
|
} & Payload_1, SchemaOrFields<(typeof config)["success"]>, JoinSchema<ExcludeFromTuple<[GetEffectError<CTXMap, C_1> | GeneralErrors], never>>> & {
|
|
46
46
|
config: Omit<C_1, "success" | "failure">;
|
|
47
47
|
};
|
|
48
48
|
<Tag extends string, Payload_2 extends S.Struct.Fields, C_2 extends {
|
|
49
|
-
failure: S.Schema.Any;
|
|
49
|
+
failure: S.Schema.Any | S.Struct.Fields;
|
|
50
50
|
}>(tag: Tag, fields: Payload_2, config: RequestConfig & C_2): S.TaggedRequestClass<Self, Tag, {
|
|
51
51
|
readonly _tag: S.tag<Tag>;
|
|
52
|
-
} & Payload_2, typeof S.Void, JoinSchema<ExcludeFromTuple<[(typeof config)["failure"] | GetEffectError<CTXMap, C_2> | GeneralErrors], never>>> & {
|
|
52
|
+
} & Payload_2, typeof S.Void, JoinSchema<ExcludeFromTuple<[SchemaOrFields<(typeof config)["failure"]> | GetEffectError<CTXMap, C_2> | GeneralErrors], never>>> & {
|
|
53
53
|
config: Omit<C_2, "success" | "failure">;
|
|
54
54
|
};
|
|
55
55
|
<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, {
|
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":"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
|
|
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
|
@@ -12,7 +12,7 @@ export const makeRpcClient = (errors, generalErrors) => {
|
|
|
12
12
|
return ((tag, fields, config) => {
|
|
13
13
|
const req = S.TaggedRequest()(tag, {
|
|
14
14
|
payload: fields,
|
|
15
|
-
failure: merge(config?.failure, [...errorSchemas, generalErrors].filter(Boolean)),
|
|
15
|
+
failure: merge(config?.failure ? S.isSchema(config.failure) ? config.failure : S.Struct(config.failure) : undefined, [...errorSchemas, generalErrors].filter(Boolean)),
|
|
16
16
|
success: config?.success ? S.isSchema(config.success) ? config.success : S.Struct(config.success) : S.Void
|
|
17
17
|
});
|
|
18
18
|
return class extends Object.assign(req, { config }) {
|
|
@@ -27,4 +27,4 @@ export const makeRpcClient = (errors, generalErrors) => {
|
|
|
27
27
|
TaggedRequest
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9yZXEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHdEQUF3RDtBQUN4RCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBdUV0QyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQU0sRUFBRSxDQUFhLEVBQUUsRUFBRTtBQUN0QyxpRUFBaUU7QUFDakUsQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtBQUkzRyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FLM0IsTUFBNkMsRUFDN0MsYUFBNkIsRUFDN0IsRUFBRTtJQUdGLFNBQVMsYUFBYTtRQTBFcEIsK0RBQStEO1FBQy9ELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDMUMsT0FBTyxDQUFDLENBQ04sR0FBUSxFQUNSLE1BQWMsRUFDZCxNQUFVLEVBQ1YsRUFBRTtZQUNGLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZDLE9BQU8sRUFBRSxNQUFNO2dCQUNmLE9BQU8sRUFBRSxLQUFLLENBQ1osTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQ3BHLENBQUMsR0FBRyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUNqRDtnQkFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTthQUMzRyxDQUFDLENBQUE7WUFDRixPQUFPLEtBQU0sU0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFTO2dCQUMxRCxZQUFZLENBQU0sRUFBRSxJQUFTLElBQUk7b0JBQy9CLDZEQUE2RDtvQkFDN0QsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtnQkFDYixDQUFDO2FBQ0YsQ0FBQTtRQUNILENBQUMsQ0FBUSxDQUFBO0lBQ1gsQ0FBQztJQUVELE9BQU87UUFDTCxhQUFhO0tBQ2QsQ0FBQTtBQUNILENBQUMsQ0FBQSJ9
|
package/package.json
CHANGED
package/src/client/req.ts
CHANGED
|
@@ -88,7 +88,7 @@ export const makeRpcClient = <
|
|
|
88
88
|
generalErrors?: GeneralErrors
|
|
89
89
|
) => {
|
|
90
90
|
// Long way around Context/C extends etc to support actual jsdoc from passed in RequestConfig etc...
|
|
91
|
-
type Context = { success: S.Schema.Any | S.Struct.Fields; failure: S.Schema.Any }
|
|
91
|
+
type Context = { success: S.Schema.Any | S.Struct.Fields; failure: S.Schema.Any | S.Struct.Fields }
|
|
92
92
|
function TaggedRequest<Self>(): {
|
|
93
93
|
<Tag extends string, Payload extends S.Struct.Fields, C extends Context>(
|
|
94
94
|
tag: Tag,
|
|
@@ -100,10 +100,15 @@ export const makeRpcClient = <
|
|
|
100
100
|
Tag,
|
|
101
101
|
{ readonly _tag: S.tag<Tag> } & Payload,
|
|
102
102
|
SchemaOrFields<typeof config["success"]>,
|
|
103
|
-
JoinSchema<
|
|
103
|
+
JoinSchema<
|
|
104
|
+
ExcludeFromTuple<
|
|
105
|
+
[SchemaOrFields<typeof config["failure"]> | GetEffectError<CTXMap, C> | GeneralErrors],
|
|
106
|
+
never
|
|
107
|
+
>
|
|
108
|
+
>
|
|
104
109
|
>
|
|
105
110
|
& { config: Omit<C, "success" | "failure"> }
|
|
106
|
-
<Tag extends string, Payload extends S.Struct.Fields, C extends { success: S.Schema.Any }>(
|
|
111
|
+
<Tag extends string, Payload extends S.Struct.Fields, C extends { success: S.Schema.Any | S.Struct.Fields }>(
|
|
107
112
|
tag: Tag,
|
|
108
113
|
fields: Payload,
|
|
109
114
|
config: RequestConfig & C
|
|
@@ -116,7 +121,7 @@ export const makeRpcClient = <
|
|
|
116
121
|
JoinSchema<ExcludeFromTuple<[GetEffectError<CTXMap, C> | GeneralErrors], never>>
|
|
117
122
|
>
|
|
118
123
|
& { config: Omit<C, "success" | "failure"> }
|
|
119
|
-
<Tag extends string, Payload extends S.Struct.Fields, C extends { failure: S.Schema.Any }>(
|
|
124
|
+
<Tag extends string, Payload extends S.Struct.Fields, C extends { failure: S.Schema.Any | S.Struct.Fields }>(
|
|
120
125
|
tag: Tag,
|
|
121
126
|
fields: Payload,
|
|
122
127
|
config: RequestConfig & C
|
|
@@ -126,7 +131,12 @@ export const makeRpcClient = <
|
|
|
126
131
|
Tag,
|
|
127
132
|
{ readonly _tag: S.tag<Tag> } & Payload,
|
|
128
133
|
typeof S.Void,
|
|
129
|
-
JoinSchema<
|
|
134
|
+
JoinSchema<
|
|
135
|
+
ExcludeFromTuple<
|
|
136
|
+
[SchemaOrFields<typeof config["failure"]> | GetEffectError<CTXMap, C> | GeneralErrors],
|
|
137
|
+
never
|
|
138
|
+
>
|
|
139
|
+
>
|
|
130
140
|
>
|
|
131
141
|
& { config: Omit<C, "success" | "failure"> }
|
|
132
142
|
<Tag extends string, Payload extends S.Struct.Fields, C extends Record<string, any>>(
|
|
@@ -162,7 +172,10 @@ export const makeRpcClient = <
|
|
|
162
172
|
) => {
|
|
163
173
|
const req = S.TaggedRequest<Self>()(tag, {
|
|
164
174
|
payload: fields,
|
|
165
|
-
failure: merge(
|
|
175
|
+
failure: merge(
|
|
176
|
+
config?.failure ? S.isSchema(config.failure) ? config.failure : S.Struct(config.failure) : undefined,
|
|
177
|
+
[...errorSchemas, generalErrors].filter(Boolean)
|
|
178
|
+
),
|
|
166
179
|
success: config?.success ? S.isSchema(config.success) ? config.success : S.Struct(config.success) : S.Void
|
|
167
180
|
})
|
|
168
181
|
return class extends (Object.assign(req, { config }) as any) {
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
package/test/rpc.test.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { makeRpcClient } from "../src/client/req.js"
|
|
2
|
+
import { S } from "../src/index.js"
|
|
3
|
+
|
|
4
|
+
const { TaggedRequest } = makeRpcClient({})
|
|
5
|
+
|
|
6
|
+
export class Stats extends TaggedRequest<Stats>()("Stats", {}, {
|
|
7
|
+
allowedRoles: ["manager"],
|
|
8
|
+
success: {
|
|
9
|
+
usersActive24Hours: S.Number,
|
|
10
|
+
usersActiveLastWeek: S.Number,
|
|
11
|
+
newUsersLast24Hours: S.Number,
|
|
12
|
+
newUsersLastWeek: S.Number
|
|
13
|
+
}
|
|
14
|
+
}) {}
|
|
15
|
+
|
|
16
|
+
declare const stats: typeof Stats.success.Type
|
|
17
|
+
console.log(stats.usersActiveLastWeek)
|