@confect/foldkit 10.0.0-next.22 → 10.0.0-next.23
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 +4 -0
- package/dist/Command.d.ts +36 -31
- package/dist/Command.d.ts.map +1 -1
- package/dist/Command.js +17 -13
- package/dist/Command.js.map +1 -1
- package/dist/PaginatedQuery.d.ts +90 -36
- package/dist/PaginatedQuery.d.ts.map +1 -1
- package/dist/PaginatedQuery.js +49 -21
- package/dist/PaginatedQuery.js.map +1 -1
- package/dist/Subscription.d.ts +39 -36
- package/dist/Subscription.d.ts.map +1 -1
- package/dist/Subscription.js +23 -19
- package/dist/Subscription.js.map +1 -1
- package/package.json +6 -4
- package/src/Command.ts +36 -31
- package/src/PaginatedQuery.ts +90 -36
- package/src/Subscription.ts +39 -36
package/CHANGELOG.md
CHANGED
package/dist/Command.d.ts
CHANGED
|
@@ -4,16 +4,17 @@ import type * as Schema from "effect/Schema";
|
|
|
4
4
|
import * as FoldkitCommand from "foldkit/command";
|
|
5
5
|
import * as Client from "./Client";
|
|
6
6
|
/**
|
|
7
|
-
* Everything a Command against `Ref_` can fail with before it is folded into
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* Everything a Command against `Ref_` can fail with before it is folded into an
|
|
8
|
+
* `onError` Message: the ref's typed error (if it declares an `error` schema),
|
|
9
|
+
* a transport-level `WebSocketClientError`, or a `SchemaError` from encoding
|
|
10
|
+
* args or decoding returns.
|
|
11
11
|
*/
|
|
12
12
|
export type Error<Ref_ extends Ref.AnyConfect> = Ref.Error<Ref_> | Client.WebSocketClientError | Schema.SchemaError;
|
|
13
13
|
/**
|
|
14
|
-
* Maps a Confect function's outcome into the app's Messages. Every failure—the
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* Maps a Confect function's outcome into the app's Messages. Every failure—the
|
|
15
|
+
* ref's typed error, a transport error, or a codec error—arrives via `onError`,
|
|
16
|
+
* so the resulting Command's error channel is `never`, as Foldkit requires.
|
|
17
|
+
* Follow Foldkit's naming convention: past-tense facts like
|
|
17
18
|
* `SucceededSaveNote`/`FailedSaveNote`.
|
|
18
19
|
*/
|
|
19
20
|
export interface Handlers<Ref_ extends Ref.AnyConfect, SuccessMessage, ErrorMessage> {
|
|
@@ -30,13 +31,13 @@ type Instance<Name extends string, Ref_ extends Ref.AnyConfect, Message> = Reado
|
|
|
30
31
|
}>;
|
|
31
32
|
type SchemaArgs<Ref_ extends Ref.AnyConfect> = Schema.Schema.Type<Schema.Struct<Ref.ArgsSchema<Ref_>["fields"]>>;
|
|
32
33
|
/**
|
|
33
|
-
* A Foldkit Command definition whose args are the ref's args: our
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
34
|
+
* A Foldkit Command definition whose args are the ref's args: our ref-derived
|
|
35
|
+
* call signature (args optional when the ref declares none) intersected with
|
|
36
|
+
* Foldkit's own `CommandDefinitionWithArgs`, which supplies the
|
|
37
|
+
* `CommandDefinitionTypeId` brand and makes the definition assignable wherever
|
|
38
|
+
* Foldkit accepts one—including Story/Scene `Command.resolve` and `expectExact`
|
|
39
|
+
* matchers. Call it from `update` to construct a Command instance; nothing runs
|
|
40
|
+
* until the Foldkit runtime executes it.
|
|
40
41
|
*/
|
|
41
42
|
export type Definition<Name extends string, Ref_ extends Ref.AnyConfect, Message> = ((...args: Ref.OptionalArgs<Ref_>) => Instance<Name, Ref_, Message>) & FoldkitCommand.CommandDefinitionWithArgs<Name, Ref.ArgsSchema<Ref_>["fields"], Effect.Effect<Message, never, Client.Client>>;
|
|
42
43
|
/**
|
|
@@ -47,8 +48,8 @@ export type Definition<Name extends string, Ref_ extends Ref.AnyConfect, Message
|
|
|
47
48
|
* invocations can be targeted independently.
|
|
48
49
|
*
|
|
49
50
|
* Interrupting stops the client-side Effect and guarantees the invocation's
|
|
50
|
-
* result Messages never dispatch—it does not cancel the Convex function on
|
|
51
|
-
*
|
|
51
|
+
* result Messages never dispatch—it does not cancel the Convex function on the
|
|
52
|
+
* server, which runs to completion once the call is on the wire.
|
|
52
53
|
*/
|
|
53
54
|
export type InterruptOption<Ref_ extends Ref.AnyConfect, KeyField extends keyof SchemaArgs<Ref_> & string = keyof SchemaArgs<Ref_> & string> = FoldkitCommand.InterruptOption<SchemaArgs<Ref_>, KeyField>;
|
|
54
55
|
/**
|
|
@@ -59,8 +60,8 @@ export type KeyedInterrupt<Ref_ extends Ref.AnyConfect, KeyField extends keyof S
|
|
|
59
60
|
/**
|
|
60
61
|
* An interruptible Command definition whose key is the Command name—the
|
|
61
62
|
* ref-derived call signature intersected with Foldkit's
|
|
62
|
-
* `Interruptible.DefinitionWithArgsNameKeyed`, which supplies the brand and
|
|
63
|
-
*
|
|
63
|
+
* `Interruptible.DefinitionWithArgsNameKeyed`, which supplies the brand and the
|
|
64
|
+
* `Interrupt` constructor.
|
|
64
65
|
*/
|
|
65
66
|
export type InterruptibleDefinition<Name extends string, Ref_ extends Ref.AnyConfect, Message> = ((...args: Ref.OptionalArgs<Ref_>) => Instance<Name, Ref_, Message> & Readonly<{
|
|
66
67
|
key: string;
|
|
@@ -76,8 +77,8 @@ export type KeyedInterruptibleDefinition<Name extends string, Ref_ extends Ref.A
|
|
|
76
77
|
}>) & FoldkitCommand.Interruptible.DefinitionWithArgs<Name, Ref.ArgsSchema<Ref_>["fields"], Pick<SchemaArgs<Ref_>, KeyField>, Effect.Effect<Message, never, Client.Client>>;
|
|
77
78
|
/**
|
|
78
79
|
* An execute body for a hand-written `Command.define`—every failure already
|
|
79
|
-
* folded into a Message. Reach for these when the factory below doesn't fit:
|
|
80
|
-
*
|
|
80
|
+
* folded into a Message. Reach for these when the factory below doesn't fit: a
|
|
81
|
+
* custom args schema, `interrupt`, or a Command that makes several calls.
|
|
81
82
|
*/
|
|
82
83
|
export declare const queryEffect: <Query extends Ref.AnyConfectPublicQuery, SuccessMessage, ErrorMessage>(ref: Query, handlers: Handlers<Query, SuccessMessage, ErrorMessage>) => (...args: Ref.OptionalArgs<Query>) => Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client>;
|
|
83
84
|
/**
|
|
@@ -122,22 +123,26 @@ declare const makeFactory: <BoundRef extends Ref.AnyConfect>(effectHelper: <Ref_
|
|
|
122
123
|
* messages: [SucceededGetNote, FailedGetNote],
|
|
123
124
|
* onSuccess: (note) => SucceededGetNote({ note }),
|
|
124
125
|
* onError: (error) => FailedGetNote({ message: String(error) }),
|
|
125
|
-
* })
|
|
126
|
+
* });
|
|
126
127
|
* // In update:
|
|
127
128
|
* // [model, [FetchNote({ noteId })]]
|
|
128
129
|
* ```
|
|
129
130
|
*
|
|
130
131
|
* Pass `interrupt` to make invocations interruptible via the returned
|
|
131
|
-
* definition's `Interrupt` constructor—`true` keys them by the Command
|
|
132
|
-
*
|
|
132
|
+
* definition's `Interrupt` constructor—`true` keys them by the Command name, `{
|
|
133
|
+
* keyFields, toKey }` by a part derived from the ref's args:
|
|
133
134
|
*
|
|
134
135
|
* ```ts
|
|
135
|
-
* const SaveDraft = Command.mutation(
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
* })
|
|
136
|
+
* const SaveDraft = Command.mutation(
|
|
137
|
+
* "SaveDraft",
|
|
138
|
+
* refs.public.notes.insert,
|
|
139
|
+
* {
|
|
140
|
+
* messages: [SucceededSaveDraft, FailedSaveDraft],
|
|
141
|
+
* onSuccess: (noteId) => SucceededSaveDraft({ noteId }),
|
|
142
|
+
* onError: (error) => FailedSaveDraft({ message: String(error) }),
|
|
143
|
+
* interrupt: true,
|
|
144
|
+
* },
|
|
145
|
+
* );
|
|
141
146
|
* // In update:
|
|
142
147
|
* // [model, [SaveDraft.Interrupt((outcome) => CompletedCancelSaveDraft({ outcome }))]]
|
|
143
148
|
* ```
|
|
@@ -149,8 +154,8 @@ export declare const query: ReturnType<typeof makeFactory<Ref.AnyConfectPublicQu
|
|
|
149
154
|
*/
|
|
150
155
|
export declare const mutation: ReturnType<typeof makeFactory<Ref.AnyConfectPublicMutation>>;
|
|
151
156
|
/**
|
|
152
|
-
* A Foldkit Command definition for a Confect action whose Command args are
|
|
153
|
-
*
|
|
157
|
+
* A Foldkit Command definition for a Confect action whose Command args are the
|
|
158
|
+
* ref's args. See `query`.
|
|
154
159
|
*/
|
|
155
160
|
export declare const action: ReturnType<typeof makeFactory<Ref.AnyConfectPublicAction>>;
|
|
156
161
|
export {};
|
package/dist/Command.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,cAAc,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,MAAM,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,UAAU,IACzC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GACf,MAAM,CAAC,oBAAoB,GAC3B,MAAM,CAAC,WAAW,CAAC;AAEvB
|
|
1
|
+
{"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"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"}
|
package/dist/Command.js
CHANGED
|
@@ -18,8 +18,8 @@ const run = (handlers, invoke) => Effect.flatMap(Client, invoke).pipe(Effect.mat
|
|
|
18
18
|
}));
|
|
19
19
|
/**
|
|
20
20
|
* An execute body for a hand-written `Command.define`—every failure already
|
|
21
|
-
* folded into a Message. Reach for these when the factory below doesn't fit:
|
|
22
|
-
*
|
|
21
|
+
* folded into a Message. Reach for these when the factory below doesn't fit: a
|
|
22
|
+
* custom args schema, `interrupt`, or a Command that makes several calls.
|
|
23
23
|
*/
|
|
24
24
|
const queryEffect = (ref, handlers) => (...args) => run(handlers, (client) => client.query(ref, ...args));
|
|
25
25
|
/**
|
|
@@ -74,22 +74,26 @@ const makeFactory = (effectHelper) => {
|
|
|
74
74
|
* messages: [SucceededGetNote, FailedGetNote],
|
|
75
75
|
* onSuccess: (note) => SucceededGetNote({ note }),
|
|
76
76
|
* onError: (error) => FailedGetNote({ message: String(error) }),
|
|
77
|
-
* })
|
|
77
|
+
* });
|
|
78
78
|
* // In update:
|
|
79
79
|
* // [model, [FetchNote({ noteId })]]
|
|
80
80
|
* ```
|
|
81
81
|
*
|
|
82
82
|
* Pass `interrupt` to make invocations interruptible via the returned
|
|
83
|
-
* definition's `Interrupt` constructor—`true` keys them by the Command
|
|
84
|
-
*
|
|
83
|
+
* definition's `Interrupt` constructor—`true` keys them by the Command name, `{
|
|
84
|
+
* keyFields, toKey }` by a part derived from the ref's args:
|
|
85
85
|
*
|
|
86
86
|
* ```ts
|
|
87
|
-
* const SaveDraft = Command.mutation(
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* })
|
|
87
|
+
* const SaveDraft = Command.mutation(
|
|
88
|
+
* "SaveDraft",
|
|
89
|
+
* refs.public.notes.insert,
|
|
90
|
+
* {
|
|
91
|
+
* messages: [SucceededSaveDraft, FailedSaveDraft],
|
|
92
|
+
* onSuccess: (noteId) => SucceededSaveDraft({ noteId }),
|
|
93
|
+
* onError: (error) => FailedSaveDraft({ message: String(error) }),
|
|
94
|
+
* interrupt: true,
|
|
95
|
+
* },
|
|
96
|
+
* );
|
|
93
97
|
* // In update:
|
|
94
98
|
* // [model, [SaveDraft.Interrupt((outcome) => CompletedCancelSaveDraft({ outcome }))]]
|
|
95
99
|
* ```
|
|
@@ -101,8 +105,8 @@ const query = makeFactory(queryEffect);
|
|
|
101
105
|
*/
|
|
102
106
|
const mutation = makeFactory(mutationEffect);
|
|
103
107
|
/**
|
|
104
|
-
* A Foldkit Command definition for a Confect action whose Command args are
|
|
105
|
-
*
|
|
108
|
+
* A Foldkit Command definition for a Confect action whose Command args are the
|
|
109
|
+
* ref's args. See `query`.
|
|
106
110
|
*/
|
|
107
111
|
const action = makeFactory(actionEffect);
|
|
108
112
|
//#endregion
|
package/dist/Command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Command.js","names":["Client.Client"],"sources":["../src/Command.ts"],"sourcesContent":["import type * as Ref from \"@confect/core/Ref\";\nimport * as Effect from \"effect/Effect\";\nimport * as Match from \"effect/Match\";\nimport type * as Schema from \"effect/Schema\";\nimport * as FoldkitCommand from \"foldkit/command\";\nimport * as Client from \"./Client\";\n\n/**\n * Everything a Command against `Ref_` can fail with before it is folded into\n * an `onError` Message: the ref's typed error (if it declares an `error`\n * schema), a transport-level `WebSocketClientError`, or a `SchemaError` from\n * encoding args or decoding returns.\n */\nexport type Error<Ref_ extends Ref.AnyConfect> =\n | Ref.Error<Ref_>\n | Client.WebSocketClientError\n | Schema.SchemaError;\n\n/**\n * Maps a Confect function's outcome into the app's Messages. Every failure—the ref's typed error, a transport error, or a codec error—arrives via\n * `onError`, so the resulting Command's error channel is `never`, as Foldkit\n * requires. Follow Foldkit's naming convention: past-tense facts like\n * `SucceededSaveNote`/`FailedSaveNote`.\n */\nexport interface Handlers<\n Ref_ extends Ref.AnyConfect,\n SuccessMessage,\n ErrorMessage,\n> {\n readonly onSuccess: (returns: Ref.Returns<Ref_>) => SuccessMessage;\n readonly onError: (error: Error<Ref_>) => ErrorMessage;\n}\n\n/**\n * The Command instance a definition call constructs.\n */\ntype Instance<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n Message,\n> = Readonly<{\n name: Name;\n args: Ref.Args<Ref_>;\n effect: Effect.Effect<Message, never, Client.Client>;\n}>;\n\ntype SchemaArgs<Ref_ extends Ref.AnyConfect> = Schema.Schema.Type<\n Schema.Struct<Ref.ArgsSchema<Ref_>[\"fields\"]>\n>;\n\n/**\n * A Foldkit Command definition whose args are the ref's args: our\n * ref-derived call signature (args optional when the ref declares none)\n * intersected with Foldkit's own `CommandDefinitionWithArgs`, which supplies\n * the `CommandDefinitionTypeId` brand and makes the definition assignable\n * wherever Foldkit accepts one—including Story/Scene `Command.resolve`\n * and `expectExact` matchers. Call it from `update` to construct a Command\n * instance; nothing runs until the Foldkit runtime executes it.\n */\nexport type Definition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n Message,\n> = ((...args: Ref.OptionalArgs<Ref_>) => Instance<Name, Ref_, Message>) &\n FoldkitCommand.CommandDefinitionWithArgs<\n Name,\n Ref.ArgsSchema<Ref_>[\"fields\"],\n Effect.Effect<Message, never, Client.Client>\n >;\n\n/**\n * Makes a factory-built Command interruptible—Foldkit's `InterruptOption`\n * applied to the ref's args. `true` keys every invocation by the Command\n * name—right when at most one invocation is meaningfully in flight; a\n * `KeyedInterrupt` derives the key part from the ref's args, so concurrent\n * invocations can be targeted independently.\n *\n * Interrupting stops the client-side Effect and guarantees the invocation's\n * result Messages never dispatch—it does not cancel the Convex function on\n * the server, which runs to completion once the call is on the wire.\n */\nexport type InterruptOption<\n Ref_ extends Ref.AnyConfect,\n KeyField extends keyof SchemaArgs<Ref_> & string = keyof SchemaArgs<Ref_> &\n string,\n> = FoldkitCommand.InterruptOption<SchemaArgs<Ref_>, KeyField>;\n\n/**\n * The keyed arm of `InterruptOption`: `keyFields` declares the args the\n * `Interrupt` constructor requires; `toKey` derives the key part from them.\n */\nexport type KeyedInterrupt<\n Ref_ extends Ref.AnyConfect,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n> = Exclude<InterruptOption<Ref_, KeyField>, true>;\n\n/**\n * An interruptible Command definition whose key is the Command name—the\n * ref-derived call signature intersected with Foldkit's\n * `Interruptible.DefinitionWithArgsNameKeyed`, which supplies the brand and\n * the `Interrupt` constructor.\n */\nexport type InterruptibleDefinition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n Message,\n> = ((\n ...args: Ref.OptionalArgs<Ref_>\n) => Instance<Name, Ref_, Message> & Readonly<{ key: string }>) &\n FoldkitCommand.Interruptible.DefinitionWithArgsNameKeyed<\n Name,\n Ref.ArgsSchema<Ref_>[\"fields\"],\n Effect.Effect<Message, never, Client.Client>\n >;\n\n/**\n * An interruptible Command definition whose key is derived from the ref's\n * args—the ref-derived call signature intersected with Foldkit's\n * `Interruptible.DefinitionWithArgs`, which supplies the brand and the\n * key-args-taking `Interrupt` constructor.\n */\nexport type KeyedInterruptibleDefinition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n Message,\n> = ((\n ...args: Ref.OptionalArgs<Ref_>\n) => Instance<Name, Ref_, Message> & Readonly<{ key: string }>) &\n FoldkitCommand.Interruptible.DefinitionWithArgs<\n Name,\n Ref.ArgsSchema<Ref_>[\"fields\"],\n Pick<SchemaArgs<Ref_>, KeyField>,\n Effect.Effect<Message, never, Client.Client>\n >;\n\nconst run = <Ref_ extends Ref.AnyConfect, SuccessMessage, ErrorMessage>(\n handlers: Handlers<Ref_, SuccessMessage, ErrorMessage>,\n invoke: (\n client: Client.Client,\n ) => Effect.Effect<Ref.Returns<Ref_>, Error<Ref_>>,\n): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n Effect.flatMap(Client.Client, invoke).pipe(\n Effect.match({\n onSuccess: handlers.onSuccess,\n onFailure: handlers.onError,\n }),\n );\n\n/**\n * An execute body for a hand-written `Command.define`—every failure already\n * folded into a Message. Reach for these when the factory below doesn't fit:\n * a custom args schema, `interrupt`, or a Command that makes several calls.\n */\nexport const queryEffect =\n <Query extends Ref.AnyConfectPublicQuery, SuccessMessage, ErrorMessage>(\n ref: Query,\n handlers: Handlers<Query, SuccessMessage, ErrorMessage>,\n ) =>\n (\n ...args: Ref.OptionalArgs<Query>\n ): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n run(handlers, (client) => client.query(ref, ...args));\n\n/**\n * An execute body for a hand-written `Command.define`—every failure already\n * folded into a Message. See `queryEffect`.\n */\nexport const mutationEffect =\n <Mutation extends Ref.AnyConfectPublicMutation, SuccessMessage, ErrorMessage>(\n ref: Mutation,\n handlers: Handlers<Mutation, SuccessMessage, ErrorMessage>,\n ) =>\n (\n ...args: Ref.OptionalArgs<Mutation>\n ): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n run(handlers, (client) => client.mutation(ref, ...args));\n\n/**\n * An execute body for a hand-written `Command.define`—every failure already\n * folded into a Message. See `queryEffect`.\n */\nexport const actionEffect =\n <Action extends Ref.AnyConfectPublicAction, SuccessMessage, ErrorMessage>(\n ref: Action,\n handlers: Handlers<Action, SuccessMessage, ErrorMessage>,\n ) =>\n (\n ...args: Ref.OptionalArgs<Action>\n ): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n run(handlers, (client) => client.action(ref, ...args));\n\ntype RunWithArgs<Ref_ extends Ref.AnyConfect, Message> = (\n ...args: Ref.OptionalArgs<Ref_>\n) => Effect.Effect<Message, never, Client.Client>;\n\nfunction makeDefinition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n SuccessMessage,\n ErrorMessage,\n KeyField extends keyof SchemaArgs<Ref_> & string = keyof SchemaArgs<Ref_> &\n string,\n>(\n name: Name,\n ref: Ref_,\n messages: ReadonlyArray<Schema.Top>,\n runWithArgs: RunWithArgs<Ref_, SuccessMessage | ErrorMessage>,\n interrupt?: InterruptOption<Ref_, KeyField>,\n): Definition<Name, Ref_, SuccessMessage | ErrorMessage> {\n type Fields = Ref.ArgsSchema<Ref_>[\"fields\"];\n type FoldkitArgs = SchemaArgs<Ref_>;\n\n const fields: Fields = ref.args.fields;\n const execute = (args: FoldkitArgs | undefined) =>\n runWithArgs(\n ...((args === undefined ? [] : [args]) as Ref.OptionalArgs<Ref_>),\n );\n\n return Match.value(interrupt).pipe(\n Match.withReturnType<\n Definition<Name, Ref_, SuccessMessage | ErrorMessage>\n >(),\n Match.when(\n undefined,\n () =>\n FoldkitCommand.define(name, {\n args: fields,\n messages,\n execute,\n }) as Definition<Name, Ref_, SuccessMessage | ErrorMessage>,\n ),\n Match.when(\n true,\n (nameKeyedInterrupt) =>\n FoldkitCommand.define(name, {\n args: fields,\n messages,\n interrupt: nameKeyedInterrupt,\n execute,\n }) as InterruptibleDefinition<\n Name,\n Ref_,\n SuccessMessage | ErrorMessage\n >,\n ),\n Match.when(Match.defined, (keyedInterrupt) => {\n const definition: FoldkitCommand.CommandDefinitionWithArgs<\n Name,\n Fields,\n ReturnType<typeof execute>\n > = FoldkitCommand.define(name, {\n args: fields,\n messages,\n interrupt: keyedInterrupt,\n execute,\n });\n return definition as Definition<\n Name,\n Ref_,\n SuccessMessage | ErrorMessage\n >;\n }),\n Match.exhaustive,\n );\n}\n\ntype FactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n> = Handlers<Ref_, SuccessMessage, ErrorMessage> & {\n readonly messages: Messages;\n};\n\ntype KeyedFactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n> = FactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage> & {\n readonly interrupt: KeyedInterrupt<Ref_, KeyField>;\n};\n\ntype NameKeyedFactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n> = FactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage> & {\n readonly interrupt: true;\n};\n\ntype StandardFactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n> = FactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage> & {\n readonly interrupt?: never;\n};\n\n/**\n * Builds the overload set for one ref kind. Each arm preserves whether\n * `interrupt` is absent, `true`, or args-keyed all the way to\n * `makeDefinition`.\n */\nconst makeFactory = <BoundRef extends Ref.AnyConfect>(\n effectHelper: <Ref_ extends BoundRef, SuccessMessage, ErrorMessage>(\n ref: Ref_,\n handlers: Handlers<Ref_, SuccessMessage, ErrorMessage>,\n ) => RunWithArgs<Ref_, SuccessMessage | ErrorMessage>,\n) => {\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n const Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage extends Schema.Schema.Type<Messages[number]>,\n ErrorMessage extends Schema.Schema.Type<Messages[number]>,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n >(\n name: Name,\n ref: Ref_,\n config: KeyedFactoryConfig<\n Ref_,\n Messages,\n SuccessMessage,\n ErrorMessage,\n KeyField\n >,\n ): KeyedInterruptibleDefinition<\n Name,\n Ref_,\n KeyField,\n SuccessMessage | ErrorMessage\n >;\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n const Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage extends Schema.Schema.Type<Messages[number]>,\n ErrorMessage extends Schema.Schema.Type<Messages[number]>,\n >(\n name: Name,\n ref: Ref_,\n config: NameKeyedFactoryConfig<\n Ref_,\n Messages,\n SuccessMessage,\n ErrorMessage\n >,\n ): InterruptibleDefinition<Name, Ref_, SuccessMessage | ErrorMessage>;\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n const Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage extends Schema.Schema.Type<Messages[number]>,\n ErrorMessage extends Schema.Schema.Type<Messages[number]>,\n >(\n name: Name,\n ref: Ref_,\n config: StandardFactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage>,\n ): Definition<Name, Ref_, SuccessMessage | ErrorMessage>;\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n SuccessMessage,\n ErrorMessage,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n >(\n name: Name,\n ref: Ref_,\n config: FactoryConfig<\n Ref_,\n ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage\n > & {\n readonly interrupt?: InterruptOption<Ref_, KeyField>;\n },\n ): Definition<Name, Ref_, SuccessMessage | ErrorMessage> {\n const runWithArgs = effectHelper(ref, config);\n return Match.value(config.interrupt).pipe(\n Match.withReturnType<\n Definition<Name, Ref_, SuccessMessage | ErrorMessage>\n >(),\n Match.when(undefined, () =>\n makeDefinition(name, ref, config.messages, runWithArgs),\n ),\n Match.when(true, (interrupt) =>\n makeDefinition(name, ref, config.messages, runWithArgs, interrupt),\n ),\n Match.when(Match.defined, (interrupt) =>\n makeDefinition(name, ref, config.messages, runWithArgs, interrupt),\n ),\n Match.exhaustive,\n );\n }\n\n return factory;\n};\n\n/**\n * A Foldkit Command definition for a Confect query whose Command args are the\n * ref's args:\n *\n * ```ts\n * const FetchNote = Command.query(\"FetchNote\", refs.public.notes.get, {\n * messages: [SucceededGetNote, FailedGetNote],\n * onSuccess: (note) => SucceededGetNote({ note }),\n * onError: (error) => FailedGetNote({ message: String(error) }),\n * })\n * // In update:\n * // [model, [FetchNote({ noteId })]]\n * ```\n *\n * Pass `interrupt` to make invocations interruptible via the returned\n * definition's `Interrupt` constructor—`true` keys them by the Command\n * name, `{ keyFields, toKey }` by a part derived from the ref's args:\n *\n * ```ts\n * const SaveDraft = Command.mutation(\"SaveDraft\", refs.public.notes.insert, {\n * messages: [SucceededSaveDraft, FailedSaveDraft],\n * onSuccess: (noteId) => SucceededSaveDraft({ noteId }),\n * onError: (error) => FailedSaveDraft({ message: String(error) }),\n * interrupt: true,\n * })\n * // In update:\n * // [model, [SaveDraft.Interrupt((outcome) => CompletedCancelSaveDraft({ outcome }))]]\n * ```\n */\nexport const query: ReturnType<typeof makeFactory<Ref.AnyConfectPublicQuery>> =\n makeFactory(queryEffect);\n\n/**\n * A Foldkit Command definition for a Confect mutation whose Command args are\n * the ref's args. See `query`.\n */\nexport const mutation: ReturnType<\n typeof makeFactory<Ref.AnyConfectPublicMutation>\n> = makeFactory(mutationEffect);\n\n/**\n * A Foldkit Command definition for a Confect action whose Command args are\n * the ref's args. See `query`.\n */\nexport const action: ReturnType<\n typeof makeFactory<Ref.AnyConfectPublicAction>\n> = makeFactory(actionEffect);\n"],"mappings":";;;;;;;;;;;;;;AAwIA,MAAM,OACJ,UACA,WAIA,OAAO,QAAQA,QAAe,MAAM,CAAC,CAAC,KACpC,OAAO,MAAM;CACX,WAAW,SAAS;CACpB,WAAW,SAAS;AACtB,CAAC,CACH;;;;;;AAOF,MAAa,eAET,KACA,cAGA,GAAG,SAEH,IAAI,WAAW,WAAW,OAAO,MAAM,KAAK,GAAG,IAAI,CAAC;;;;;AAMxD,MAAa,kBAET,KACA,cAGA,GAAG,SAEH,IAAI,WAAW,WAAW,OAAO,SAAS,KAAK,GAAG,IAAI,CAAC;;;;;AAM3D,MAAa,gBAET,KACA,cAGA,GAAG,SAEH,IAAI,WAAW,WAAW,OAAO,OAAO,KAAK,GAAG,IAAI,CAAC;AAMzD,SAAS,eAQP,MACA,KACA,UACA,aACA,WACuD;CAIvD,MAAM,SAAiB,IAAI,KAAK;CAChC,MAAM,WAAW,SACf,YACE,GAAK,SAAS,KAAA,IAAY,CAAC,IAAI,CAAC,IAAI,CACtC;CAEF,OAAO,MAAM,MAAM,SAAS,CAAC,CAAC,KAC5B,MAAM,eAEJ,GACF,MAAM,KACJ,KAAA,SAEE,eAAe,OAAO,MAAM;EAC1B,MAAM;EACN;EACA;CACF,CAAC,CACL,GACA,MAAM,KACJ,OACC,uBACC,eAAe,OAAO,MAAM;EAC1B,MAAM;EACN;EACA,WAAW;EACX;CACF,CAAC,CAKL,GACA,MAAM,KAAK,MAAM,UAAU,mBAAmB;EAW5C,OANI,eAAe,OAAO,MAAM;GAC9B,MAAM;GACN;GACA,WAAW;GACX;EACF,CACgB;CAKlB,CAAC,GACD,MAAM,UACR;AACF;;;;;;AA4CA,MAAM,eACJ,iBAIG;CAmDH,SAAS,QAOP,MACA,KACA,QAQuD;EACvD,MAAM,cAAc,aAAa,KAAK,MAAM;EAC5C,OAAO,MAAM,MAAM,OAAO,SAAS,CAAC,CAAC,KACnC,MAAM,eAEJ,GACF,MAAM,KAAK,KAAA,SACT,eAAe,MAAM,KAAK,OAAO,UAAU,WAAW,CACxD,GACA,MAAM,KAAK,OAAO,cAChB,eAAe,MAAM,KAAK,OAAO,UAAU,aAAa,SAAS,CACnE,GACA,MAAM,KAAK,MAAM,UAAU,cACzB,eAAe,MAAM,KAAK,OAAO,UAAU,aAAa,SAAS,CACnE,GACA,MAAM,UACR;CACF;CAEA,OAAO;AACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAa,QACX,YAAY,WAAW;;;;;AAMzB,MAAa,WAET,YAAY,cAAc;;;;;AAM9B,MAAa,SAET,YAAY,YAAY"}
|
|
1
|
+
{"version":3,"file":"Command.js","names":["Client.Client"],"sources":["../src/Command.ts"],"sourcesContent":["import type * as Ref from \"@confect/core/Ref\";\nimport * as Effect from \"effect/Effect\";\nimport * as Match from \"effect/Match\";\nimport type * as Schema from \"effect/Schema\";\nimport * as FoldkitCommand from \"foldkit/command\";\nimport * as Client from \"./Client\";\n\n/**\n * Everything a Command against `Ref_` can fail with before it is folded into an\n * `onError` Message: the ref's typed error (if it declares an `error` schema),\n * a transport-level `WebSocketClientError`, or a `SchemaError` from encoding\n * args or decoding returns.\n */\nexport type Error<Ref_ extends Ref.AnyConfect> =\n | Ref.Error<Ref_>\n | Client.WebSocketClientError\n | Schema.SchemaError;\n\n/**\n * Maps a Confect function's outcome into the app's Messages. Every failure—the\n * ref's typed error, a transport error, or a codec error—arrives via `onError`,\n * so the resulting Command's error channel is `never`, as Foldkit requires.\n * Follow Foldkit's naming convention: past-tense facts like\n * `SucceededSaveNote`/`FailedSaveNote`.\n */\nexport interface Handlers<\n Ref_ extends Ref.AnyConfect,\n SuccessMessage,\n ErrorMessage,\n> {\n readonly onSuccess: (returns: Ref.Returns<Ref_>) => SuccessMessage;\n readonly onError: (error: Error<Ref_>) => ErrorMessage;\n}\n\n/**\n * The Command instance a definition call constructs.\n */\ntype Instance<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n Message,\n> = Readonly<{\n name: Name;\n args: Ref.Args<Ref_>;\n effect: Effect.Effect<Message, never, Client.Client>;\n}>;\n\ntype SchemaArgs<Ref_ extends Ref.AnyConfect> = Schema.Schema.Type<\n Schema.Struct<Ref.ArgsSchema<Ref_>[\"fields\"]>\n>;\n\n/**\n * A Foldkit Command definition whose args are the ref's args: our ref-derived\n * call signature (args optional when the ref declares none) intersected with\n * Foldkit's own `CommandDefinitionWithArgs`, which supplies the\n * `CommandDefinitionTypeId` brand and makes the definition assignable wherever\n * Foldkit accepts one—including Story/Scene `Command.resolve` and `expectExact`\n * matchers. Call it from `update` to construct a Command instance; nothing runs\n * until the Foldkit runtime executes it.\n */\nexport type Definition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n Message,\n> = ((...args: Ref.OptionalArgs<Ref_>) => Instance<Name, Ref_, Message>) &\n FoldkitCommand.CommandDefinitionWithArgs<\n Name,\n Ref.ArgsSchema<Ref_>[\"fields\"],\n Effect.Effect<Message, never, Client.Client>\n >;\n\n/**\n * Makes a factory-built Command interruptible—Foldkit's `InterruptOption`\n * applied to the ref's args. `true` keys every invocation by the Command\n * name—right when at most one invocation is meaningfully in flight; a\n * `KeyedInterrupt` derives the key part from the ref's args, so concurrent\n * invocations can be targeted independently.\n *\n * Interrupting stops the client-side Effect and guarantees the invocation's\n * result Messages never dispatch—it does not cancel the Convex function on the\n * server, which runs to completion once the call is on the wire.\n */\nexport type InterruptOption<\n Ref_ extends Ref.AnyConfect,\n KeyField extends keyof SchemaArgs<Ref_> & string = keyof SchemaArgs<Ref_> &\n string,\n> = FoldkitCommand.InterruptOption<SchemaArgs<Ref_>, KeyField>;\n\n/**\n * The keyed arm of `InterruptOption`: `keyFields` declares the args the\n * `Interrupt` constructor requires; `toKey` derives the key part from them.\n */\nexport type KeyedInterrupt<\n Ref_ extends Ref.AnyConfect,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n> = Exclude<InterruptOption<Ref_, KeyField>, true>;\n\n/**\n * An interruptible Command definition whose key is the Command name—the\n * ref-derived call signature intersected with Foldkit's\n * `Interruptible.DefinitionWithArgsNameKeyed`, which supplies the brand and the\n * `Interrupt` constructor.\n */\nexport type InterruptibleDefinition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n Message,\n> = ((\n ...args: Ref.OptionalArgs<Ref_>\n) => Instance<Name, Ref_, Message> & Readonly<{ key: string }>) &\n FoldkitCommand.Interruptible.DefinitionWithArgsNameKeyed<\n Name,\n Ref.ArgsSchema<Ref_>[\"fields\"],\n Effect.Effect<Message, never, Client.Client>\n >;\n\n/**\n * An interruptible Command definition whose key is derived from the ref's\n * args—the ref-derived call signature intersected with Foldkit's\n * `Interruptible.DefinitionWithArgs`, which supplies the brand and the\n * key-args-taking `Interrupt` constructor.\n */\nexport type KeyedInterruptibleDefinition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n Message,\n> = ((\n ...args: Ref.OptionalArgs<Ref_>\n) => Instance<Name, Ref_, Message> & Readonly<{ key: string }>) &\n FoldkitCommand.Interruptible.DefinitionWithArgs<\n Name,\n Ref.ArgsSchema<Ref_>[\"fields\"],\n Pick<SchemaArgs<Ref_>, KeyField>,\n Effect.Effect<Message, never, Client.Client>\n >;\n\nconst run = <Ref_ extends Ref.AnyConfect, SuccessMessage, ErrorMessage>(\n handlers: Handlers<Ref_, SuccessMessage, ErrorMessage>,\n invoke: (\n client: Client.Client,\n ) => Effect.Effect<Ref.Returns<Ref_>, Error<Ref_>>,\n): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n Effect.flatMap(Client.Client, invoke).pipe(\n Effect.match({\n onSuccess: handlers.onSuccess,\n onFailure: handlers.onError,\n }),\n );\n\n/**\n * An execute body for a hand-written `Command.define`—every failure already\n * folded into a Message. Reach for these when the factory below doesn't fit: a\n * custom args schema, `interrupt`, or a Command that makes several calls.\n */\nexport const queryEffect =\n <Query extends Ref.AnyConfectPublicQuery, SuccessMessage, ErrorMessage>(\n ref: Query,\n handlers: Handlers<Query, SuccessMessage, ErrorMessage>,\n ) =>\n (\n ...args: Ref.OptionalArgs<Query>\n ): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n run(handlers, (client) => client.query(ref, ...args));\n\n/**\n * An execute body for a hand-written `Command.define`—every failure already\n * folded into a Message. See `queryEffect`.\n */\nexport const mutationEffect =\n <Mutation extends Ref.AnyConfectPublicMutation, SuccessMessage, ErrorMessage>(\n ref: Mutation,\n handlers: Handlers<Mutation, SuccessMessage, ErrorMessage>,\n ) =>\n (\n ...args: Ref.OptionalArgs<Mutation>\n ): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n run(handlers, (client) => client.mutation(ref, ...args));\n\n/**\n * An execute body for a hand-written `Command.define`—every failure already\n * folded into a Message. See `queryEffect`.\n */\nexport const actionEffect =\n <Action extends Ref.AnyConfectPublicAction, SuccessMessage, ErrorMessage>(\n ref: Action,\n handlers: Handlers<Action, SuccessMessage, ErrorMessage>,\n ) =>\n (\n ...args: Ref.OptionalArgs<Action>\n ): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n run(handlers, (client) => client.action(ref, ...args));\n\ntype RunWithArgs<Ref_ extends Ref.AnyConfect, Message> = (\n ...args: Ref.OptionalArgs<Ref_>\n) => Effect.Effect<Message, never, Client.Client>;\n\nfunction makeDefinition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n SuccessMessage,\n ErrorMessage,\n KeyField extends keyof SchemaArgs<Ref_> & string = keyof SchemaArgs<Ref_> &\n string,\n>(\n name: Name,\n ref: Ref_,\n messages: ReadonlyArray<Schema.Top>,\n runWithArgs: RunWithArgs<Ref_, SuccessMessage | ErrorMessage>,\n interrupt?: InterruptOption<Ref_, KeyField>,\n): Definition<Name, Ref_, SuccessMessage | ErrorMessage> {\n type Fields = Ref.ArgsSchema<Ref_>[\"fields\"];\n type FoldkitArgs = SchemaArgs<Ref_>;\n\n const fields: Fields = ref.args.fields;\n const execute = (args: FoldkitArgs | undefined) =>\n runWithArgs(\n ...((args === undefined ? [] : [args]) as Ref.OptionalArgs<Ref_>),\n );\n\n return Match.value(interrupt).pipe(\n Match.withReturnType<\n Definition<Name, Ref_, SuccessMessage | ErrorMessage>\n >(),\n Match.when(\n undefined,\n () =>\n FoldkitCommand.define(name, {\n args: fields,\n messages,\n execute,\n }) as Definition<Name, Ref_, SuccessMessage | ErrorMessage>,\n ),\n Match.when(\n true,\n (nameKeyedInterrupt) =>\n FoldkitCommand.define(name, {\n args: fields,\n messages,\n interrupt: nameKeyedInterrupt,\n execute,\n }) as InterruptibleDefinition<\n Name,\n Ref_,\n SuccessMessage | ErrorMessage\n >,\n ),\n Match.when(Match.defined, (keyedInterrupt) => {\n const definition: FoldkitCommand.CommandDefinitionWithArgs<\n Name,\n Fields,\n ReturnType<typeof execute>\n > = FoldkitCommand.define(name, {\n args: fields,\n messages,\n interrupt: keyedInterrupt,\n execute,\n });\n return definition as Definition<\n Name,\n Ref_,\n SuccessMessage | ErrorMessage\n >;\n }),\n Match.exhaustive,\n );\n}\n\ntype FactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n> = Handlers<Ref_, SuccessMessage, ErrorMessage> & {\n readonly messages: Messages;\n};\n\ntype KeyedFactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n> = FactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage> & {\n readonly interrupt: KeyedInterrupt<Ref_, KeyField>;\n};\n\ntype NameKeyedFactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n> = FactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage> & {\n readonly interrupt: true;\n};\n\ntype StandardFactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n> = FactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage> & {\n readonly interrupt?: never;\n};\n\n/**\n * Builds the overload set for one ref kind. Each arm preserves whether\n * `interrupt` is absent, `true`, or args-keyed all the way to\n * `makeDefinition`.\n */\nconst makeFactory = <BoundRef extends Ref.AnyConfect>(\n effectHelper: <Ref_ extends BoundRef, SuccessMessage, ErrorMessage>(\n ref: Ref_,\n handlers: Handlers<Ref_, SuccessMessage, ErrorMessage>,\n ) => RunWithArgs<Ref_, SuccessMessage | ErrorMessage>,\n) => {\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n const Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage extends Schema.Schema.Type<Messages[number]>,\n ErrorMessage extends Schema.Schema.Type<Messages[number]>,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n >(\n name: Name,\n ref: Ref_,\n config: KeyedFactoryConfig<\n Ref_,\n Messages,\n SuccessMessage,\n ErrorMessage,\n KeyField\n >,\n ): KeyedInterruptibleDefinition<\n Name,\n Ref_,\n KeyField,\n SuccessMessage | ErrorMessage\n >;\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n const Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage extends Schema.Schema.Type<Messages[number]>,\n ErrorMessage extends Schema.Schema.Type<Messages[number]>,\n >(\n name: Name,\n ref: Ref_,\n config: NameKeyedFactoryConfig<\n Ref_,\n Messages,\n SuccessMessage,\n ErrorMessage\n >,\n ): InterruptibleDefinition<Name, Ref_, SuccessMessage | ErrorMessage>;\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n const Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage extends Schema.Schema.Type<Messages[number]>,\n ErrorMessage extends Schema.Schema.Type<Messages[number]>,\n >(\n name: Name,\n ref: Ref_,\n config: StandardFactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage>,\n ): Definition<Name, Ref_, SuccessMessage | ErrorMessage>;\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n SuccessMessage,\n ErrorMessage,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n >(\n name: Name,\n ref: Ref_,\n config: FactoryConfig<\n Ref_,\n ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage\n > & {\n readonly interrupt?: InterruptOption<Ref_, KeyField>;\n },\n ): Definition<Name, Ref_, SuccessMessage | ErrorMessage> {\n const runWithArgs = effectHelper(ref, config);\n return Match.value(config.interrupt).pipe(\n Match.withReturnType<\n Definition<Name, Ref_, SuccessMessage | ErrorMessage>\n >(),\n Match.when(undefined, () =>\n makeDefinition(name, ref, config.messages, runWithArgs),\n ),\n Match.when(true, (interrupt) =>\n makeDefinition(name, ref, config.messages, runWithArgs, interrupt),\n ),\n Match.when(Match.defined, (interrupt) =>\n makeDefinition(name, ref, config.messages, runWithArgs, interrupt),\n ),\n Match.exhaustive,\n );\n }\n\n return factory;\n};\n\n/**\n * A Foldkit Command definition for a Confect query whose Command args are the\n * ref's args:\n *\n * ```ts\n * const FetchNote = Command.query(\"FetchNote\", refs.public.notes.get, {\n * messages: [SucceededGetNote, FailedGetNote],\n * onSuccess: (note) => SucceededGetNote({ note }),\n * onError: (error) => FailedGetNote({ message: String(error) }),\n * });\n * // In update:\n * // [model, [FetchNote({ noteId })]]\n * ```\n *\n * Pass `interrupt` to make invocations interruptible via the returned\n * definition's `Interrupt` constructor—`true` keys them by the Command name, `{\n * keyFields, toKey }` by a part derived from the ref's args:\n *\n * ```ts\n * const SaveDraft = Command.mutation(\n * \"SaveDraft\",\n * refs.public.notes.insert,\n * {\n * messages: [SucceededSaveDraft, FailedSaveDraft],\n * onSuccess: (noteId) => SucceededSaveDraft({ noteId }),\n * onError: (error) => FailedSaveDraft({ message: String(error) }),\n * interrupt: true,\n * },\n * );\n * // In update:\n * // [model, [SaveDraft.Interrupt((outcome) => CompletedCancelSaveDraft({ outcome }))]]\n * ```\n */\nexport const query: ReturnType<typeof makeFactory<Ref.AnyConfectPublicQuery>> =\n makeFactory(queryEffect);\n\n/**\n * A Foldkit Command definition for a Confect mutation whose Command args are\n * the ref's args. See `query`.\n */\nexport const mutation: ReturnType<\n typeof makeFactory<Ref.AnyConfectPublicMutation>\n> = makeFactory(mutationEffect);\n\n/**\n * A Foldkit Command definition for a Confect action whose Command args are the\n * ref's args. See `query`.\n */\nexport const action: ReturnType<\n typeof makeFactory<Ref.AnyConfectPublicAction>\n> = makeFactory(actionEffect);\n"],"mappings":";;;;;;;;;;;;;;AAyIA,MAAM,OACJ,UACA,WAIA,OAAO,QAAQA,QAAe,MAAM,CAAC,CAAC,KACpC,OAAO,MAAM;CACX,WAAW,SAAS;CACpB,WAAW,SAAS;AACtB,CAAC,CACH;;;;;;AAOF,MAAa,eAET,KACA,cAGA,GAAG,SAEH,IAAI,WAAW,WAAW,OAAO,MAAM,KAAK,GAAG,IAAI,CAAC;;;;;AAMxD,MAAa,kBAET,KACA,cAGA,GAAG,SAEH,IAAI,WAAW,WAAW,OAAO,SAAS,KAAK,GAAG,IAAI,CAAC;;;;;AAM3D,MAAa,gBAET,KACA,cAGA,GAAG,SAEH,IAAI,WAAW,WAAW,OAAO,OAAO,KAAK,GAAG,IAAI,CAAC;AAMzD,SAAS,eAQP,MACA,KACA,UACA,aACA,WACuD;CAIvD,MAAM,SAAiB,IAAI,KAAK;CAChC,MAAM,WAAW,SACf,YACE,GAAK,SAAS,KAAA,IAAY,CAAC,IAAI,CAAC,IAAI,CACtC;CAEF,OAAO,MAAM,MAAM,SAAS,CAAC,CAAC,KAC5B,MAAM,eAEJ,GACF,MAAM,KACJ,KAAA,SAEE,eAAe,OAAO,MAAM;EAC1B,MAAM;EACN;EACA;CACF,CAAC,CACL,GACA,MAAM,KACJ,OACC,uBACC,eAAe,OAAO,MAAM;EAC1B,MAAM;EACN;EACA,WAAW;EACX;CACF,CAAC,CAKL,GACA,MAAM,KAAK,MAAM,UAAU,mBAAmB;EAW5C,OANI,eAAe,OAAO,MAAM;GAC9B,MAAM;GACN;GACA,WAAW;GACX;EACF,CACgB;CAKlB,CAAC,GACD,MAAM,UACR;AACF;;;;;;AA4CA,MAAM,eACJ,iBAIG;CAmDH,SAAS,QAOP,MACA,KACA,QAQuD;EACvD,MAAM,cAAc,aAAa,KAAK,MAAM;EAC5C,OAAO,MAAM,MAAM,OAAO,SAAS,CAAC,CAAC,KACnC,MAAM,eAEJ,GACF,MAAM,KAAK,KAAA,SACT,eAAe,MAAM,KAAK,OAAO,UAAU,WAAW,CACxD,GACA,MAAM,KAAK,OAAO,cAChB,eAAe,MAAM,KAAK,OAAO,UAAU,aAAa,SAAS,CACnE,GACA,MAAM,KAAK,MAAM,UAAU,cACzB,eAAe,MAAM,KAAK,OAAO,UAAU,aAAa,SAAS,CACnE,GACA,MAAM,UACR;CACF;CAEA,OAAO;AACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,MAAa,QACX,YAAY,WAAW;;;;;AAMzB,MAAa,WAET,YAAY,cAAc;;;;;AAM9B,MAAa,SAET,YAAY,YAAY"}
|
package/dist/PaginatedQuery.d.ts
CHANGED
|
@@ -5,7 +5,9 @@ import * as Option from "effect/Option";
|
|
|
5
5
|
import * as Result from "effect/Result";
|
|
6
6
|
import * as Schema from "effect/Schema";
|
|
7
7
|
import * as Client from "./Client";
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Identifies the cursor range fetched for one page.
|
|
10
|
+
*/
|
|
9
11
|
export interface PageDescriptor {
|
|
10
12
|
readonly cursor: string | null;
|
|
11
13
|
readonly endCursor: Option.Option<string>;
|
|
@@ -14,7 +16,9 @@ export declare const PageDescriptor: Schema.Struct<{
|
|
|
14
16
|
readonly cursor: Schema.Union<readonly [Schema.String, Schema.Null]>;
|
|
15
17
|
readonly endCursor: Schema.Option<Schema.String>;
|
|
16
18
|
}>;
|
|
17
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Options that remain fixed for one pagination session.
|
|
21
|
+
*/
|
|
18
22
|
export interface Options {
|
|
19
23
|
readonly initialNumItems: number;
|
|
20
24
|
readonly maximumRowsRead?: number;
|
|
@@ -25,9 +29,13 @@ export declare const Options: Schema.Struct<{
|
|
|
25
29
|
readonly maximumRowsRead: Schema.optionalKey<Schema.Int>;
|
|
26
30
|
readonly maximumBytesRead: Schema.optionalKey<Schema.Int>;
|
|
27
31
|
}>;
|
|
28
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Why the machine is fetching its current target.
|
|
34
|
+
*/
|
|
29
35
|
export type Direction = "Initial" | "Next" | "Previous" | "First" | "Split" | "Reset";
|
|
30
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* A complete page that can remain on screen while another page is fetched.
|
|
38
|
+
*/
|
|
31
39
|
export interface Page<Item_> {
|
|
32
40
|
readonly descriptor: PageDescriptor;
|
|
33
41
|
readonly number: number;
|
|
@@ -63,13 +71,17 @@ export type Stale<Item_, Error_> = Data.TaggedEnum<{
|
|
|
63
71
|
};
|
|
64
72
|
}>;
|
|
65
73
|
export type Phase<Item_, Error_> = Loading | Refreshing<Item_> | Success<Item_> | Failure<Error_> | Stale<Item_, Error_>;
|
|
66
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* A closed machine that retains its generation for stale-result rejection.
|
|
76
|
+
*/
|
|
67
77
|
export type Idle = Data.TaggedEnum<{
|
|
68
78
|
Idle: {
|
|
69
79
|
readonly generation: number;
|
|
70
80
|
};
|
|
71
81
|
}>;
|
|
72
|
-
/**
|
|
82
|
+
/**
|
|
83
|
+
* A live cursor-pagination session.
|
|
84
|
+
*/
|
|
73
85
|
export type Active<Item_, UserArgs_, Error_> = Data.TaggedEnum<{
|
|
74
86
|
Active: {
|
|
75
87
|
readonly generation: number;
|
|
@@ -82,9 +94,13 @@ export type Active<Item_, UserArgs_, Error_> = Data.TaggedEnum<{
|
|
|
82
94
|
readonly phase: Phase<Item_, Error_>;
|
|
83
95
|
};
|
|
84
96
|
}>;
|
|
85
|
-
/**
|
|
97
|
+
/**
|
|
98
|
+
* A schema-backed cursor-pagination machine.
|
|
99
|
+
*/
|
|
86
100
|
export type State<Item_, UserArgs_, Error_> = Idle | Active<Item_, UserArgs_, Error_>;
|
|
87
|
-
/**
|
|
101
|
+
/**
|
|
102
|
+
* The logical request from which a subscription allocates a session id.
|
|
103
|
+
*/
|
|
88
104
|
export interface SubscriptionRequest<UserArgs_> {
|
|
89
105
|
readonly generation: number;
|
|
90
106
|
readonly args: UserArgs_;
|
|
@@ -93,7 +109,9 @@ export interface SubscriptionRequest<UserArgs_> {
|
|
|
93
109
|
readonly requestId: number;
|
|
94
110
|
readonly descriptor: PageDescriptor;
|
|
95
111
|
}
|
|
96
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* The complete identity and arguments of a subscribed page request.
|
|
114
|
+
*/
|
|
97
115
|
export interface Request<UserArgs_> {
|
|
98
116
|
readonly generation: number;
|
|
99
117
|
readonly args: UserArgs_;
|
|
@@ -102,7 +120,9 @@ export interface Request<UserArgs_> {
|
|
|
102
120
|
readonly requestId: number;
|
|
103
121
|
readonly descriptor: PageDescriptor;
|
|
104
122
|
}
|
|
105
|
-
/**
|
|
123
|
+
/**
|
|
124
|
+
* The successful payload returned by a Convex paginated query.
|
|
125
|
+
*/
|
|
106
126
|
export interface PageResult<Item_> {
|
|
107
127
|
readonly page: ReadonlyArray<Item_>;
|
|
108
128
|
readonly isDone: boolean;
|
|
@@ -111,8 +131,8 @@ export interface PageResult<Item_> {
|
|
|
111
131
|
readonly pageStatus?: "SplitRecommended" | "SplitRequired" | null;
|
|
112
132
|
}
|
|
113
133
|
/**
|
|
114
|
-
* One correlated subscription outcome. Both success and failure travel
|
|
115
|
-
*
|
|
134
|
+
* One correlated subscription outcome. Both success and failure travel through
|
|
135
|
+
* this value so `settle` can mirror `AsyncData.settle`.
|
|
116
136
|
*/
|
|
117
137
|
export interface Settlement<Item_, UserArgs_, Error_> {
|
|
118
138
|
readonly request: Request<UserArgs_>;
|
|
@@ -125,23 +145,31 @@ type TaggedFunctionError<Error_> = Data.TaggedEnum<{
|
|
|
125
145
|
readonly error: Error_;
|
|
126
146
|
};
|
|
127
147
|
}>;
|
|
128
|
-
/**
|
|
148
|
+
/**
|
|
149
|
+
* Constructs a declared function or middleware failure envelope.
|
|
150
|
+
*/
|
|
129
151
|
export declare const FunctionError: <A>(args: {
|
|
130
152
|
readonly error: A;
|
|
131
153
|
}) => {
|
|
132
154
|
readonly _tag: "FunctionError";
|
|
133
155
|
readonly error: A;
|
|
134
156
|
};
|
|
135
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* A declared function or middleware failure, kept distinct from client errors.
|
|
159
|
+
*/
|
|
136
160
|
export type FunctionError<Query extends Ref.AnyConfectPublicPaginatedQuery> = [
|
|
137
161
|
Ref.Error<Query>
|
|
138
162
|
] extends [never] ? never : TaggedFunctionError<Ref.Error<Query>>;
|
|
139
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* Every failure a paginated query subscription can settle with.
|
|
165
|
+
*/
|
|
140
166
|
export type Error<Query extends Ref.AnyConfectPublicPaginatedQuery> = FunctionError<Query> | PaginationError.InvalidCursor | Client.WebSocketClientError | Schema.SchemaError;
|
|
141
167
|
export { InvalidCursor } from "@confect/core/PaginationError";
|
|
142
168
|
type MachineState<Query extends Ref.AnyConfectPublicPaginatedQuery> = State<Item<Query>, UserArgs<Query>, Error<Query>>;
|
|
143
169
|
type MachineActive<Query extends Ref.AnyConfectPublicPaginatedQuery> = Active<Item<Query>, UserArgs<Query>, Error<Query>>;
|
|
144
|
-
/**
|
|
170
|
+
/**
|
|
171
|
+
* The schema-and-constructor bundle returned by `make`.
|
|
172
|
+
*/
|
|
145
173
|
export interface PaginatedQuery<Query extends Ref.AnyConfectPublicPaginatedQuery> {
|
|
146
174
|
readonly ref: Query;
|
|
147
175
|
readonly schema: Schema.Codec<MachineState<Query>, unknown>;
|
|
@@ -153,33 +181,49 @@ export interface PaginatedQuery<Query extends Ref.AnyConfectPublicPaginatedQuery
|
|
|
153
181
|
readonly reinitialize: keyof UserArgs<Query> extends never ? (state: MachineActive<Query>, options?: Options) => MachineActive<Query> : (state: MachineActive<Query>, args: UserArgs<Query>, options?: Options) => MachineActive<Query>;
|
|
154
182
|
}
|
|
155
183
|
export type Any = PaginatedQuery<Ref.AnyConfectPublicPaginatedQuery>;
|
|
156
|
-
/**
|
|
184
|
+
/**
|
|
185
|
+
* Builds a page machine from a paginated ref.
|
|
186
|
+
*/
|
|
157
187
|
export declare const make: <Query extends Ref.AnyConfectPublicPaginatedQuery>(ref: Query) => PaginatedQuery<Query>;
|
|
158
|
-
/**
|
|
188
|
+
/**
|
|
189
|
+
* Returns the logical request currently driving the subscription.
|
|
190
|
+
*/
|
|
159
191
|
export declare const getSubscriptionRequest: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => SubscriptionRequest<UserArgs_>;
|
|
160
|
-
/**
|
|
192
|
+
/**
|
|
193
|
+
* Attaches the client-allocated pagination id to a logical request.
|
|
194
|
+
*/
|
|
161
195
|
export declare const allocateRequest: <UserArgs_>(request: SubscriptionRequest<UserArgs_>, paginationId: number) => Request<UserArgs_>;
|
|
162
|
-
/**
|
|
196
|
+
/**
|
|
197
|
+
* Close the subscription while retaining its generation tombstone.
|
|
198
|
+
*/
|
|
163
199
|
export declare const close: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => Idle;
|
|
164
|
-
/**
|
|
200
|
+
/**
|
|
201
|
+
* Start a fresh pagination session at page one while retaining visible data.
|
|
202
|
+
*/
|
|
165
203
|
export declare const reset: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => Active<Item_, UserArgs_, Error_>;
|
|
166
204
|
/**
|
|
167
205
|
* Navigate to the next page, retaining the current page while it loads.
|
|
168
206
|
*
|
|
169
|
-
* The page being left is pushed onto the stack
|
|
170
|
-
* displayed—its cursor to its continuation cursor—so `prev` reloads
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
207
|
+
* The page being left is pushed onto the stack _pinned_ to the range it
|
|
208
|
+
* displayed—its cursor to its continuation cursor—so `prev` reloads exactly
|
|
209
|
+
* that range rather than the first `initialNumItems` documents after its
|
|
210
|
+
* cursor, however the data has moved meanwhile. Convex's own pagination keeps
|
|
211
|
+
* that range in its query journal; stream-paginated queries have no journal, so
|
|
212
|
+
* the pin is what keeps consecutive pages gap-free and duplicate-free for
|
|
213
|
+
* them.
|
|
176
214
|
*/
|
|
177
215
|
export declare const next: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => Option.Option<Active<Item_, UserArgs_, Error_>>;
|
|
178
|
-
/**
|
|
216
|
+
/**
|
|
217
|
+
* Navigate to the previous page, retaining the current page while it loads.
|
|
218
|
+
*/
|
|
179
219
|
export declare const prev: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => Option.Option<Active<Item_, UserArgs_, Error_>>;
|
|
180
|
-
/**
|
|
220
|
+
/**
|
|
221
|
+
* Navigate to page one without invalidating the current pagination session.
|
|
222
|
+
*/
|
|
181
223
|
export declare const first: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => Option.Option<Active<Item_, UserArgs_, Error_>>;
|
|
182
|
-
/**
|
|
224
|
+
/**
|
|
225
|
+
* Whether a request still names the machine's live pagination session/page.
|
|
226
|
+
*/
|
|
183
227
|
export declare const isCurrentRequest: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>, candidate: Request<UserArgs_>) => boolean;
|
|
184
228
|
/**
|
|
185
229
|
* Fold a correlated `Result` into the machine. Like `AsyncData.settle`, a
|
|
@@ -191,13 +235,21 @@ export declare const settle: {
|
|
|
191
235
|
<Item_, UserArgs_, Error_>(settlement: Settlement<Item_, UserArgs_, Error_>): (state: State<Item_, UserArgs_, Error_>) => State<Item_, UserArgs_, Error_>;
|
|
192
236
|
<Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>, settlement: Settlement<Item_, UserArgs_, Error_>): State<Item_, UserArgs_, Error_>;
|
|
193
237
|
};
|
|
194
|
-
/**
|
|
238
|
+
/**
|
|
239
|
+
* The complete page currently available to render.
|
|
240
|
+
*/
|
|
195
241
|
export declare const getPage: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => Option.Option<Page<Item_>>;
|
|
196
|
-
/**
|
|
242
|
+
/**
|
|
243
|
+
* The items currently available to render.
|
|
244
|
+
*/
|
|
197
245
|
export declare const getItems: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => Option.Option<ReadonlyArray<Item_>>;
|
|
198
|
-
/**
|
|
246
|
+
/**
|
|
247
|
+
* The error from the most recent failed request, if any.
|
|
248
|
+
*/
|
|
199
249
|
export declare const getError: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => Option.Option<Error_>;
|
|
200
|
-
/**
|
|
250
|
+
/**
|
|
251
|
+
* The 1-indexed page number currently targeted by the subscription.
|
|
252
|
+
*/
|
|
201
253
|
export declare const targetPageNumber: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => number;
|
|
202
254
|
export declare const hasPage: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => boolean;
|
|
203
255
|
export declare const hasError: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => boolean;
|
|
@@ -215,7 +267,9 @@ export declare const isStale: <Item_, UserArgs_, Error_>(state: State<Item_, Use
|
|
|
215
267
|
export declare const isPending: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => boolean;
|
|
216
268
|
export declare const canNext: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => boolean;
|
|
217
269
|
export declare const canPrev: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => boolean;
|
|
218
|
-
/**
|
|
270
|
+
/**
|
|
271
|
+
* Pattern-match exhaustively on the machine's AsyncData-style state.
|
|
272
|
+
*/
|
|
219
273
|
export declare const match: {
|
|
220
274
|
<Item_, Error_, A, B, C, D, E, F>(handlers: {
|
|
221
275
|
readonly onIdle: (idle: Idle) => A;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaginatedQuery.d.ts","sourceRoot":"","sources":["../src/PaginatedQuery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PaginatedQuery.d.ts","sourceRoot":"","sources":["../src/PaginatedQuery.ts"],"names":[],"mappings":"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"}
|