@confect/js 5.0.0 → 6.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 +9 -0
- package/dist/HttpClient.d.ts +9 -10
- package/dist/HttpClient.d.ts.map +1 -1
- package/dist/HttpClient.js.map +1 -1
- package/dist/WebSocketClient.d.ts +12 -13
- package/dist/WebSocketClient.d.ts.map +1 -1
- package/dist/WebSocketClient.js.map +1 -1
- package/package.json +2 -2
- package/src/HttpClient.ts +3 -9
- package/src/WebSocketClient.ts +4 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @confect/js
|
|
2
2
|
|
|
3
|
+
## 6.0.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- df95ce7: Add `Ref.OptionalArgs` type utility to `@confect/core` for conditionally optional function args. `QueryRunner`, `MutationRunner`, and `ActionRunner` now accept optional args for no-arg Confect functions. `useQuery`, `useMutation`, and `useAction` now accept optional args for no-arg Confect functions. `TestConfect` `query`/`mutation`/`action` helpers now accept optional args for no-arg Confect functions.
|
|
8
|
+
- Updated dependencies [df95ce7]
|
|
9
|
+
- Updated dependencies [a8083e8]
|
|
10
|
+
- @confect/core@6.0.0
|
|
11
|
+
|
|
3
12
|
## 5.0.0
|
|
4
13
|
|
|
5
14
|
### Minor Changes
|
package/dist/HttpClient.d.ts
CHANGED
|
@@ -12,7 +12,6 @@ declare const HttpClientError_base: Schema.TaggedErrorClass<HttpClientError, "Ht
|
|
|
12
12
|
cause: typeof Schema.Unknown;
|
|
13
13
|
}>;
|
|
14
14
|
declare class HttpClientError extends HttpClientError_base {}
|
|
15
|
-
type OptionalArgs<R extends Ref.AnyPublicQuery | Ref.AnyPublicMutation | Ref.AnyPublicAction> = keyof Ref.Args<R> extends never ? [args?: Ref.Args<R>] : [args: Ref.Args<R>];
|
|
16
15
|
/**
|
|
17
16
|
* A Confect client which uses HTTP to communicate with your Convex backend. Works in any JS runtime that supports `fetch`. Wraps [ConvexHttpClient](https://docs.convex.dev/api/classes/browser.ConvexHttpClient).
|
|
18
17
|
*/
|
|
@@ -20,25 +19,25 @@ declare const HttpClient: Context.Tag<{
|
|
|
20
19
|
url: string;
|
|
21
20
|
setAuth: (token: string) => Effect.Effect<void, never, never>;
|
|
22
21
|
clearAuth: Effect.Effect<void, never, never>;
|
|
23
|
-
query: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, HttpClientError | ParseResult.ParseError>;
|
|
24
|
-
mutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation, ...rest: OptionalArgs<Mutation>) => Effect.Effect<Ref.Returns<Mutation>, HttpClientError | ParseResult.ParseError>;
|
|
25
|
-
action: <Action extends Ref.AnyPublicAction>(ref: Action, ...rest: OptionalArgs<Action>) => Effect.Effect<Ref.Returns<Action>, HttpClientError | ParseResult.ParseError>;
|
|
22
|
+
query: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: Ref.OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, HttpClientError | ParseResult.ParseError>;
|
|
23
|
+
mutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation, ...rest: Ref.OptionalArgs<Mutation>) => Effect.Effect<Ref.Returns<Mutation>, HttpClientError | ParseResult.ParseError>;
|
|
24
|
+
action: <Action extends Ref.AnyPublicAction>(ref: Action, ...rest: Ref.OptionalArgs<Action>) => Effect.Effect<Ref.Returns<Action>, HttpClientError | ParseResult.ParseError>;
|
|
26
25
|
}, {
|
|
27
26
|
url: string;
|
|
28
27
|
setAuth: (token: string) => Effect.Effect<void, never, never>;
|
|
29
28
|
clearAuth: Effect.Effect<void, never, never>;
|
|
30
|
-
query: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, HttpClientError | ParseResult.ParseError>;
|
|
31
|
-
mutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation, ...rest: OptionalArgs<Mutation>) => Effect.Effect<Ref.Returns<Mutation>, HttpClientError | ParseResult.ParseError>;
|
|
32
|
-
action: <Action extends Ref.AnyPublicAction>(ref: Action, ...rest: OptionalArgs<Action>) => Effect.Effect<Ref.Returns<Action>, HttpClientError | ParseResult.ParseError>;
|
|
29
|
+
query: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: Ref.OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, HttpClientError | ParseResult.ParseError>;
|
|
30
|
+
mutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation, ...rest: Ref.OptionalArgs<Mutation>) => Effect.Effect<Ref.Returns<Mutation>, HttpClientError | ParseResult.ParseError>;
|
|
31
|
+
action: <Action extends Ref.AnyPublicAction>(ref: Action, ...rest: Ref.OptionalArgs<Action>) => Effect.Effect<Ref.Returns<Action>, HttpClientError | ParseResult.ParseError>;
|
|
33
32
|
}>;
|
|
34
33
|
type HttpClient = typeof HttpClient.Identifier;
|
|
35
34
|
declare const layer: (address: string, options?: ConstructorParameters<typeof ConvexHttpClient>[1]) => Layer.Layer<{
|
|
36
35
|
url: string;
|
|
37
36
|
setAuth: (token: string) => Effect.Effect<void, never, never>;
|
|
38
37
|
clearAuth: Effect.Effect<void, never, never>;
|
|
39
|
-
query: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, HttpClientError | ParseResult.ParseError>;
|
|
40
|
-
mutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation, ...rest: OptionalArgs<Mutation>) => Effect.Effect<Ref.Returns<Mutation>, HttpClientError | ParseResult.ParseError>;
|
|
41
|
-
action: <Action extends Ref.AnyPublicAction>(ref: Action, ...rest: OptionalArgs<Action>) => Effect.Effect<Ref.Returns<Action>, HttpClientError | ParseResult.ParseError>;
|
|
38
|
+
query: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: Ref.OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, HttpClientError | ParseResult.ParseError>;
|
|
39
|
+
mutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation, ...rest: Ref.OptionalArgs<Mutation>) => Effect.Effect<Ref.Returns<Mutation>, HttpClientError | ParseResult.ParseError>;
|
|
40
|
+
action: <Action extends Ref.AnyPublicAction>(ref: Action, ...rest: Ref.OptionalArgs<Action>) => Effect.Effect<Ref.Returns<Action>, HttpClientError | ParseResult.ParseError>;
|
|
42
41
|
}, never, never>;
|
|
43
42
|
//#endregion
|
|
44
43
|
export { HttpClient_d_exports };
|
package/dist/HttpClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClient.d.ts","names":[],"sources":["../src/HttpClient.ts"],"mappings":";;;;;;;;cAGwD,oBAAA;;;;;cAE3C,eAAA,SAAwB,oBAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"HttpClient.d.ts","names":[],"sources":["../src/HttpClient.ts"],"mappings":";;;;;;;;cAGwD,oBAAA;;;;;cAE3C,eAAA,SAAwB,oBAAA;AAFmB;;;AAAA,cAuF3C,UAAA,EAAU,OAAA,CAAA,GAAA;;8BAtES,MAAA,CAAA,MAAA;;wBASD,GAAA,CAAI,cAAA,EAAc,GAAA,EACxC,KAAA,KAAK,IAAA,EACD,GAAA,CAAI,YAAA,CAAa,KAAA,MACzB,MAAA,CAAO,MAAA,CACR,GAAA,CAAI,OAAA,CAAQ,KAAA,GACZ,eAAA,GAAkB,WAAA,CAAY,UAAA;8BAWG,GAAA,CAAI,iBAAA,EAAiB,GAAA,EACjD,QAAA,KAAQ,IAAA,EACJ,GAAA,CAAI,YAAA,CAAa,QAAA,MACzB,MAAA,CAAO,MAAA,CACR,GAAA,CAAI,OAAA,CAAQ,QAAA,GACZ,eAAA,GAAkB,WAAA,CAAY,UAAA;0BAWD,GAAA,CAAI,eAAA,EAAe,GAAA,EAC3C,MAAA,KAAM,IAAA,EACF,GAAA,CAAI,YAAA,CAAa,MAAA,MACzB,MAAA,CAAO,MAAA,CACR,GAAA,CAAI,OAAA,CAAQ,MAAA,GACZ,eAAA,GAAkB,WAAA,CAAY,UAAA;AAAA;;8BA9CF,MAAA,CAAA,MAAA;;wBASD,GAAA,CAAI,cAAA,EAAc,GAAA,EACxC,KAAA,KAAK,IAAA,EACD,GAAA,CAAI,YAAA,CAAa,KAAA,MACzB,MAAA,CAAO,MAAA,CACR,GAAA,CAAI,OAAA,CAAQ,KAAA,GACZ,eAAA,GAAkB,WAAA,CAAY,UAAA;8BAWG,GAAA,CAAI,iBAAA,EAAiB,GAAA,EACjD,QAAA,KAAQ,IAAA,EACJ,GAAA,CAAI,YAAA,CAAa,QAAA,MACzB,MAAA,CAAO,MAAA,CACR,GAAA,CAAI,OAAA,CAAQ,QAAA,GACZ,eAAA,GAAkB,WAAA,CAAY,UAAA;0BAWD,GAAA,CAAI,eAAA,EAAe,GAAA,EAC3C,MAAA,KAAM,IAAA,EACF,GAAA,CAAI,YAAA,CAAa,MAAA,MACzB,MAAA,CAAO,MAAA,CACR,GAAA,CAAI,OAAA,CAAQ,MAAA,GACZ,eAAA,GAAkB,WAAA,CAAY,UAAA;AAAA;AAAA,KA4BtB,UAAA,UAAoB,UAAA,CAAW,UAAA;AAAA,cAE9B,KAAA,GACX,OAAA,UACA,OAAA,GAAU,qBAAA,QAA6B,gBAAA,SAAoB,KAAA,CAAA,KAAA;;8BA9E7B,MAAA,CAAA,MAAA;;wBASD,GAAA,CAAI,cAAA,EAAc,GAAA,EACxC,KAAA,KAAK,IAAA,EACD,GAAA,CAAI,YAAA,CAAa,KAAA,MACzB,MAAA,CAAO,MAAA,CACR,GAAA,CAAI,OAAA,CAAQ,KAAA,GACZ,eAAA,GAAkB,WAAA,CAAY,UAAA;8BAWG,GAAA,CAAI,iBAAA,EAAiB,GAAA,EACjD,QAAA,KAAQ,IAAA,EACJ,GAAA,CAAI,YAAA,CAAa,QAAA,MACzB,MAAA,CAAO,MAAA,CACR,GAAA,CAAI,OAAA,CAAQ,QAAA,GACZ,eAAA,GAAkB,WAAA,CAAY,UAAA;0BAWD,GAAA,CAAI,eAAA,EAAe,GAAA,EAC3C,MAAA,KAAM,IAAA,EACF,GAAA,CAAI,YAAA,CAAa,MAAA,MACzB,MAAA,CAAO,MAAA,CACR,GAAA,CAAI,OAAA,CAAQ,MAAA,GACZ,eAAA,GAAkB,WAAA,CAAY,UAAA;AAAA"}
|
package/dist/HttpClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClient.js","names":[],"sources":["../src/HttpClient.ts"],"sourcesContent":["import * as Ref from \"@confect/core/Ref\";\nimport { ConvexHttpClient } from \"convex/browser\";\nimport type { ParseResult } from \"effect\";\nimport { Context, Effect, Layer, Schema } from \"effect\";\n\nexport class HttpClientError extends Schema.TaggedError<HttpClientError>()(\n \"HttpClientError\",\n {\n cause: Schema.Unknown,\n },\n) {}\n\
|
|
1
|
+
{"version":3,"file":"HttpClient.js","names":[],"sources":["../src/HttpClient.ts"],"sourcesContent":["import * as Ref from \"@confect/core/Ref\";\nimport { ConvexHttpClient } from \"convex/browser\";\nimport type { ParseResult } from \"effect\";\nimport { Context, Effect, Layer, Schema } from \"effect\";\n\nexport class HttpClientError extends Schema.TaggedError<HttpClientError>()(\n \"HttpClientError\",\n {\n cause: Schema.Unknown,\n },\n) {}\n\nconst make = (\n address: string,\n options?: ConstructorParameters<typeof ConvexHttpClient>[1],\n) => {\n const client = new ConvexHttpClient(address, options);\n\n const url = client.url;\n\n const setAuth = (token: string) =>\n Effect.sync(() => {\n client.setAuth(token);\n });\n\n const clearAuth = Effect.sync(() => {\n client.clearAuth();\n });\n\n const query = <Query extends Ref.AnyPublicQuery>(\n ref: Query,\n ...rest: Ref.OptionalArgs<Query>\n ): Effect.Effect<\n Ref.Returns<Query>,\n HttpClientError | ParseResult.ParseError\n > => {\n const args = (rest[0] ?? {}) as Ref.Args<Query>;\n return Ref.runWithCodec(ref, args, (functionReference, encodedArgs) =>\n Effect.tryPromise({\n try: () => client.query(functionReference, encodedArgs),\n catch: (cause) => new HttpClientError({ cause }),\n }),\n );\n };\n\n const mutation = <Mutation extends Ref.AnyPublicMutation>(\n ref: Mutation,\n ...rest: Ref.OptionalArgs<Mutation>\n ): Effect.Effect<\n Ref.Returns<Mutation>,\n HttpClientError | ParseResult.ParseError\n > => {\n const args = (rest[0] ?? {}) as Ref.Args<Mutation>;\n return Ref.runWithCodec(ref, args, (functionReference, encodedArgs) =>\n Effect.tryPromise({\n try: () => client.mutation(functionReference, encodedArgs),\n catch: (cause) => new HttpClientError({ cause }),\n }),\n );\n };\n\n const action = <Action extends Ref.AnyPublicAction>(\n ref: Action,\n ...rest: Ref.OptionalArgs<Action>\n ): Effect.Effect<\n Ref.Returns<Action>,\n HttpClientError | ParseResult.ParseError\n > => {\n const args = (rest[0] ?? {}) as Ref.Args<Action>;\n return Ref.runWithCodec(ref, args, (functionReference, encodedArgs) =>\n Effect.tryPromise({\n try: () => client.action(functionReference, encodedArgs),\n catch: (cause) => new HttpClientError({ cause }),\n }),\n );\n };\n\n return {\n url,\n setAuth,\n clearAuth,\n query,\n mutation,\n action,\n };\n};\n\n/**\n * A Confect client which uses HTTP to communicate with your Convex backend. Works in any JS runtime that supports `fetch`. Wraps [ConvexHttpClient](https://docs.convex.dev/api/classes/browser.ConvexHttpClient).\n */\nexport const HttpClient = Context.GenericTag<ReturnType<typeof make>>(\n \"@confect/js/HttpClient\",\n);\n\nexport type HttpClient = typeof HttpClient.Identifier;\n\nexport const layer = (\n address: string,\n options?: ConstructorParameters<typeof ConvexHttpClient>[1],\n) => Layer.sync(HttpClient, () => make(address, options));\n"],"mappings":";;;;;;;;;;;AAKA,IAAa,kBAAb,cAAqC,OAAO,aAA8B,CACxE,mBACA,EACE,OAAO,OAAO,SACf,CACF,CAAC;AAEF,MAAM,QACJ,SACA,YACG;CACH,MAAM,SAAS,IAAI,iBAAiB,SAAS,QAAQ;CAErD,MAAM,MAAM,OAAO;CAEnB,MAAM,WAAW,UACf,OAAO,WAAW;AAChB,SAAO,QAAQ,MAAM;GACrB;CAEJ,MAAM,YAAY,OAAO,WAAW;AAClC,SAAO,WAAW;GAClB;CAEF,MAAM,SACJ,KACA,GAAG,SAIA;EACH,MAAM,OAAQ,KAAK,MAAM,EAAE;AAC3B,SAAO,IAAI,aAAa,KAAK,OAAO,mBAAmB,gBACrD,OAAO,WAAW;GAChB,WAAW,OAAO,MAAM,mBAAmB,YAAY;GACvD,QAAQ,UAAU,IAAI,gBAAgB,EAAE,OAAO,CAAC;GACjD,CAAC,CACH;;CAGH,MAAM,YACJ,KACA,GAAG,SAIA;EACH,MAAM,OAAQ,KAAK,MAAM,EAAE;AAC3B,SAAO,IAAI,aAAa,KAAK,OAAO,mBAAmB,gBACrD,OAAO,WAAW;GAChB,WAAW,OAAO,SAAS,mBAAmB,YAAY;GAC1D,QAAQ,UAAU,IAAI,gBAAgB,EAAE,OAAO,CAAC;GACjD,CAAC,CACH;;CAGH,MAAM,UACJ,KACA,GAAG,SAIA;EACH,MAAM,OAAQ,KAAK,MAAM,EAAE;AAC3B,SAAO,IAAI,aAAa,KAAK,OAAO,mBAAmB,gBACrD,OAAO,WAAW;GAChB,WAAW,OAAO,OAAO,mBAAmB,YAAY;GACxD,QAAQ,UAAU,IAAI,gBAAgB,EAAE,OAAO,CAAC;GACjD,CAAC,CACH;;AAGH,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACD;;;;;AAMH,MAAa,aAAa,QAAQ,WAChC,yBACD;AAID,MAAa,SACX,SACA,YACG,MAAM,KAAK,kBAAkB,KAAK,SAAS,QAAQ,CAAC"}
|
|
@@ -12,7 +12,6 @@ declare const WebSocketClientError_base: Schema.TaggedErrorClass<WebSocketClient
|
|
|
12
12
|
cause: typeof Schema.Unknown;
|
|
13
13
|
}>;
|
|
14
14
|
declare class WebSocketClientError extends WebSocketClientError_base {}
|
|
15
|
-
type OptionalArgs<R extends Ref.AnyPublicQuery | Ref.AnyPublicMutation | Ref.AnyPublicAction> = keyof Ref.Args<R> extends never ? [args?: Ref.Args<R>] : [args: Ref.Args<R>];
|
|
16
15
|
/**
|
|
17
16
|
* A Confect client which uses a WebSocket to communicate with your Convex backend and supports reactive query subscriptions. The WebSocket connection is managed by the layer's scope and closed automatically when the scope ends. Wraps [ConvexClient](https://docs.convex.dev/api/classes/browser.ConvexClient).
|
|
18
17
|
*/
|
|
@@ -21,19 +20,19 @@ declare const WebSocketClient: Context.Tag<{
|
|
|
21
20
|
setAuth: (fetchToken: (args: {
|
|
22
21
|
forceRefreshToken: boolean;
|
|
23
22
|
}) => Effect.Effect<string | null | undefined>, onChange?: (isAuthenticated: boolean) => Effect.Effect<void>) => Effect.Effect<void, never, never>;
|
|
24
|
-
query: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, WebSocketClientError | ParseResult.ParseError>;
|
|
25
|
-
mutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation, ...rest: OptionalArgs<Mutation>) => Effect.Effect<Ref.Returns<Mutation>, WebSocketClientError | ParseResult.ParseError>;
|
|
26
|
-
action: <Action extends Ref.AnyPublicAction>(ref: Action, ...rest: OptionalArgs<Action>) => Effect.Effect<Ref.Returns<Action>, WebSocketClientError | ParseResult.ParseError>;
|
|
27
|
-
reactiveQuery: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: OptionalArgs<Query>) => Stream.Stream<Ref.Returns<Query>, WebSocketClientError | ParseResult.ParseError>;
|
|
23
|
+
query: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: Ref.OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, WebSocketClientError | ParseResult.ParseError>;
|
|
24
|
+
mutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation, ...rest: Ref.OptionalArgs<Mutation>) => Effect.Effect<Ref.Returns<Mutation>, WebSocketClientError | ParseResult.ParseError>;
|
|
25
|
+
action: <Action extends Ref.AnyPublicAction>(ref: Action, ...rest: Ref.OptionalArgs<Action>) => Effect.Effect<Ref.Returns<Action>, WebSocketClientError | ParseResult.ParseError>;
|
|
26
|
+
reactiveQuery: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: Ref.OptionalArgs<Query>) => Stream.Stream<Ref.Returns<Query>, WebSocketClientError | ParseResult.ParseError>;
|
|
28
27
|
}, {
|
|
29
28
|
url: string;
|
|
30
29
|
setAuth: (fetchToken: (args: {
|
|
31
30
|
forceRefreshToken: boolean;
|
|
32
31
|
}) => Effect.Effect<string | null | undefined>, onChange?: (isAuthenticated: boolean) => Effect.Effect<void>) => Effect.Effect<void, never, never>;
|
|
33
|
-
query: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, WebSocketClientError | ParseResult.ParseError>;
|
|
34
|
-
mutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation, ...rest: OptionalArgs<Mutation>) => Effect.Effect<Ref.Returns<Mutation>, WebSocketClientError | ParseResult.ParseError>;
|
|
35
|
-
action: <Action extends Ref.AnyPublicAction>(ref: Action, ...rest: OptionalArgs<Action>) => Effect.Effect<Ref.Returns<Action>, WebSocketClientError | ParseResult.ParseError>;
|
|
36
|
-
reactiveQuery: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: OptionalArgs<Query>) => Stream.Stream<Ref.Returns<Query>, WebSocketClientError | ParseResult.ParseError>;
|
|
32
|
+
query: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: Ref.OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, WebSocketClientError | ParseResult.ParseError>;
|
|
33
|
+
mutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation, ...rest: Ref.OptionalArgs<Mutation>) => Effect.Effect<Ref.Returns<Mutation>, WebSocketClientError | ParseResult.ParseError>;
|
|
34
|
+
action: <Action extends Ref.AnyPublicAction>(ref: Action, ...rest: Ref.OptionalArgs<Action>) => Effect.Effect<Ref.Returns<Action>, WebSocketClientError | ParseResult.ParseError>;
|
|
35
|
+
reactiveQuery: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: Ref.OptionalArgs<Query>) => Stream.Stream<Ref.Returns<Query>, WebSocketClientError | ParseResult.ParseError>;
|
|
37
36
|
}>;
|
|
38
37
|
type WebSocketClient = typeof WebSocketClient.Identifier;
|
|
39
38
|
declare const layer: (address: string, options?: ConstructorParameters<typeof ConvexClient>[1]) => Layer.Layer<{
|
|
@@ -41,10 +40,10 @@ declare const layer: (address: string, options?: ConstructorParameters<typeof Co
|
|
|
41
40
|
setAuth: (fetchToken: (args: {
|
|
42
41
|
forceRefreshToken: boolean;
|
|
43
42
|
}) => Effect.Effect<string | null | undefined>, onChange?: (isAuthenticated: boolean) => Effect.Effect<void>) => Effect.Effect<void, never, never>;
|
|
44
|
-
query: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, WebSocketClientError | ParseResult.ParseError>;
|
|
45
|
-
mutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation, ...rest: OptionalArgs<Mutation>) => Effect.Effect<Ref.Returns<Mutation>, WebSocketClientError | ParseResult.ParseError>;
|
|
46
|
-
action: <Action extends Ref.AnyPublicAction>(ref: Action, ...rest: OptionalArgs<Action>) => Effect.Effect<Ref.Returns<Action>, WebSocketClientError | ParseResult.ParseError>;
|
|
47
|
-
reactiveQuery: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: OptionalArgs<Query>) => Stream.Stream<Ref.Returns<Query>, WebSocketClientError | ParseResult.ParseError>;
|
|
43
|
+
query: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: Ref.OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, WebSocketClientError | ParseResult.ParseError>;
|
|
44
|
+
mutation: <Mutation extends Ref.AnyPublicMutation>(ref: Mutation, ...rest: Ref.OptionalArgs<Mutation>) => Effect.Effect<Ref.Returns<Mutation>, WebSocketClientError | ParseResult.ParseError>;
|
|
45
|
+
action: <Action extends Ref.AnyPublicAction>(ref: Action, ...rest: Ref.OptionalArgs<Action>) => Effect.Effect<Ref.Returns<Action>, WebSocketClientError | ParseResult.ParseError>;
|
|
46
|
+
reactiveQuery: <Query extends Ref.AnyPublicQuery>(ref: Query, ...rest: Ref.OptionalArgs<Query>) => Stream.Stream<Ref.Returns<Query>, WebSocketClientError | ParseResult.ParseError>;
|
|
48
47
|
}, never, never>;
|
|
49
48
|
//#endregion
|
|
50
49
|
export { WebSocketClient_d_exports };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketClient.d.ts","names":[],"sources":["../src/WebSocketClient.ts"],"mappings":";;;;;;;;cAGgE,yBAAA;;;;;cAEnD,oBAAA,SAA6B,yBAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"WebSocketClient.d.ts","names":[],"sources":["../src/WebSocketClient.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketClient.js","names":[],"sources":["../src/WebSocketClient.ts"],"sourcesContent":["import * as Ref from \"@confect/core/Ref\";\nimport { ConvexClient } from \"convex/browser\";\nimport type { ParseResult } from \"effect\";\nimport { Context, Effect, Layer, Schema, Stream } from \"effect\";\n\nexport class WebSocketClientError extends Schema.TaggedError<WebSocketClientError>()(\n \"WebSocketClientError\",\n {\n cause: Schema.Unknown,\n },\n) {}\n\
|
|
1
|
+
{"version":3,"file":"WebSocketClient.js","names":[],"sources":["../src/WebSocketClient.ts"],"sourcesContent":["import * as Ref from \"@confect/core/Ref\";\nimport { ConvexClient } from \"convex/browser\";\nimport type { ParseResult } from \"effect\";\nimport { Context, Effect, Layer, Schema, Stream } from \"effect\";\n\nexport class WebSocketClientError extends Schema.TaggedError<WebSocketClientError>()(\n \"WebSocketClientError\",\n {\n cause: Schema.Unknown,\n },\n) {}\n\nconst make = (\n address: string,\n options?: ConstructorParameters<typeof ConvexClient>[1],\n) =>\n Effect.acquireRelease(\n Effect.sync(() => new ConvexClient(address, options)),\n (convexClient) => Effect.promise(() => convexClient.close()),\n ).pipe(\n Effect.map((convexClient) => {\n const url = address;\n\n const setAuth = (\n fetchToken: (args: {\n forceRefreshToken: boolean;\n }) => Effect.Effect<string | null | undefined>,\n onChange?: (isAuthenticated: boolean) => Effect.Effect<void>,\n ) =>\n Effect.sync(() => {\n convexClient.setAuth(\n (args) => Effect.runPromise(fetchToken(args)),\n ...(onChange\n ? [\n (isAuthenticated: boolean) =>\n Effect.runFork(onChange(isAuthenticated)),\n ]\n : []),\n );\n });\n\n const query = <Query extends Ref.AnyPublicQuery>(\n ref: Query,\n ...rest: Ref.OptionalArgs<Query>\n ): Effect.Effect<\n Ref.Returns<Query>,\n WebSocketClientError | ParseResult.ParseError\n > => {\n const args = (rest[0] ?? {}) as Ref.Args<Query>;\n return Ref.runWithCodec(ref, args, (functionReference, encodedArgs) =>\n Effect.tryPromise({\n try: () => convexClient.query(functionReference, encodedArgs),\n catch: (cause) => new WebSocketClientError({ cause }),\n }),\n );\n };\n\n const mutation = <Mutation extends Ref.AnyPublicMutation>(\n ref: Mutation,\n ...rest: Ref.OptionalArgs<Mutation>\n ): Effect.Effect<\n Ref.Returns<Mutation>,\n WebSocketClientError | ParseResult.ParseError\n > => {\n const args = (rest[0] ?? {}) as Ref.Args<Mutation>;\n return Ref.runWithCodec(ref, args, (functionReference, encodedArgs) =>\n Effect.tryPromise({\n try: () => convexClient.mutation(functionReference, encodedArgs),\n catch: (cause) => new WebSocketClientError({ cause }),\n }),\n );\n };\n\n const action = <Action extends Ref.AnyPublicAction>(\n ref: Action,\n ...rest: Ref.OptionalArgs<Action>\n ): Effect.Effect<\n Ref.Returns<Action>,\n WebSocketClientError | ParseResult.ParseError\n > => {\n const args = (rest[0] ?? {}) as Ref.Args<Action>;\n return Ref.runWithCodec(ref, args, (functionReference, encodedArgs) =>\n Effect.tryPromise({\n try: () => convexClient.action(functionReference, encodedArgs),\n catch: (cause) => new WebSocketClientError({ cause }),\n }),\n );\n };\n\n const reactiveQuery = <Query extends Ref.AnyPublicQuery>(\n ref: Query,\n ...rest: Ref.OptionalArgs<Query>\n ): Stream.Stream<\n Ref.Returns<Query>,\n WebSocketClientError | ParseResult.ParseError\n > => {\n const args = (rest[0] ?? {}) as Ref.Args<Query>;\n const functionReference = Ref.getFunctionReference(ref);\n\n return Stream.unwrapScoped(\n Effect.gen(function* () {\n const encodedArgs = yield* Ref.encodeArgs(ref, args);\n\n return Stream.asyncScoped<unknown, WebSocketClientError>((emit) =>\n Effect.gen(function* () {\n const unsubscribe = convexClient.onUpdate(\n functionReference,\n encodedArgs,\n (result) => {\n emit.single(result);\n },\n (error) => {\n emit.fail(new WebSocketClientError({ cause: error }));\n },\n );\n yield* Effect.addFinalizer(() =>\n Effect.sync(() => unsubscribe()),\n );\n }),\n );\n }),\n ).pipe(\n Stream.mapEffect((encodedReturns) =>\n Ref.decodeReturns(ref, encodedReturns),\n ),\n );\n };\n\n return {\n url,\n setAuth,\n query,\n mutation,\n action,\n reactiveQuery,\n };\n }),\n );\n\n/**\n * A Confect client which uses a WebSocket to communicate with your Convex backend and supports reactive query subscriptions. The WebSocket connection is managed by the layer's scope and closed automatically when the scope ends. Wraps [ConvexClient](https://docs.convex.dev/api/classes/browser.ConvexClient).\n */\nexport const WebSocketClient = Context.GenericTag<\n Effect.Effect.Success<ReturnType<typeof make>>\n>(\"@confect/js/WebSocketClient\");\n\nexport type WebSocketClient = typeof WebSocketClient.Identifier;\n\nexport const layer = (\n address: string,\n options?: ConstructorParameters<typeof ConvexClient>[1],\n) => Layer.scoped(WebSocketClient, make(address, options));\n"],"mappings":";;;;;;;;;;;AAKA,IAAa,uBAAb,cAA0C,OAAO,aAAmC,CAClF,wBACA,EACE,OAAO,OAAO,SACf,CACF,CAAC;AAEF,MAAM,QACJ,SACA,YAEA,OAAO,eACL,OAAO,WAAW,IAAI,aAAa,SAAS,QAAQ,CAAC,GACpD,iBAAiB,OAAO,cAAc,aAAa,OAAO,CAAC,CAC7D,CAAC,KACA,OAAO,KAAK,iBAAiB;CAC3B,MAAM,MAAM;CAEZ,MAAM,WACJ,YAGA,aAEA,OAAO,WAAW;AAChB,eAAa,SACV,SAAS,OAAO,WAAW,WAAW,KAAK,CAAC,EAC7C,GAAI,WACA,EACG,oBACC,OAAO,QAAQ,SAAS,gBAAgB,CAAC,CAC5C,GACD,EAAE,CACP;GACD;CAEJ,MAAM,SACJ,KACA,GAAG,SAIA;EACH,MAAM,OAAQ,KAAK,MAAM,EAAE;AAC3B,SAAO,IAAI,aAAa,KAAK,OAAO,mBAAmB,gBACrD,OAAO,WAAW;GAChB,WAAW,aAAa,MAAM,mBAAmB,YAAY;GAC7D,QAAQ,UAAU,IAAI,qBAAqB,EAAE,OAAO,CAAC;GACtD,CAAC,CACH;;CAGH,MAAM,YACJ,KACA,GAAG,SAIA;EACH,MAAM,OAAQ,KAAK,MAAM,EAAE;AAC3B,SAAO,IAAI,aAAa,KAAK,OAAO,mBAAmB,gBACrD,OAAO,WAAW;GAChB,WAAW,aAAa,SAAS,mBAAmB,YAAY;GAChE,QAAQ,UAAU,IAAI,qBAAqB,EAAE,OAAO,CAAC;GACtD,CAAC,CACH;;CAGH,MAAM,UACJ,KACA,GAAG,SAIA;EACH,MAAM,OAAQ,KAAK,MAAM,EAAE;AAC3B,SAAO,IAAI,aAAa,KAAK,OAAO,mBAAmB,gBACrD,OAAO,WAAW;GAChB,WAAW,aAAa,OAAO,mBAAmB,YAAY;GAC9D,QAAQ,UAAU,IAAI,qBAAqB,EAAE,OAAO,CAAC;GACtD,CAAC,CACH;;CAGH,MAAM,iBACJ,KACA,GAAG,SAIA;EACH,MAAM,OAAQ,KAAK,MAAM,EAAE;EAC3B,MAAM,oBAAoB,IAAI,qBAAqB,IAAI;AAEvD,SAAO,OAAO,aACZ,OAAO,IAAI,aAAa;GACtB,MAAM,cAAc,OAAO,IAAI,WAAW,KAAK,KAAK;AAEpD,UAAO,OAAO,aAA4C,SACxD,OAAO,IAAI,aAAa;IACtB,MAAM,cAAc,aAAa,SAC/B,mBACA,cACC,WAAW;AACV,UAAK,OAAO,OAAO;QAEpB,UAAU;AACT,UAAK,KAAK,IAAI,qBAAqB,EAAE,OAAO,OAAO,CAAC,CAAC;MAExD;AACD,WAAO,OAAO,mBACZ,OAAO,WAAW,aAAa,CAAC,CACjC;KACD,CACH;IACD,CACH,CAAC,KACA,OAAO,WAAW,mBAChB,IAAI,cAAc,KAAK,eAAe,CACvC,CACF;;AAGH,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACD;EACD,CACH;;;;AAKH,MAAa,kBAAkB,QAAQ,WAErC,8BAA8B;AAIhC,MAAa,SACX,SACA,YACG,MAAM,OAAO,iBAAiB,KAAK,SAAS,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@confect/js",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"description": "JavaScript client bindings for any JS runtime",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"convex": "^1.30.0",
|
|
50
50
|
"effect": "^3.19.16",
|
|
51
|
-
"@confect/core": "
|
|
51
|
+
"@confect/core": "6.0.0"
|
|
52
52
|
},
|
|
53
53
|
"engines": {
|
|
54
54
|
"node": ">=22",
|
package/src/HttpClient.ts
CHANGED
|
@@ -10,12 +10,6 @@ export class HttpClientError extends Schema.TaggedError<HttpClientError>()(
|
|
|
10
10
|
},
|
|
11
11
|
) {}
|
|
12
12
|
|
|
13
|
-
type OptionalArgs<
|
|
14
|
-
R extends Ref.AnyPublicQuery | Ref.AnyPublicMutation | Ref.AnyPublicAction,
|
|
15
|
-
> = keyof Ref.Args<R> extends never
|
|
16
|
-
? [args?: Ref.Args<R>]
|
|
17
|
-
: [args: Ref.Args<R>];
|
|
18
|
-
|
|
19
13
|
const make = (
|
|
20
14
|
address: string,
|
|
21
15
|
options?: ConstructorParameters<typeof ConvexHttpClient>[1],
|
|
@@ -35,7 +29,7 @@ const make = (
|
|
|
35
29
|
|
|
36
30
|
const query = <Query extends Ref.AnyPublicQuery>(
|
|
37
31
|
ref: Query,
|
|
38
|
-
...rest: OptionalArgs<Query>
|
|
32
|
+
...rest: Ref.OptionalArgs<Query>
|
|
39
33
|
): Effect.Effect<
|
|
40
34
|
Ref.Returns<Query>,
|
|
41
35
|
HttpClientError | ParseResult.ParseError
|
|
@@ -51,7 +45,7 @@ const make = (
|
|
|
51
45
|
|
|
52
46
|
const mutation = <Mutation extends Ref.AnyPublicMutation>(
|
|
53
47
|
ref: Mutation,
|
|
54
|
-
...rest: OptionalArgs<Mutation>
|
|
48
|
+
...rest: Ref.OptionalArgs<Mutation>
|
|
55
49
|
): Effect.Effect<
|
|
56
50
|
Ref.Returns<Mutation>,
|
|
57
51
|
HttpClientError | ParseResult.ParseError
|
|
@@ -67,7 +61,7 @@ const make = (
|
|
|
67
61
|
|
|
68
62
|
const action = <Action extends Ref.AnyPublicAction>(
|
|
69
63
|
ref: Action,
|
|
70
|
-
...rest: OptionalArgs<Action>
|
|
64
|
+
...rest: Ref.OptionalArgs<Action>
|
|
71
65
|
): Effect.Effect<
|
|
72
66
|
Ref.Returns<Action>,
|
|
73
67
|
HttpClientError | ParseResult.ParseError
|
package/src/WebSocketClient.ts
CHANGED
|
@@ -10,12 +10,6 @@ export class WebSocketClientError extends Schema.TaggedError<WebSocketClientErro
|
|
|
10
10
|
},
|
|
11
11
|
) {}
|
|
12
12
|
|
|
13
|
-
type OptionalArgs<
|
|
14
|
-
R extends Ref.AnyPublicQuery | Ref.AnyPublicMutation | Ref.AnyPublicAction,
|
|
15
|
-
> = keyof Ref.Args<R> extends never
|
|
16
|
-
? [args?: Ref.Args<R>]
|
|
17
|
-
: [args: Ref.Args<R>];
|
|
18
|
-
|
|
19
13
|
const make = (
|
|
20
14
|
address: string,
|
|
21
15
|
options?: ConstructorParameters<typeof ConvexClient>[1],
|
|
@@ -47,7 +41,7 @@ const make = (
|
|
|
47
41
|
|
|
48
42
|
const query = <Query extends Ref.AnyPublicQuery>(
|
|
49
43
|
ref: Query,
|
|
50
|
-
...rest: OptionalArgs<Query>
|
|
44
|
+
...rest: Ref.OptionalArgs<Query>
|
|
51
45
|
): Effect.Effect<
|
|
52
46
|
Ref.Returns<Query>,
|
|
53
47
|
WebSocketClientError | ParseResult.ParseError
|
|
@@ -63,7 +57,7 @@ const make = (
|
|
|
63
57
|
|
|
64
58
|
const mutation = <Mutation extends Ref.AnyPublicMutation>(
|
|
65
59
|
ref: Mutation,
|
|
66
|
-
...rest: OptionalArgs<Mutation>
|
|
60
|
+
...rest: Ref.OptionalArgs<Mutation>
|
|
67
61
|
): Effect.Effect<
|
|
68
62
|
Ref.Returns<Mutation>,
|
|
69
63
|
WebSocketClientError | ParseResult.ParseError
|
|
@@ -79,7 +73,7 @@ const make = (
|
|
|
79
73
|
|
|
80
74
|
const action = <Action extends Ref.AnyPublicAction>(
|
|
81
75
|
ref: Action,
|
|
82
|
-
...rest: OptionalArgs<Action>
|
|
76
|
+
...rest: Ref.OptionalArgs<Action>
|
|
83
77
|
): Effect.Effect<
|
|
84
78
|
Ref.Returns<Action>,
|
|
85
79
|
WebSocketClientError | ParseResult.ParseError
|
|
@@ -95,7 +89,7 @@ const make = (
|
|
|
95
89
|
|
|
96
90
|
const reactiveQuery = <Query extends Ref.AnyPublicQuery>(
|
|
97
91
|
ref: Query,
|
|
98
|
-
...rest: OptionalArgs<Query>
|
|
92
|
+
...rest: Ref.OptionalArgs<Query>
|
|
99
93
|
): Stream.Stream<
|
|
100
94
|
Ref.Returns<Query>,
|
|
101
95
|
WebSocketClientError | ParseResult.ParseError
|