effect-zero 0.7.0 → 0.9.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/README.md +86 -77
- package/dist/client-transaction.d.ts +0 -1
- package/dist/client-transaction.d.ts.map +1 -1
- package/dist/client.d.ts +38 -138
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +75 -24
- package/dist/client.js.map +1 -1
- package/dist/internal/utils.d.ts +0 -7
- package/dist/internal/utils.d.ts.map +1 -1
- package/dist/internal/utils.js +0 -7
- package/dist/internal/utils.js.map +1 -1
- package/dist/mutator.d.ts +115 -0
- package/dist/mutator.d.ts.map +1 -0
- package/dist/mutator.js +67 -0
- package/dist/mutator.js.map +1 -0
- package/dist/mutator.test.d.ts +2 -0
- package/dist/mutator.test.d.ts.map +1 -0
- package/dist/{client.test.js → mutator.test.js} +5 -5
- package/dist/mutator.test.js.map +1 -0
- package/dist/query.d.ts +2 -2
- package/dist/result.d.ts +1 -1
- package/dist/result.d.ts.map +1 -1
- package/dist/result.js +1 -1
- package/dist/result.js.map +1 -1
- package/dist/server-transaction.d.ts +0 -1
- package/dist/server-transaction.d.ts.map +1 -1
- package/dist/server.d.ts +7 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +30 -15
- package/dist/server.js.map +1 -1
- package/dist/types.test.js +85 -120
- package/dist/types.test.js.map +1 -1
- package/package.json +49 -48
- package/src/client.ts +159 -56
- package/src/internal/utils.ts +0 -8
- package/src/mutator.ts +232 -0
- package/src/result.ts +2 -2
- package/src/server.ts +49 -34
- package/dist/client.test.d.ts +0 -2
- package/dist/client.test.d.ts.map +0 -1
- package/dist/client.test.js.map +0 -1
- package/dist/mutators.d.ts +0 -30
- package/dist/mutators.d.ts.map +0 -1
- package/dist/mutators.js +0 -17
- package/dist/mutators.js.map +0 -1
- package/src/mutators.ts +0 -80
package/dist/internal/utils.d.ts
CHANGED
|
@@ -2,11 +2,4 @@
|
|
|
2
2
|
* Prefix a string with the package name.
|
|
3
3
|
*/
|
|
4
4
|
export declare const prefixId: <S extends string>(name: S) => `effect-zero/${S}`;
|
|
5
|
-
/**
|
|
6
|
-
* Zero unconditionally serializes arg-less mutator calls as `null` on the wire
|
|
7
|
-
* (https://github.com/rocicorp/mono/blob/3082c9fa061891067b4bd7dc9fe74f798270d8d7/packages/zero-client/src/client/custom.ts).
|
|
8
|
-
* v3 `Schema.Void` happened to accept any input; v4 `Schema.Void` is strict
|
|
9
|
-
* `=== undefined`, so we renormalize before decoding.
|
|
10
|
-
*/
|
|
11
|
-
export declare const normalizeArgs: (args: unknown) => unknown;
|
|
12
5
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,uBAAmC,CAAC
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,uBAAmC,CAAC"}
|
package/dist/internal/utils.js
CHANGED
|
@@ -2,11 +2,4 @@
|
|
|
2
2
|
* Prefix a string with the package name.
|
|
3
3
|
*/
|
|
4
4
|
export const prefixId = (name) => `effect-zero/${name}`;
|
|
5
|
-
/**
|
|
6
|
-
* Zero unconditionally serializes arg-less mutator calls as `null` on the wire
|
|
7
|
-
* (https://github.com/rocicorp/mono/blob/3082c9fa061891067b4bd7dc9fe74f798270d8d7/packages/zero-client/src/client/custom.ts).
|
|
8
|
-
* v3 `Schema.Void` happened to accept any input; v4 `Schema.Void` is strict
|
|
9
|
-
* `=== undefined`, so we renormalize before decoding.
|
|
10
|
-
*/
|
|
11
|
-
export const normalizeArgs = (args) => (args === null ? undefined : args);
|
|
12
5
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAmB,IAAO,EAAE,EAAE,CAAC,eAAe,IAAI,EAAW,CAAC
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAmB,IAAO,EAAE,EAAE,CAAC,eAAe,IAAI,EAAW,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { AnyMutatorRegistry, MutateRequest as ZeroMutateRequest, Schema as ZeroSchema, Transaction as ZeroTransaction } from "@rocicorp/zero";
|
|
2
|
+
import * as Cause from "effect/Cause";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import type * as ClientTransaction from "./client-transaction.js";
|
|
6
|
+
import { ContextSymbol } from "./client-transaction.js";
|
|
7
|
+
export declare const RegistryTypeId: unique symbol;
|
|
8
|
+
/**
|
|
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}.
|
|
11
|
+
*/
|
|
12
|
+
export interface Definition<Type, Encoded, E, R> {
|
|
13
|
+
readonly payload: Schema.Codec<Type, Encoded, R>;
|
|
14
|
+
readonly mutator: (args: Type) => Effect.Effect<unknown, E, R>;
|
|
15
|
+
}
|
|
16
|
+
export type AnyDefinition = Definition<any, any, any, any>;
|
|
17
|
+
export type Definitions = {
|
|
18
|
+
readonly [key: string]: AnyDefinition | Definitions;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* A registered mutator. Calling it encodes `args` and returns a request for `ZfxClient.mutate(zero, request)`, or
|
|
22
|
+
* for Zero's own `zero.mutate(request)`. It is also a Zero `Mutator`, so the registry can be passed to Zero.
|
|
23
|
+
*/
|
|
24
|
+
export interface Mutator<Type, Encoded, E, R> extends Definition<Type, Encoded, E, R> {
|
|
25
|
+
(args: Type): MutateRequest<Type>;
|
|
26
|
+
readonly mutatorName: string;
|
|
27
|
+
/** Runs the mutator for Zero, which calls it with the transaction and the `context` from `ZfxClient.make`. */
|
|
28
|
+
readonly fn: (options: {
|
|
29
|
+
readonly args: unknown;
|
|
30
|
+
readonly ctx: unknown;
|
|
31
|
+
readonly tx: ZeroTransaction<ZeroSchema>;
|
|
32
|
+
}) => Promise<void>;
|
|
33
|
+
readonly "~": "Mutator";
|
|
34
|
+
}
|
|
35
|
+
export type AnyMutator = Mutator<any, any, any, any>;
|
|
36
|
+
/** A request to run a mutator, for `ZfxClient.mutate` or Zero's own `zero.mutate`. */
|
|
37
|
+
export type MutateRequest<Type> = ZeroMutateRequest<any, any, any, any> & {
|
|
38
|
+
readonly mutator: Mutator<Type, any, any, any>;
|
|
39
|
+
};
|
|
40
|
+
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
|
+
};
|
|
43
|
+
/** A tree of registered mutators, made with {@link registry}. Pass it to `ZfxClient.make` and the server. */
|
|
44
|
+
export type Registry<D extends Definitions, TTransaction extends AnyClientTransaction> = Tree<D> & {
|
|
45
|
+
readonly "~": AnyMutatorRegistry["~"];
|
|
46
|
+
readonly [RegistryTypeId]: {
|
|
47
|
+
readonly transaction: TTransaction;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export type AnyRegistry = Registry<any, AnyClientTransaction>;
|
|
51
|
+
type AnyClientTransaction = ClientTransaction.Context<any>;
|
|
52
|
+
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 : {
|
|
55
|
+
[K in Keys<T>]: Requirements<T[K]>;
|
|
56
|
+
}[Keys<T>];
|
|
57
|
+
/** The client transaction a registry's mutators run in. */
|
|
58
|
+
export type Transaction<T extends AnyRegistry> = T[typeof RegistryTypeId]["transaction"];
|
|
59
|
+
/** The Zero schema a registry's mutators run against. */
|
|
60
|
+
export type ZeroSchemaOf<T extends AnyRegistry> = Transaction<T> extends ClientTransaction.Context<infer S> ? S : never;
|
|
61
|
+
/**
|
|
62
|
+
* Defines a mutator. Its `payload` codec decodes the args on both the client and the server; it must encode without
|
|
63
|
+
* services, since calling a registered mutator encodes its args synchronously.
|
|
64
|
+
*/
|
|
65
|
+
export declare const make: <Type, Encoded, RD = never, A = unknown, E = never, R = never>(options: {
|
|
66
|
+
readonly payload: Schema.Codec<Type, Encoded, RD, never>;
|
|
67
|
+
readonly mutator: (args: NoInfer<Type>) => Effect.Effect<A, E, R>;
|
|
68
|
+
}) => Definition<Type, Encoded, E, R | RD>;
|
|
69
|
+
/**
|
|
70
|
+
* Registers mutators under their path, like Zero's `defineMutators`: `{ todo: { create } }` registers
|
|
71
|
+
* `"todo.create"`. The result is also a Zero mutator registry, so it can be passed to `new Zero({ mutators })`.
|
|
72
|
+
*/
|
|
73
|
+
export declare const registry: <TTransaction extends AnyClientTransaction, const D extends Definitions>(transaction: TTransaction, definitions: D) => Registry<D, TTransaction>;
|
|
74
|
+
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
|
+
};
|
|
77
|
+
/** The server's view of a registry, made with {@link server}. */
|
|
78
|
+
export interface ServerMutators<TRegistry extends AnyRegistry, O> {
|
|
79
|
+
readonly registry: TRegistry;
|
|
80
|
+
readonly overrides: O;
|
|
81
|
+
}
|
|
82
|
+
export type AnyServerMutators = ServerMutators<AnyRegistry, unknown>;
|
|
83
|
+
/**
|
|
84
|
+
* The registry's mutators as the server runs them, for `ZfxServer.handleMutate`. `overrides` replaces some mutators'
|
|
85
|
+
* bodies, like Zero's `defineMutators(base, overrides)`; every other mutator runs its shared body in a server
|
|
86
|
+
* transaction, so pass `{}` if nothing differs. An override runs outside the transaction, so it can do work before
|
|
87
|
+
* and after `serverTransaction.execute`, e.g. `registry.todo.create.mutator(args).pipe(serverTransaction.execute)`.
|
|
88
|
+
*/
|
|
89
|
+
export declare const server: <TRegistry extends AnyRegistry, const O extends Overrides<TRegistry>>(registry: TRegistry, overrides: O) => ServerMutators<TRegistry, O>;
|
|
90
|
+
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>;
|
|
92
|
+
}[Keys<T>];
|
|
93
|
+
/**
|
|
94
|
+
* 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.
|
|
96
|
+
*/
|
|
97
|
+
export type ServerRequirements<T extends AnyServerMutators> = T extends ServerMutators<infer TRegistry, infer O> ? ServerTreeRequirements<TRegistry, O, Transaction<TRegistry>[typeof ContextSymbol]["Identifier"]> : never;
|
|
98
|
+
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 & {
|
|
99
|
+
readonly _tag: "ClientArgsParseError";
|
|
100
|
+
} & Readonly<A>;
|
|
101
|
+
export declare class ClientArgsParseError extends ClientArgsParseError_base<{
|
|
102
|
+
readonly cause: Cause.Cause<unknown>;
|
|
103
|
+
}> {
|
|
104
|
+
get message(): string;
|
|
105
|
+
}
|
|
106
|
+
declare const MutatorContextNotFound_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 & {
|
|
107
|
+
readonly _tag: "MutatorContextNotFound";
|
|
108
|
+
} & Readonly<A>;
|
|
109
|
+
/** A mutator ran on a Zero instance that wasn't made with `ZfxClient.make`. */
|
|
110
|
+
export declare class MutatorContextNotFound extends MutatorContextNotFound_base<{
|
|
111
|
+
readonly mutator: string;
|
|
112
|
+
}> {
|
|
113
|
+
}
|
|
114
|
+
export {};
|
|
115
|
+
//# sourceMappingURL=mutator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutator.d.ts","sourceRoot":"","sources":["../src/mutator.ts"],"names":[],"mappings":"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"}
|
package/dist/mutator.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as Cause from "effect/Cause";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
3
|
+
import * as Data from "effect/Data";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Predicate from "effect/Predicate";
|
|
6
|
+
import * as Rec from "effect/Record";
|
|
7
|
+
import * as Schema from "effect/Schema";
|
|
8
|
+
import { ContextSymbol } from "./client-transaction.js";
|
|
9
|
+
import { prefixId } from "./internal/utils.js";
|
|
10
|
+
export const RegistryTypeId = Symbol.for(prefixId("MutatorRegistry"));
|
|
11
|
+
/**
|
|
12
|
+
* Defines a mutator. Its `payload` codec decodes the args on both the client and the server; it must encode without
|
|
13
|
+
* services, since calling a registered mutator encodes its args synchronously.
|
|
14
|
+
*/
|
|
15
|
+
export const make = (options) => options;
|
|
16
|
+
/**
|
|
17
|
+
* Registers mutators under their path, like Zero's `defineMutators`: `{ todo: { create } }` registers
|
|
18
|
+
* `"todo.create"`. The result is also a Zero mutator registry, so it can be passed to `new Zero({ mutators })`.
|
|
19
|
+
*/
|
|
20
|
+
export const registry = (transaction, definitions) => {
|
|
21
|
+
const register = (definitions, path) => Rec.map(definitions, (value, key) => isDefinition(value) ? makeMutator(transaction, [...path, key].join("."), value) : register(value, [...path, key]));
|
|
22
|
+
// The registry's shape is only known from `D`.
|
|
23
|
+
return Object.assign(register(definitions, []), {
|
|
24
|
+
"~": "MutatorRegistry",
|
|
25
|
+
[RegistryTypeId]: { transaction },
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
const isDefinition = (u) => Predicate.hasProperty(u, "payload") && Schema.isSchema(u.payload);
|
|
29
|
+
const makeMutator = (transaction, name, definition) => {
|
|
30
|
+
const run = (args, tx) => Schema.decodeUnknownEffect(definition.payload)(args).pipe(Effect.catchTag("SchemaError", (error) => new ClientArgsParseError({ cause: Cause.fail(error) })), Effect.flatMap(definition.mutator), Effect.withSpan("zero.mutator", {
|
|
31
|
+
attributes: {
|
|
32
|
+
"zero.mutator": name,
|
|
33
|
+
"zero.clientID": tx.clientID,
|
|
34
|
+
"zero.mutationID": tx.mutationID,
|
|
35
|
+
"zero.mutation.reason": tx.reason,
|
|
36
|
+
},
|
|
37
|
+
}), Effect.provideService(transaction[ContextSymbol], tx), Effect.asVoid);
|
|
38
|
+
const mutator = Object.assign((args) =>
|
|
39
|
+
// A Zero `MutateRequest`, whose brand only exists at the type level.
|
|
40
|
+
({ mutator, args: Schema.encodeSync(definition.payload)(args), "~": "MutateRequest" }), {
|
|
41
|
+
...definition,
|
|
42
|
+
mutatorName: name,
|
|
43
|
+
"~": "Mutator",
|
|
44
|
+
fn: ({ args, ctx, tx, }) => Context.isContext(ctx)
|
|
45
|
+
? // `ZfxClient.make` passes the services it captured, which cover every mutator's requirements.
|
|
46
|
+
run(args, tx).pipe(Effect.runPromiseWith(ctx))
|
|
47
|
+
: Promise.reject(new MutatorContextNotFound({ mutator: name })),
|
|
48
|
+
});
|
|
49
|
+
return mutator;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* The registry's mutators as the server runs them, for `ZfxServer.handleMutate`. `overrides` replaces some mutators'
|
|
53
|
+
* bodies, like Zero's `defineMutators(base, overrides)`; every other mutator runs its shared body in a server
|
|
54
|
+
* transaction, so pass `{}` if nothing differs. An override runs outside the transaction, so it can do work before
|
|
55
|
+
* and after `serverTransaction.execute`, e.g. `registry.todo.create.mutator(args).pipe(serverTransaction.execute)`.
|
|
56
|
+
*/
|
|
57
|
+
export const server = (registry, overrides) => ({ registry, overrides });
|
|
58
|
+
export class ClientArgsParseError extends Data.TaggedError("ClientArgsParseError") {
|
|
59
|
+
get message() {
|
|
60
|
+
const error = Cause.squash(this.cause);
|
|
61
|
+
return Predicate.isError(error) && !Schema.isSchemaError(error) ? error.message : "Internal error";
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/** A mutator ran on a Zero instance that wasn't made with `ZfxClient.make`. */
|
|
65
|
+
export class MutatorContextNotFound extends Data.TaggedError("MutatorContextNotFound") {
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=mutator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutator.js","sourceRoot":"","sources":["../src/mutator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutator.test.d.ts","sourceRoot":"","sources":["../src/mutator.test.ts"],"names":[],"mappings":""}
|
|
@@ -2,11 +2,11 @@ import { describe, it } from "@effect/vitest";
|
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
3
|
import * as Exit from "effect/Exit";
|
|
4
4
|
import * as Schema from "effect/Schema";
|
|
5
|
-
import { ClientArgsParseError } from "./
|
|
5
|
+
import { ClientArgsParseError } from "./mutator.js";
|
|
6
6
|
describe("ClientArgsParseError", () => {
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
7
|
+
// The schema validation detail is masked to a generic "Internal error" rather than leaked. The getter
|
|
8
|
+
// still exists so a `getErrorMessage`-style consumer reads that clean string instead of serializing the
|
|
9
|
+
// raw `Cause` into a "Parsed message" blob.
|
|
10
10
|
it.effect("masks the schema validation detail to 'Internal error'", Effect.fn(function* ({ expect }) {
|
|
11
11
|
const exit = yield* Effect.exit(Schema.decodeUnknownEffect(Schema.Struct({ id: Schema.String }))({}));
|
|
12
12
|
expect(Exit.isFailure(exit)).toBe(true);
|
|
@@ -16,4 +16,4 @@ describe("ClientArgsParseError", () => {
|
|
|
16
16
|
expect(error.message).toBe("Internal error");
|
|
17
17
|
}));
|
|
18
18
|
});
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=mutator.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutator.test.js","sourceRoot":"","sources":["../src/mutator.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,sGAAsG;IACtG,wGAAwG;IACxG,4CAA4C;IAC5C,EAAE,CAAC,MAAM,CACP,wDAAwD,EACxD,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO;QAElC,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAE9D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/dist/query.d.ts
CHANGED
|
@@ -17,9 +17,9 @@ export declare const make: <N extends string, A extends ReadonlyJSONValue | void
|
|
|
17
17
|
name: N;
|
|
18
18
|
payload: Schema.Codec<B, A, R1, R1>;
|
|
19
19
|
query: (args: NoInfer<B>) => Effect.Effect<ZeroQuery<T, S, R>, E, R2>;
|
|
20
|
-
}) => ((args: B) => Effect.Effect<ZeroQuery<T, S, R> & Equal.Equal, Schema.SchemaError | E, R1 | R2>) & {
|
|
20
|
+
}) => ((args: B) => Effect.Effect<ZeroQuery<T, S, R, never> & Equal.Equal, Schema.SchemaError | E, R1 | R2>) & {
|
|
21
21
|
[QueryNameSymbol]: N;
|
|
22
|
-
[RunQuerySymbol]: (args: QueryArgs<A, B>) => Effect.Effect<ZeroQuery<T, S, R> & Equal.Equal, Schema.SchemaError | E, R1 | R2>;
|
|
22
|
+
[RunQuerySymbol]: (args: QueryArgs<A, B>) => Effect.Effect<ZeroQuery<T, S, R, never> & Equal.Equal, Schema.SchemaError | E, R1 | R2>;
|
|
23
23
|
};
|
|
24
24
|
export type MakeQueryResult<E = any, R1 = any, R2 = any> = ReturnType<typeof make<string, any, any, string, ZeroSchema, Record<string, any> | undefined, E, R1, R2>>;
|
|
25
25
|
export declare const stream: <T extends keyof S["tables"] & string, S extends ZeroSchema, R>(zero: Zero<S>, query: ZeroQuery<T, S, R>) => Stream.Stream<QueryResult.QueryResult<R>, never, never>;
|
package/dist/result.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { HumanReadable } from "@rocicorp/zero";
|
|
2
2
|
import * as Cause from "effect/Cause";
|
|
3
|
-
import
|
|
3
|
+
import * as AsyncResult from "effect/reactivity/AsyncResult";
|
|
4
4
|
import type { QueryResult } from "./internal/query-result.js";
|
|
5
5
|
export type Result<A, E = never> = AsyncResult.AsyncResult<QueryResult.Partial<A> | QueryResult.Complete<A>, E | QueryError>;
|
|
6
6
|
export declare namespace Result {
|
package/dist/result.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"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"}
|
package/dist/result.js
CHANGED
|
@@ -4,8 +4,8 @@ import * as Fn from "effect/Function";
|
|
|
4
4
|
import * as Match from "effect/Match";
|
|
5
5
|
import * as Option from "effect/Option";
|
|
6
6
|
import * as Predicate from "effect/Predicate";
|
|
7
|
+
import * as AsyncResult from "effect/reactivity/AsyncResult";
|
|
7
8
|
import * as Struct from "effect/Struct";
|
|
8
|
-
import { AsyncResult } from "effect/unstable/reactivity";
|
|
9
9
|
export class QueryError extends Data.TaggedError("QueryError") {
|
|
10
10
|
}
|
|
11
11
|
export const make = (value) => Match.valueTags(value, {
|
package/dist/result.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,7 +86,6 @@ export declare const make: <const Id extends string, TSchema extends ZeroSchema,
|
|
|
86
86
|
readonly Service: {
|
|
87
87
|
readonly transact: <A, E_1, R_1>(fn: (transaction: ZeroServerTransaction<TSchema, TTransaction>) => Effect.Effect<A, E_1, R_1>) => Effect.Effect<A, E_1 | TransactInternalError | TransactCallbackNotInvokedError | MultipleTransactionsError, R_1 | ServerSynchronizationContext.ServerSynchronizationContext>;
|
|
88
88
|
};
|
|
89
|
-
readonly stack?: string | undefined;
|
|
90
89
|
readonly "~effect/Context/Service": Ctx.ServiceTypeId;
|
|
91
90
|
readonly "~effect/Effect": Effect.Variance<{
|
|
92
91
|
readonly transact: <A, E_1, R_1>(fn: (transaction: ZeroServerTransaction<TSchema, TTransaction>) => Effect.Effect<A, E_1, R_1>) => Effect.Effect<A, E_1 | TransactInternalError | TransactCallbackNotInvokedError | MultipleTransactionsError, R_1 | ServerSynchronizationContext.ServerSynchronizationContext>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-transaction.d.ts","sourceRoot":"","sources":["../src/server-transaction.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server-transaction.d.ts","sourceRoot":"","sources":["../src/server-transaction.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as Cause from "effect/Cause";
|
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
5
|
import { TransactCallbackNotInvokedError, TransactInternalError } from "./internal/server.js";
|
|
6
6
|
import * as ServerSynchronizationContext from "./internal/server-synchronization-context.js";
|
|
7
|
-
import * as
|
|
7
|
+
import type * as Mutator from "./mutator.js";
|
|
8
8
|
import { type MakeQueryResult } from "./query.js";
|
|
9
9
|
import type * as ServerTransaction from "./server-transaction.js";
|
|
10
10
|
import type { TransformRequestMessage } from "./types/custom-queries.js";
|
|
@@ -16,7 +16,11 @@ type MutateUserId = Extract<Awaited<ReturnType<typeof handleMutateRequest>>, {
|
|
|
16
16
|
type QueryUserId = Extract<Awaited<ReturnType<typeof handleQueryRequest>>, {
|
|
17
17
|
kind: "QueryResponse";
|
|
18
18
|
}>["userID"];
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Handles Zero's push endpoint, running each mutation's server implementation: its override from
|
|
21
|
+
* `ZfxMutator.server`, or else its shared body in a server transaction.
|
|
22
|
+
*/
|
|
23
|
+
export declare const handleMutate: <TSchema extends ZeroSchema, TTransaction, TMutators extends Mutator.AnyServerMutators>(args_0: {
|
|
20
24
|
transaction: ServerTransaction.Context<TSchema, TTransaction>;
|
|
21
25
|
mutators: TMutators;
|
|
22
26
|
query: MutateParams;
|
|
@@ -149,7 +153,7 @@ export declare const handleMutate: <TSchema extends ZeroSchema, TTransaction, TM
|
|
|
149
153
|
}[];
|
|
150
154
|
origin: "zeroCache";
|
|
151
155
|
reason: "parse" | "timeout" | "internal";
|
|
152
|
-
}, HandleMutateError, Exclude<
|
|
156
|
+
}, HandleMutateError, Exclude<Mutator.ServerRequirements<TMutators>, ServerSynchronizationContext.ServerSynchronizationContext | {
|
|
153
157
|
readonly Service: {
|
|
154
158
|
readonly transact: <A, E, R>(fn: (transaction: ZeroServerTransaction<TSchema, TTransaction>) => Effect.Effect<A, E, R>) => Effect.Effect<A, import("./internal/server.js").MultipleTransactionsError | TransactInternalError | TransactCallbackNotInvokedError | E, ServerSynchronizationContext.ServerSynchronizationContext | R>;
|
|
155
159
|
};
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,MAAM,IAAI,UAAU,EACpB,iBAAiB,IAAI,qBAAqB,EAC3C,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAsB,MAAM,uBAAuB,CAAC;AAEtH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,MAAM,IAAI,UAAU,EACpB,iBAAiB,IAAI,qBAAqB,EAC3C,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAsB,MAAM,uBAAuB,CAAC;AAEtH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAUxC,OAAO,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,KAAK,4BAA4B,MAAM,8CAA8C,CAAC;AAC7F,OAAO,KAAK,KAAK,OAAO,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,KAAK,eAAe,EAAmC,MAAM,YAAY,CAAC;AACnF,OAAO,KAAK,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAWhD,KAAK,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AACnH,KAAK,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AAEhH;;;GAGG;AACH,eAAO,MAAM,YAAY,GACvB,OAAO,SAAS,UAAU,EAC1B,YAAY,EACZ,SAAS,SAAS,OAAO,CAAC,iBAAiB;iBAQ9B,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC;cACnD,SAAS;WACZ,YAAY;UACb,QAAQ;YACN,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFpB,CAAC;AAuCH,eAAO,MAAM,oBAAoB,GAAI,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,oDAI/D,CAAC;;;;AAcF,cAAM,iBAAkB,SAAQ,uBAAsC;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;CAAG;AAElH,eAAO,MAAM,WAAW,GAAwB,CAAC,EAAE,EAAE,EAAE,EAAE;aAM9C,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;YAC7B,UAAU;UACZ,uBAAuB;YACrB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAoBnB,CAAC;;;;AAQH,cAAM,gBAAiB,SAAQ,sBAAqC;IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;CAAG"}
|
package/dist/server.js
CHANGED
|
@@ -5,9 +5,7 @@ import * as Data from "effect/Data";
|
|
|
5
5
|
import * as Deferred from "effect/Deferred";
|
|
6
6
|
import * as Effect from "effect/Effect";
|
|
7
7
|
import * as Exit from "effect/Exit";
|
|
8
|
-
import * as Fn from "effect/Function";
|
|
9
8
|
import * as Layer from "effect/Layer";
|
|
10
|
-
import * as Match from "effect/Match";
|
|
11
9
|
import * as Option from "effect/Option";
|
|
12
10
|
import * as Predicate from "effect/Predicate";
|
|
13
11
|
import * as Rec from "effect/Record";
|
|
@@ -15,10 +13,12 @@ import * as Schema from "effect/Schema";
|
|
|
15
13
|
import * as Str from "effect/String";
|
|
16
14
|
import { TransactCallbackNotInvokedError, TransactInternalError } from "./internal/server.js";
|
|
17
15
|
import * as ServerSynchronizationContext from "./internal/server-synchronization-context.js";
|
|
18
|
-
import { normalizeArgs } from "./internal/utils.js";
|
|
19
|
-
import * as Mutators from "./mutators.js";
|
|
20
16
|
import { QueryNameSymbol, RunQuerySymbol } from "./query.js";
|
|
21
17
|
import { DatabaseSymbol, ServerTransactionCallbackSymbol } from "./server-transaction.js";
|
|
18
|
+
/**
|
|
19
|
+
* Handles Zero's push endpoint, running each mutation's server implementation: its override from
|
|
20
|
+
* `ZfxMutator.server`, or else its shared body in a server transaction.
|
|
21
|
+
*/
|
|
22
22
|
export const handleMutate = Effect.fn(function* ({ transaction, mutators, query, body, userId, }) {
|
|
23
23
|
const ctx = yield* Effect.context();
|
|
24
24
|
return yield* Effect.tryPromise({
|
|
@@ -30,15 +30,21 @@ export const handleMutate = Effect.fn(function* ({ transaction, mutators, query,
|
|
|
30
30
|
const innerCtx = yield* Effect.context();
|
|
31
31
|
const exitDeferred = yield* Deferred.make();
|
|
32
32
|
yield* Effect.tryPromise({
|
|
33
|
-
try: (signal) => transact_((transaction) => fn(transaction).pipe(Effect.onExit((exit) => Deferred.done(exitDeferred, exit)), Effect.catchCause((cause) => Effect.die(makeApplicationError(cause))), Effect.asVoid,
|
|
33
|
+
try: (signal) => transact_((transaction) => fn(transaction).pipe(Effect.onExit((exit) => Deferred.done(exitDeferred, exit)), Effect.catchCause((cause) => Effect.die(makeApplicationError(cause))), Effect.asVoid, (effect) => Effect.runPromiseWith(innerCtx)(effect, { signal }))),
|
|
34
34
|
catch: (error) => new TransactInternalError({ cause: Cause.fail(error) }),
|
|
35
35
|
}).pipe(Effect.flatMap((value) => Deferred.succeed(response, value)));
|
|
36
|
-
return yield* Deferred.poll(exitDeferred).pipe(Effect.flatMap(Effect.fromOption
|
|
36
|
+
return yield* Deferred.poll(exitDeferred).pipe(Effect.flatMap(Effect.fromOption(() => new TransactCallbackNotInvokedError())), Effect.flatten);
|
|
37
37
|
}, ServerSynchronizationContext.guard);
|
|
38
|
-
const exit = yield* runMutation(mutators, mutation).pipe(ServerSynchronizationContext.finalize, Effect.provide([
|
|
38
|
+
const exit = yield* runMutation(mutators, transaction, mutation).pipe(ServerSynchronizationContext.finalize, Effect.provide([
|
|
39
39
|
Layer.succeed(transaction[ServerTransactionCallbackSymbol], { transact }),
|
|
40
40
|
ServerSynchronizationContext.layer,
|
|
41
|
-
]), Effect.
|
|
41
|
+
]), Effect.withSpan("zero.mutation.handle", {
|
|
42
|
+
attributes: {
|
|
43
|
+
"zero.mutator": mutation.name,
|
|
44
|
+
"zero.clientID": mutation.clientID,
|
|
45
|
+
"zero.mutationID": mutation.id,
|
|
46
|
+
},
|
|
47
|
+
}), Effect.exit);
|
|
42
48
|
return yield* Deferred.poll(response).pipe(Effect.flatMap(Effect.fromOption), Effect.catchTag("NoSuchElementError", () => Effect.failCause(Exit.isFailure(exit) ? exit.cause : Cause.empty)), Effect.flatten);
|
|
43
49
|
}).pipe(Effect.catchCause((cause) => {
|
|
44
50
|
const error = cause.pipe(Cause.squash, (squashed) => TransactInternalError.is(squashed) ? Cause.squash(squashed.cause) : squashed);
|
|
@@ -52,12 +58,21 @@ export const handleMutate = Effect.fn(function* ({ transaction, mutators, query,
|
|
|
52
58
|
catch: (e) => new HandleMutateError({ cause: Cause.fail(e) }),
|
|
53
59
|
});
|
|
54
60
|
});
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Runs a mutation: its override if it has one, or else its shared body in a server transaction. Like upstream, names
|
|
63
|
+
* are split on "." or "|" (the separator of Zero's legacy custom mutators), at any depth. Their services aren't tracked
|
|
64
|
+
* from here on: `handleMutate` already requires every implementation's.
|
|
65
|
+
*/
|
|
66
|
+
const runMutation = Effect.fn(function* (mutators, transaction, mutation) {
|
|
67
|
+
const { registry, overrides } = Rec.map(mutators, (root) => Arr.reduce(Str.split(mutation.name, /[.|]/), Option.some(root), (tree, key) =>
|
|
68
|
+
// Only an object has keys to walk into; the checks below make sure the walk ended at a mutator.
|
|
69
|
+
tree.pipe(Option.filter(Predicate.isObject), Option.flatMap(Rec.get(key)))));
|
|
70
|
+
const mutator = yield* registry.pipe(Option.filter((u) => Predicate.isFunction(u) && Predicate.hasProperty(u, "mutatorName")), Effect.fromOption(() => new MutatorNotFoundError({ name: mutation.name })));
|
|
71
|
+
const args = yield* Schema.decodeUnknownEffect(mutator.payload)(mutation.args[0]).pipe(Effect.catchTag("SchemaError", (e) => Effect.fail(new ServerArgsParseError({ cause: Cause.fail(e) }))));
|
|
72
|
+
return yield* overrides.pipe(Option.filter((u) => Predicate.isFunction(u)), Option.match({
|
|
73
|
+
onNone: () => transaction.execute(mutator.mutator(args)),
|
|
74
|
+
onSome: (run) => run(args),
|
|
75
|
+
}));
|
|
61
76
|
});
|
|
62
77
|
export const makeApplicationError = (cause) => {
|
|
63
78
|
const error = Cause.squash(cause);
|
|
@@ -77,7 +92,7 @@ export const handleQuery = Effect.fn(function* ({ queries, schema, body, userId,
|
|
|
77
92
|
const ctx = yield* Effect.context();
|
|
78
93
|
return yield* Effect.tryPromise({
|
|
79
94
|
try: () => handleQueryRequest({
|
|
80
|
-
handler: (name, args) => Arr.findFirst(queries, (q) => q[QueryNameSymbol] === name).pipe(Effect.fromOption
|
|
95
|
+
handler: (name, args) => Arr.findFirst(queries, (q) => q[QueryNameSymbol] === name).pipe(Effect.fromOption(() => new QueryNotFound({ name })), Effect.flatMap((query) => query[RunQuerySymbol]({ _tag: "Encoded", args })), Effect.runSyncWith(ctx)),
|
|
81
96
|
schema,
|
|
82
97
|
// `query` params are unused by the query endpoint at runtime but required by the options type.
|
|
83
98
|
query: {},
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACtH,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|