effect-zero 0.9.0 → 0.9.1
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/dist/mutator.d.ts +15 -13
- package/dist/mutator.d.ts.map +1 -1
- package/dist/mutator.js.map +1 -1
- package/dist/types.test.js +33 -0
- package/dist/types.test.js.map +1 -1
- package/package.json +1 -1
- package/src/mutator.ts +24 -20
package/dist/mutator.d.ts
CHANGED
|
@@ -7,13 +7,14 @@ import { ContextSymbol } from "./client-transaction.js";
|
|
|
7
7
|
export declare const RegistryTypeId: unique symbol;
|
|
8
8
|
/**
|
|
9
9
|
* A mutator that isn't part of a registry yet, made with {@link make}. Like `defineMutator`, it gets its name
|
|
10
|
-
* from its path in the {@link registry}.
|
|
10
|
+
* from its path in the {@link registry}. `R` is the services its body requires, and `RD` the services decoding its
|
|
11
|
+
* payload requires.
|
|
11
12
|
*/
|
|
12
|
-
export interface Definition<Type, Encoded, E, R> {
|
|
13
|
-
readonly payload: Schema.Codec<Type, Encoded,
|
|
13
|
+
export interface Definition<Type, Encoded, E, R, RD = never> {
|
|
14
|
+
readonly payload: Schema.Codec<Type, Encoded, RD>;
|
|
14
15
|
readonly mutator: (args: Type) => Effect.Effect<unknown, E, R>;
|
|
15
16
|
}
|
|
16
|
-
export type AnyDefinition = Definition<any, any, any, any>;
|
|
17
|
+
export type AnyDefinition = Definition<any, any, any, any, any>;
|
|
17
18
|
export type Definitions = {
|
|
18
19
|
readonly [key: string]: AnyDefinition | Definitions;
|
|
19
20
|
};
|
|
@@ -21,7 +22,7 @@ export type Definitions = {
|
|
|
21
22
|
* A registered mutator. Calling it encodes `args` and returns a request for `ZfxClient.mutate(zero, request)`, or
|
|
22
23
|
* for Zero's own `zero.mutate(request)`. It is also a Zero `Mutator`, so the registry can be passed to Zero.
|
|
23
24
|
*/
|
|
24
|
-
export interface Mutator<Type, Encoded, E, R> extends Definition<Type, Encoded, E, R> {
|
|
25
|
+
export interface Mutator<Type, Encoded, E, R, RD = never> extends Definition<Type, Encoded, E, R, RD> {
|
|
25
26
|
(args: Type): MutateRequest<Type>;
|
|
26
27
|
readonly mutatorName: string;
|
|
27
28
|
/** Runs the mutator for Zero, which calls it with the transaction and the `context` from `ZfxClient.make`. */
|
|
@@ -32,13 +33,13 @@ export interface Mutator<Type, Encoded, E, R> extends Definition<Type, Encoded,
|
|
|
32
33
|
}) => Promise<void>;
|
|
33
34
|
readonly "~": "Mutator";
|
|
34
35
|
}
|
|
35
|
-
export type AnyMutator = Mutator<any, any, any, any>;
|
|
36
|
+
export type AnyMutator = Mutator<any, any, any, any, any>;
|
|
36
37
|
/** A request to run a mutator, for `ZfxClient.mutate` or Zero's own `zero.mutate`. */
|
|
37
38
|
export type MutateRequest<Type> = ZeroMutateRequest<any, any, any, any> & {
|
|
38
39
|
readonly mutator: Mutator<Type, any, any, any>;
|
|
39
40
|
};
|
|
40
41
|
type Tree<D> = {
|
|
41
|
-
readonly [K in keyof D]: D[K] extends Definition<infer Type, infer Encoded, infer E, infer R> ? Mutator<Type, Encoded, E, R> : Tree<D[K]>;
|
|
42
|
+
readonly [K in keyof D]: D[K] extends Definition<infer Type, infer Encoded, infer E, infer R, infer RD> ? Mutator<Type, Encoded, E, R, RD> : Tree<D[K]>;
|
|
42
43
|
};
|
|
43
44
|
/** A tree of registered mutators, made with {@link registry}. Pass it to `ZfxClient.make` and the server. */
|
|
44
45
|
export type Registry<D extends Definitions, TTransaction extends AnyClientTransaction> = Tree<D> & {
|
|
@@ -50,8 +51,8 @@ export type Registry<D extends Definitions, TTransaction extends AnyClientTransa
|
|
|
50
51
|
export type AnyRegistry = Registry<any, AnyClientTransaction>;
|
|
51
52
|
type AnyClientTransaction = ClientTransaction.Context<any>;
|
|
52
53
|
type Keys<T> = Exclude<Extract<keyof T, string>, "~">;
|
|
53
|
-
/** The services a registry's mutators require. */
|
|
54
|
-
export type Requirements<T> = T extends Mutator<any, any, any, infer R> ? R : {
|
|
54
|
+
/** The services a registry's mutators require: their bodies' and their payloads'. */
|
|
55
|
+
export type Requirements<T> = T extends Mutator<any, any, any, infer R, infer RD> ? R | RD : {
|
|
55
56
|
[K in Keys<T>]: Requirements<T[K]>;
|
|
56
57
|
}[Keys<T>];
|
|
57
58
|
/** The client transaction a registry's mutators run in. */
|
|
@@ -65,14 +66,14 @@ export type ZeroSchemaOf<T extends AnyRegistry> = Transaction<T> extends ClientT
|
|
|
65
66
|
export declare const make: <Type, Encoded, RD = never, A = unknown, E = never, R = never>(options: {
|
|
66
67
|
readonly payload: Schema.Codec<Type, Encoded, RD, never>;
|
|
67
68
|
readonly mutator: (args: NoInfer<Type>) => Effect.Effect<A, E, R>;
|
|
68
|
-
}) => Definition<Type, Encoded, E, R
|
|
69
|
+
}) => Definition<Type, Encoded, E, R, RD>;
|
|
69
70
|
/**
|
|
70
71
|
* Registers mutators under their path, like Zero's `defineMutators`: `{ todo: { create } }` registers
|
|
71
72
|
* `"todo.create"`. The result is also a Zero mutator registry, so it can be passed to `new Zero({ mutators })`.
|
|
72
73
|
*/
|
|
73
74
|
export declare const registry: <TTransaction extends AnyClientTransaction, const D extends Definitions>(transaction: TTransaction, definitions: D) => Registry<D, TTransaction>;
|
|
74
75
|
type Overrides<T> = {
|
|
75
|
-
readonly [K in Keys<T>]?: T[K] extends Mutator<infer Type, infer _Encoded, infer _E, infer _R> ? (args: Type) => Effect.Effect<unknown, any, any> : Overrides<T[K]>;
|
|
76
|
+
readonly [K in Keys<T>]?: T[K] extends Mutator<infer Type, infer _Encoded, infer _E, infer _R, infer _RD> ? (args: Type) => Effect.Effect<unknown, any, any> : Overrides<T[K]>;
|
|
76
77
|
};
|
|
77
78
|
/** The server's view of a registry, made with {@link server}. */
|
|
78
79
|
export interface ServerMutators<TRegistry extends AnyRegistry, O> {
|
|
@@ -87,12 +88,13 @@ export type AnyServerMutators = ServerMutators<AnyRegistry, unknown>;
|
|
|
87
88
|
* and after `serverTransaction.execute`, e.g. `registry.todo.create.mutator(args).pipe(serverTransaction.execute)`.
|
|
88
89
|
*/
|
|
89
90
|
export declare const server: <TRegistry extends AnyRegistry, const O extends Overrides<TRegistry>>(registry: TRegistry, overrides: O) => ServerMutators<TRegistry, O>;
|
|
91
|
+
type PayloadRequirements<T> = T extends Mutator<any, any, any, any, infer RD> ? RD : never;
|
|
90
92
|
type ServerTreeRequirements<T, O, ClientTransactionId> = {
|
|
91
|
-
[K in Keys<T>]: T[K] extends AnyMutator ? K extends keyof O ? O[K] extends (args: never) => Effect.Effect<infer _A, infer _E, infer R> ? R : never : Exclude<Requirements<T[K]>, ClientTransactionId> : ServerTreeRequirements<T[K], K extends keyof O ? O[K] : unknown, ClientTransactionId>;
|
|
93
|
+
[K in Keys<T>]: T[K] extends AnyMutator ? K extends keyof O ? O[K] extends (args: never) => Effect.Effect<infer _A, infer _E, infer R> ? R | PayloadRequirements<T[K]> : never : Exclude<Requirements<T[K]>, ClientTransactionId> : ServerTreeRequirements<T[K], K extends keyof O ? O[K] : unknown, ClientTransactionId>;
|
|
92
94
|
}[Keys<T>];
|
|
93
95
|
/**
|
|
94
96
|
* The services the server needs to run these mutators. Mutators that aren't overridden run in a server transaction,
|
|
95
|
-
* which provides their client transaction.
|
|
97
|
+
* which provides their client transaction. Every mutator's payload is decoded on the server, overridden or not.
|
|
96
98
|
*/
|
|
97
99
|
export type ServerRequirements<T extends AnyServerMutators> = T extends ServerMutators<infer TRegistry, infer O> ? ServerTreeRequirements<TRegistry, O, Transaction<TRegistry>[typeof ContextSymbol]["Identifier"]> : never;
|
|
98
100
|
declare const ClientArgsParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
|
package/dist/mutator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutator.d.ts","sourceRoot":"","sources":["../src/mutator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,IAAI,iBAAiB,EAClC,MAAM,IAAI,UAAU,EACpB,WAAW,IAAI,eAAe,EAC/B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAMxD,eAAO,MAAM,cAAc,eAA0C,CAAC;AAEtE
|
|
1
|
+
{"version":3,"file":"mutator.d.ts","sourceRoot":"","sources":["../src/mutator.ts"],"names":[],"mappings":"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"}
|
package/dist/mutator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutator.js","sourceRoot":"","sources":["../src/mutator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAK/C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"mutator.js","sourceRoot":"","sources":["../src/mutator.ts"],"names":[],"mappings":"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"}
|
package/dist/types.test.js
CHANGED
|
@@ -121,6 +121,39 @@ describe("Type tests", () => {
|
|
|
121
121
|
// `deleteAll`'s override drops DummyTag; `transformArgs` reuses its body through the server transaction.
|
|
122
122
|
expectTypeOf().toEqualTypeOf();
|
|
123
123
|
});
|
|
124
|
+
it("a payload decodes without its body's services", () => {
|
|
125
|
+
const decoded = Schema.decodeUnknownEffect(mutators.messages.deleteAll.payload)(undefined);
|
|
126
|
+
expectTypeOf().toEqualTypeOf();
|
|
127
|
+
});
|
|
128
|
+
it("a payload's services are required, even when its mutator is overridden", () => {
|
|
129
|
+
const CheckedString = Schema.String.pipe(Schema.decodeTo(Schema.String, {
|
|
130
|
+
decode: SchemaGetter.checkEffect(() => Effect.gen(function* () {
|
|
131
|
+
yield* DummyTag2;
|
|
132
|
+
return undefined;
|
|
133
|
+
})),
|
|
134
|
+
encode: SchemaGetter.passthrough(),
|
|
135
|
+
}));
|
|
136
|
+
const checked = Mutator.registry(clientTransaction, {
|
|
137
|
+
checked: Mutator.make({
|
|
138
|
+
payload: CheckedString,
|
|
139
|
+
mutator: Effect.fn(function* () {
|
|
140
|
+
yield* DummyTag;
|
|
141
|
+
}),
|
|
142
|
+
}),
|
|
143
|
+
});
|
|
144
|
+
const decoded = Schema.decodeUnknownEffect(checked.checked.payload)("a");
|
|
145
|
+
expectTypeOf().toEqualTypeOf();
|
|
146
|
+
expectTypeOf().toEqualTypeOf();
|
|
147
|
+
const effect = Server.handleMutate({
|
|
148
|
+
transaction: serverTransaction,
|
|
149
|
+
mutators: Mutator.server(checked, { checked: () => Effect.void }),
|
|
150
|
+
query: {},
|
|
151
|
+
body: {},
|
|
152
|
+
userId: undefined,
|
|
153
|
+
});
|
|
154
|
+
// The override drops DummyTag, but the server still decodes the payload.
|
|
155
|
+
expectTypeOf().toEqualTypeOf();
|
|
156
|
+
});
|
|
124
157
|
it("handleMutate has no extra requirements when mutators have none", () => {
|
|
125
158
|
const simple = Mutator.registry(clientTransaction, {
|
|
126
159
|
simple: Mutator.make({
|
package/dist/types.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../src/types.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../src/types.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/mutator.ts
CHANGED
|
@@ -24,15 +24,16 @@ export const RegistryTypeId = Symbol.for(prefixId("MutatorRegistry"));
|
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* A mutator that isn't part of a registry yet, made with {@link make}. Like `defineMutator`, it gets its name
|
|
27
|
-
* from its path in the {@link registry}.
|
|
27
|
+
* from its path in the {@link registry}. `R` is the services its body requires, and `RD` the services decoding its
|
|
28
|
+
* payload requires.
|
|
28
29
|
*/
|
|
29
|
-
export interface Definition<Type, Encoded, E, R> {
|
|
30
|
-
readonly payload: Schema.Codec<Type, Encoded,
|
|
30
|
+
export interface Definition<Type, Encoded, E, R, RD = never> {
|
|
31
|
+
readonly payload: Schema.Codec<Type, Encoded, RD>;
|
|
31
32
|
readonly mutator: (args: Type) => Effect.Effect<unknown, E, R>;
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
// biome-ignore lint/suspicious/noExplicitAny: upper bound to allow everything
|
|
35
|
-
export type AnyDefinition = Definition<any, any, any, any>;
|
|
36
|
+
export type AnyDefinition = Definition<any, any, any, any, any>;
|
|
36
37
|
|
|
37
38
|
export type Definitions = { readonly [key: string]: AnyDefinition | Definitions };
|
|
38
39
|
|
|
@@ -40,7 +41,7 @@ export type Definitions = { readonly [key: string]: AnyDefinition | Definitions
|
|
|
40
41
|
* A registered mutator. Calling it encodes `args` and returns a request for `ZfxClient.mutate(zero, request)`, or
|
|
41
42
|
* for Zero's own `zero.mutate(request)`. It is also a Zero `Mutator`, so the registry can be passed to Zero.
|
|
42
43
|
*/
|
|
43
|
-
export interface Mutator<Type, Encoded, E, R> extends Definition<Type, Encoded, E, R> {
|
|
44
|
+
export interface Mutator<Type, Encoded, E, R, RD = never> extends Definition<Type, Encoded, E, R, RD> {
|
|
44
45
|
(args: Type): MutateRequest<Type>;
|
|
45
46
|
readonly mutatorName: string;
|
|
46
47
|
/** Runs the mutator for Zero, which calls it with the transaction and the `context` from `ZfxClient.make`. */
|
|
@@ -53,7 +54,7 @@ export interface Mutator<Type, Encoded, E, R> extends Definition<Type, Encoded,
|
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
// biome-ignore lint/suspicious/noExplicitAny: upper bound to allow everything
|
|
56
|
-
export type AnyMutator = Mutator<any, any, any, any>;
|
|
57
|
+
export type AnyMutator = Mutator<any, any, any, any, any>;
|
|
57
58
|
|
|
58
59
|
/** A request to run a mutator, for `ZfxClient.mutate` or Zero's own `zero.mutate`. */
|
|
59
60
|
// biome-ignore lint/suspicious/noExplicitAny: compatible with any Zero instance's `zero.mutate`
|
|
@@ -63,8 +64,8 @@ export type MutateRequest<Type> = ZeroMutateRequest<any, any, any, any> & {
|
|
|
63
64
|
};
|
|
64
65
|
|
|
65
66
|
type Tree<D> = {
|
|
66
|
-
readonly [K in keyof D]: D[K] extends Definition<infer Type, infer Encoded, infer E, infer R>
|
|
67
|
-
? Mutator<Type, Encoded, E, R>
|
|
67
|
+
readonly [K in keyof D]: D[K] extends Definition<infer Type, infer Encoded, infer E, infer R, infer RD>
|
|
68
|
+
? Mutator<Type, Encoded, E, R, RD>
|
|
68
69
|
: Tree<D[K]>;
|
|
69
70
|
};
|
|
70
71
|
|
|
@@ -82,10 +83,10 @@ type AnyClientTransaction = ClientTransaction.Context<any>;
|
|
|
82
83
|
|
|
83
84
|
type Keys<T> = Exclude<Extract<keyof T, string>, "~">;
|
|
84
85
|
|
|
85
|
-
/** The services a registry's mutators require. */
|
|
86
|
+
/** The services a registry's mutators require: their bodies' and their payloads'. */
|
|
86
87
|
// biome-ignore lint/suspicious/noExplicitAny: matches any mutator
|
|
87
|
-
export type Requirements<T> = T extends Mutator<any, any, any, infer R>
|
|
88
|
-
? R
|
|
88
|
+
export type Requirements<T> = T extends Mutator<any, any, any, infer R, infer RD>
|
|
89
|
+
? R | RD
|
|
89
90
|
: { [K in Keys<T>]: Requirements<T[K]> }[Keys<T>];
|
|
90
91
|
|
|
91
92
|
/** The client transaction a registry's mutators run in. */
|
|
@@ -101,7 +102,7 @@ export type ZeroSchemaOf<T extends AnyRegistry> = Transaction<T> extends ClientT
|
|
|
101
102
|
export const make = <Type, Encoded, RD = never, A = unknown, E = never, R = never>(options: {
|
|
102
103
|
readonly payload: Schema.Codec<Type, Encoded, RD, never>;
|
|
103
104
|
readonly mutator: (args: NoInfer<Type>) => Effect.Effect<A, E, R>;
|
|
104
|
-
}): Definition<Type, Encoded, E, R
|
|
105
|
+
}): Definition<Type, Encoded, E, R, RD> => options;
|
|
105
106
|
|
|
106
107
|
/**
|
|
107
108
|
* Registers mutators under their path, like Zero's `defineMutators`: `{ todo: { create } }` registers
|
|
@@ -126,11 +127,11 @@ export const registry = <TTransaction extends AnyClientTransaction, const D exte
|
|
|
126
127
|
const isDefinition = (u: unknown): u is AnyDefinition =>
|
|
127
128
|
Predicate.hasProperty(u, "payload") && Schema.isSchema(u.payload);
|
|
128
129
|
|
|
129
|
-
const makeMutator = <Type, Encoded, E, R>(
|
|
130
|
+
const makeMutator = <Type, Encoded, E, R, RD>(
|
|
130
131
|
transaction: AnyClientTransaction,
|
|
131
132
|
name: string,
|
|
132
|
-
definition: Definition<Type, Encoded, E, R>,
|
|
133
|
-
): Mutator<Type, Encoded, E, R> => {
|
|
133
|
+
definition: Definition<Type, Encoded, E, R, RD>,
|
|
134
|
+
): Mutator<Type, Encoded, E, R, RD> => {
|
|
134
135
|
const run = (args: unknown, tx: ZeroTransaction<ZeroSchema>) =>
|
|
135
136
|
Schema.decodeUnknownEffect(definition.payload)(args).pipe(
|
|
136
137
|
Effect.catchTag("SchemaError", (error) => new ClientArgsParseError({ cause: Cause.fail(error) })),
|
|
@@ -147,7 +148,7 @@ const makeMutator = <Type, Encoded, E, R>(
|
|
|
147
148
|
Effect.asVoid,
|
|
148
149
|
);
|
|
149
150
|
|
|
150
|
-
const mutator: Mutator<Type, Encoded, E, R> = Object.assign(
|
|
151
|
+
const mutator: Mutator<Type, Encoded, E, R, RD> = Object.assign(
|
|
151
152
|
(args: Type) =>
|
|
152
153
|
// A Zero `MutateRequest`, whose brand only exists at the type level.
|
|
153
154
|
({ mutator, args: Schema.encodeSync(definition.payload)(args), "~": "MutateRequest" }) as MutateRequest<Type>,
|
|
@@ -166,7 +167,7 @@ const makeMutator = <Type, Encoded, E, R>(
|
|
|
166
167
|
}) =>
|
|
167
168
|
Context.isContext(ctx)
|
|
168
169
|
? // `ZfxClient.make` passes the services it captured, which cover every mutator's requirements.
|
|
169
|
-
run(args, tx).pipe(Effect.runPromiseWith(ctx as Context.Context<R>))
|
|
170
|
+
run(args, tx).pipe(Effect.runPromiseWith(ctx as Context.Context<R | RD>))
|
|
170
171
|
: Promise.reject(new MutatorContextNotFound({ mutator: name })),
|
|
171
172
|
},
|
|
172
173
|
);
|
|
@@ -174,7 +175,7 @@ const makeMutator = <Type, Encoded, E, R>(
|
|
|
174
175
|
};
|
|
175
176
|
|
|
176
177
|
type Overrides<T> = {
|
|
177
|
-
readonly [K in Keys<T>]?: T[K] extends Mutator<infer Type, infer _Encoded, infer _E, infer _R>
|
|
178
|
+
readonly [K in Keys<T>]?: T[K] extends Mutator<infer Type, infer _Encoded, infer _E, infer _R, infer _RD>
|
|
178
179
|
? // biome-ignore lint/suspicious/noExplicitAny: any server implementation
|
|
179
180
|
(args: Type) => Effect.Effect<unknown, any, any>
|
|
180
181
|
: Overrides<T[K]>;
|
|
@@ -199,11 +200,14 @@ export const server = <TRegistry extends AnyRegistry, const O extends Overrides<
|
|
|
199
200
|
overrides: O,
|
|
200
201
|
): ServerMutators<TRegistry, O> => ({ registry, overrides });
|
|
201
202
|
|
|
203
|
+
// biome-ignore lint/suspicious/noExplicitAny: matches any mutator
|
|
204
|
+
type PayloadRequirements<T> = T extends Mutator<any, any, any, any, infer RD> ? RD : never;
|
|
205
|
+
|
|
202
206
|
type ServerTreeRequirements<T, O, ClientTransactionId> = {
|
|
203
207
|
[K in Keys<T>]: T[K] extends AnyMutator
|
|
204
208
|
? K extends keyof O
|
|
205
209
|
? O[K] extends (args: never) => Effect.Effect<infer _A, infer _E, infer R>
|
|
206
|
-
? R
|
|
210
|
+
? R | PayloadRequirements<T[K]>
|
|
207
211
|
: never
|
|
208
212
|
: Exclude<Requirements<T[K]>, ClientTransactionId>
|
|
209
213
|
: ServerTreeRequirements<T[K], K extends keyof O ? O[K] : unknown, ClientTransactionId>;
|
|
@@ -211,7 +215,7 @@ type ServerTreeRequirements<T, O, ClientTransactionId> = {
|
|
|
211
215
|
|
|
212
216
|
/**
|
|
213
217
|
* The services the server needs to run these mutators. Mutators that aren't overridden run in a server transaction,
|
|
214
|
-
* which provides their client transaction.
|
|
218
|
+
* which provides their client transaction. Every mutator's payload is decoded on the server, overridden or not.
|
|
215
219
|
*/
|
|
216
220
|
export type ServerRequirements<T extends AnyServerMutators> = T extends ServerMutators<infer TRegistry, infer O>
|
|
217
221
|
? ServerTreeRequirements<TRegistry, O, Transaction<TRegistry>[typeof ContextSymbol]["Identifier"]>
|