@confect/react 1.0.2 → 2.0.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 +16 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -14
- package/dist/index.js.map +1 -1
- package/package.json +6 -7
- package/src/index.ts +17 -29
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @confect/react
|
|
2
2
|
|
|
3
|
+
## 2.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- 7861159: Replace Effect-native return types with Convex-equivalent return types in React hooks. `useQuery` now returns `T | undefined` instead of `Option<T>`. `useMutation` and `useAction` now return `(args) => Promise<T>` instead of `(args) => Effect<T>`. The hooks still encode args and decode return values via the spec's Effect Schemas automatically.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- @confect/core@2.0.0
|
|
12
|
+
|
|
13
|
+
## 1.0.3
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- @confect/core@1.0.3
|
|
18
|
+
|
|
3
19
|
## 1.0.2
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Effect, Option } from "effect";
|
|
1
|
+
import { Ref } from "@confect/core";
|
|
3
2
|
|
|
4
3
|
//#region src/index.d.ts
|
|
5
|
-
declare const useQuery: <Query extends Ref.AnyPublicQuery>(ref: Query, args: Ref.Args<Query>["Type"]) =>
|
|
6
|
-
declare const useMutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation) => (args: Ref.Args<Mutation>["Type"]) =>
|
|
7
|
-
declare const useAction: <Action extends Ref.AnyPublicAction>(ref: Action) => (args: Ref.Args<Action>["Type"]) =>
|
|
4
|
+
declare const useQuery: <Query extends Ref.AnyPublicQuery>(ref: Query, args: Ref.Args<Query>["Type"]) => Ref.Returns<Query>["Type"] | undefined;
|
|
5
|
+
declare const useMutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation) => (args: Ref.Args<Mutation>["Type"]) => Promise<Ref.Returns<Mutation>["Type"]>;
|
|
6
|
+
declare const useAction: <Action extends Ref.AnyPublicAction>(ref: Action) => (args: Ref.Args<Action>["Type"]) => Promise<Ref.Returns<Action>["Type"]>;
|
|
8
7
|
//#endregion
|
|
9
8
|
export { useAction, useMutation, useQuery };
|
|
10
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":";;;cAQa,QAAA,iBAA0B,GAAA,CAAI,cAAA,EACzC,GAAA,EAAK,KAAA,EACL,IAAA,EAAM,GAAA,CAAI,IAAA,CAAK,KAAA,cACd,GAAA,CAAI,OAAA,CAAQ,KAAA;AAAA,cAkBF,WAAA,oBAAgC,GAAA,CAAI,iBAAA,EAC/C,GAAA,EAAK,QAAA,MAOH,IAAA,EAAM,GAAA,CAAI,IAAA,CAAK,QAAA,cACd,OAAA,CAAQ,GAAA,CAAI,OAAA,CAAQ,QAAA;AAAA,cAOZ,SAAA,kBAA4B,GAAA,CAAI,eAAA,EAAiB,GAAA,EAAK,MAAA,MAM/D,IAAA,EAAM,GAAA,CAAI,IAAA,CAAK,MAAA,cACd,OAAA,CAAQ,GAAA,CAAI,OAAA,CAAQ,MAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,31 +1,29 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Ref } from "@confect/core";
|
|
2
2
|
import { useAction as useAction$1, useMutation as useMutation$1, useQuery as useQuery$1 } from "convex/react";
|
|
3
|
-
import {
|
|
3
|
+
import { Schema } from "effect";
|
|
4
4
|
|
|
5
5
|
//#region src/index.ts
|
|
6
6
|
const useQuery = (ref, args) => {
|
|
7
7
|
const function_ = Ref.getFunction(ref);
|
|
8
8
|
const encodedReturnsOrUndefined = useQuery$1(Ref.getConvexFunctionName(ref), Schema.encodeSync(function_.args)(args));
|
|
9
|
-
if (encodedReturnsOrUndefined === void 0) return
|
|
10
|
-
else return
|
|
9
|
+
if (encodedReturnsOrUndefined === void 0) return;
|
|
10
|
+
else return Schema.decodeSync(function_.returns)(encodedReturnsOrUndefined);
|
|
11
11
|
};
|
|
12
12
|
const useMutation = (ref) => {
|
|
13
13
|
const function_ = Ref.getFunction(ref);
|
|
14
14
|
const actualMutation = useMutation$1(Ref.getConvexFunctionName(ref));
|
|
15
|
-
return (args) =>
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}).pipe(Effect.orDie);
|
|
15
|
+
return async (args) => {
|
|
16
|
+
const actualReturns = await actualMutation(Schema.encodeSync(function_.args)(args));
|
|
17
|
+
return Schema.decodeSync(function_.returns)(actualReturns);
|
|
18
|
+
};
|
|
20
19
|
};
|
|
21
20
|
const useAction = (ref) => {
|
|
22
21
|
const function_ = Ref.getFunction(ref);
|
|
23
22
|
const actualAction = useAction$1(Ref.getConvexFunctionName(ref));
|
|
24
|
-
return (args) =>
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}).pipe(Effect.orDie);
|
|
23
|
+
return async (args) => {
|
|
24
|
+
const actualReturns = await actualAction(Schema.encodeSync(function_.args)(args));
|
|
25
|
+
return Schema.decodeSync(function_.returns)(actualReturns);
|
|
26
|
+
};
|
|
29
27
|
};
|
|
30
28
|
|
|
31
29
|
//#endregion
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useConvexQuery","useConvexMutation","useConvexAction"],"sources":["../src/index.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index.js","names":["useConvexQuery","useConvexMutation","useConvexAction"],"sources":["../src/index.ts"],"sourcesContent":["import { Ref } from \"@confect/core\";\nimport {\n useAction as useConvexAction,\n useMutation as useConvexMutation,\n useQuery as useConvexQuery,\n} from \"convex/react\";\nimport { Schema } from \"effect\";\n\nexport const useQuery = <Query extends Ref.AnyPublicQuery>(\n ref: Query,\n args: Ref.Args<Query>[\"Type\"],\n): Ref.Returns<Query>[\"Type\"] | undefined => {\n const function_ = Ref.getFunction(ref);\n const functionName = Ref.getConvexFunctionName(ref);\n\n const encodedArgs = Schema.encodeSync(function_.args)(args);\n\n const encodedReturnsOrUndefined = useConvexQuery(\n functionName as any,\n encodedArgs,\n );\n\n if (encodedReturnsOrUndefined === undefined) {\n return undefined;\n } else {\n return Schema.decodeSync(function_.returns)(encodedReturnsOrUndefined);\n }\n};\n\nexport const useMutation = <Mutation extends Ref.AnyPublicMutation>(\n ref: Mutation,\n) => {\n const function_ = Ref.getFunction(ref);\n const functionName = Ref.getConvexFunctionName(ref);\n const actualMutation = useConvexMutation(functionName as any);\n\n return async (\n args: Ref.Args<Mutation>[\"Type\"],\n ): Promise<Ref.Returns<Mutation>[\"Type\"]> => {\n const encodedArgs = Schema.encodeSync(function_.args)(args);\n const actualReturns = await actualMutation(encodedArgs);\n return Schema.decodeSync(function_.returns)(actualReturns);\n };\n};\n\nexport const useAction = <Action extends Ref.AnyPublicAction>(ref: Action) => {\n const function_ = Ref.getFunction(ref);\n const functionName = Ref.getConvexFunctionName(ref);\n const actualAction = useConvexAction(functionName as any);\n\n return async (\n args: Ref.Args<Action>[\"Type\"],\n ): Promise<Ref.Returns<Action>[\"Type\"]> => {\n const encodedArgs = Schema.encodeSync(function_.args)(args);\n const actualReturns = await actualAction(encodedArgs);\n return Schema.decodeSync(function_.returns)(actualReturns);\n };\n};\n"],"mappings":";;;;;AAQA,MAAa,YACX,KACA,SAC2C;CAC3C,MAAM,YAAY,IAAI,YAAY,IAAI;CAKtC,MAAM,4BAA4BA,WAJb,IAAI,sBAAsB,IAAI,EAE/B,OAAO,WAAW,UAAU,KAAK,CAAC,KAAK,CAK1D;AAED,KAAI,8BAA8B,OAChC;KAEA,QAAO,OAAO,WAAW,UAAU,QAAQ,CAAC,0BAA0B;;AAI1E,MAAa,eACX,QACG;CACH,MAAM,YAAY,IAAI,YAAY,IAAI;CAEtC,MAAM,iBAAiBC,cADF,IAAI,sBAAsB,IAAI,CACU;AAE7D,QAAO,OACL,SAC2C;EAE3C,MAAM,gBAAgB,MAAM,eADR,OAAO,WAAW,UAAU,KAAK,CAAC,KAAK,CACJ;AACvD,SAAO,OAAO,WAAW,UAAU,QAAQ,CAAC,cAAc;;;AAI9D,MAAa,aAAiD,QAAgB;CAC5E,MAAM,YAAY,IAAI,YAAY,IAAI;CAEtC,MAAM,eAAeC,YADA,IAAI,sBAAsB,IAAI,CACM;AAEzD,QAAO,OACL,SACyC;EAEzC,MAAM,gBAAgB,MAAM,aADR,OAAO,WAAW,UAAU,KAAK,CAAC,KAAK,CACN;AACrD,SAAO,OAAO,WAAW,UAAU,QAAQ,CAAC,cAAc"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@confect/react",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Client-side bindings for React apps",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -35,20 +35,19 @@
|
|
|
35
35
|
"author": "RJ Dellecese",
|
|
36
36
|
"license": "ISC",
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
40
|
-
"
|
|
41
|
-
"eslint": "9.39.2",
|
|
38
|
+
"@eslint/js": "10.0.1",
|
|
39
|
+
"@types/node": "25.3.3",
|
|
40
|
+
"eslint": "10.0.2",
|
|
42
41
|
"prettier": "3.8.1",
|
|
43
42
|
"tsdown": "0.20.3",
|
|
44
43
|
"typescript": "5.9.3",
|
|
45
|
-
"typescript-eslint": "8.
|
|
44
|
+
"typescript-eslint": "8.56.1"
|
|
46
45
|
},
|
|
47
46
|
"peerDependencies": {
|
|
48
47
|
"convex": "^1.30.0",
|
|
49
48
|
"effect": "^3.19.16",
|
|
50
49
|
"react": "^18.0.0 || ^19.0.0",
|
|
51
|
-
"@confect/core": "
|
|
50
|
+
"@confect/core": "2.0.0"
|
|
52
51
|
},
|
|
53
52
|
"engines": {
|
|
54
53
|
"node": ">=22",
|
package/src/index.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Ref } from "@confect/core";
|
|
2
2
|
import {
|
|
3
3
|
useAction as useConvexAction,
|
|
4
4
|
useMutation as useConvexMutation,
|
|
5
5
|
useQuery as useConvexQuery,
|
|
6
6
|
} from "convex/react";
|
|
7
|
-
import {
|
|
7
|
+
import { Schema } from "effect";
|
|
8
8
|
|
|
9
9
|
export const useQuery = <Query extends Ref.AnyPublicQuery>(
|
|
10
10
|
ref: Query,
|
|
11
11
|
args: Ref.Args<Query>["Type"],
|
|
12
|
-
):
|
|
12
|
+
): Ref.Returns<Query>["Type"] | undefined => {
|
|
13
13
|
const function_ = Ref.getFunction(ref);
|
|
14
14
|
const functionName = Ref.getConvexFunctionName(ref);
|
|
15
15
|
|
|
@@ -21,11 +21,9 @@ export const useQuery = <Query extends Ref.AnyPublicQuery>(
|
|
|
21
21
|
);
|
|
22
22
|
|
|
23
23
|
if (encodedReturnsOrUndefined === undefined) {
|
|
24
|
-
return
|
|
24
|
+
return undefined;
|
|
25
25
|
} else {
|
|
26
|
-
return
|
|
27
|
-
Schema.decodeSync(function_.returns)(encodedReturnsOrUndefined),
|
|
28
|
-
);
|
|
26
|
+
return Schema.decodeSync(function_.returns)(encodedReturnsOrUndefined);
|
|
29
27
|
}
|
|
30
28
|
};
|
|
31
29
|
|
|
@@ -36,18 +34,13 @@ export const useMutation = <Mutation extends Ref.AnyPublicMutation>(
|
|
|
36
34
|
const functionName = Ref.getConvexFunctionName(ref);
|
|
37
35
|
const actualMutation = useConvexMutation(functionName as any);
|
|
38
36
|
|
|
39
|
-
return (
|
|
37
|
+
return async (
|
|
40
38
|
args: Ref.Args<Mutation>["Type"],
|
|
41
|
-
):
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
actualMutation(encodedArgs),
|
|
47
|
-
);
|
|
48
|
-
|
|
49
|
-
return yield* Schema.decode(function_.returns)(actualReturns);
|
|
50
|
-
}).pipe(Effect.orDie);
|
|
39
|
+
): Promise<Ref.Returns<Mutation>["Type"]> => {
|
|
40
|
+
const encodedArgs = Schema.encodeSync(function_.args)(args);
|
|
41
|
+
const actualReturns = await actualMutation(encodedArgs);
|
|
42
|
+
return Schema.decodeSync(function_.returns)(actualReturns);
|
|
43
|
+
};
|
|
51
44
|
};
|
|
52
45
|
|
|
53
46
|
export const useAction = <Action extends Ref.AnyPublicAction>(ref: Action) => {
|
|
@@ -55,16 +48,11 @@ export const useAction = <Action extends Ref.AnyPublicAction>(ref: Action) => {
|
|
|
55
48
|
const functionName = Ref.getConvexFunctionName(ref);
|
|
56
49
|
const actualAction = useConvexAction(functionName as any);
|
|
57
50
|
|
|
58
|
-
return (
|
|
51
|
+
return async (
|
|
59
52
|
args: Ref.Args<Action>["Type"],
|
|
60
|
-
):
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
actualAction(encodedArgs),
|
|
66
|
-
);
|
|
67
|
-
|
|
68
|
-
return yield* Schema.decode(function_.returns)(actualReturns);
|
|
69
|
-
}).pipe(Effect.orDie);
|
|
53
|
+
): Promise<Ref.Returns<Action>["Type"]> => {
|
|
54
|
+
const encodedArgs = Schema.encodeSync(function_.args)(args);
|
|
55
|
+
const actualReturns = await actualAction(encodedArgs);
|
|
56
|
+
return Schema.decodeSync(function_.returns)(actualReturns);
|
|
57
|
+
};
|
|
70
58
|
};
|