effect-zero 0.5.0 → 0.6.0-beta.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/README.md +56 -38
- package/dist/client-transaction.d.ts +11 -9
- package/dist/client-transaction.d.ts.map +1 -1
- package/dist/client-transaction.js +4 -1
- package/dist/client-transaction.js.map +1 -1
- package/dist/client.d.ts +68 -66
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -10
- package/dist/client.js.map +1 -1
- package/dist/client.test.d.ts +2 -0
- package/dist/client.test.d.ts.map +1 -0
- package/dist/client.test.js +19 -0
- package/dist/client.test.js.map +1 -0
- package/dist/internal/server-synchronization-context.d.ts.map +1 -1
- package/dist/internal/server-synchronization-context.js +2 -2
- package/dist/internal/server-synchronization-context.js.map +1 -1
- package/dist/internal/server.d.ts +13 -28
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +5 -19
- package/dist/internal/server.js.map +1 -1
- package/dist/internal/server.test.js +5 -3
- package/dist/internal/server.test.js.map +1 -1
- package/dist/server-transaction.d.ts +82 -109
- package/dist/server-transaction.d.ts.map +1 -1
- package/dist/server-transaction.js +26 -74
- package/dist/server-transaction.js.map +1 -1
- package/dist/server.d.ts +207 -354
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +60 -80
- package/dist/server.js.map +1 -1
- package/dist/types/ast.d.ts +4 -0
- package/dist/types/ast.d.ts.map +1 -0
- package/dist/types/ast.js +4 -0
- package/dist/types/ast.js.map +1 -0
- package/dist/types/{queries.d.ts → custom-queries.d.ts} +19 -1
- package/dist/types/custom-queries.d.ts.map +1 -0
- package/dist/types/{queries.js → custom-queries.js} +5 -6
- package/dist/types/custom-queries.js.map +1 -0
- package/dist/types/mutate-server.d.ts +160 -0
- package/dist/types/mutate-server.d.ts.map +1 -0
- package/dist/types/mutate-server.js +29 -0
- package/dist/types/mutate-server.js.map +1 -0
- package/dist/types/mutation-id.d.ts +7 -0
- package/dist/types/mutation-id.d.ts.map +1 -0
- package/dist/types/mutation-id.js +8 -0
- package/dist/types/mutation-id.js.map +1 -0
- package/dist/types/mutation.d.ts +79 -0
- package/dist/types/mutation.d.ts.map +1 -0
- package/dist/types/mutation.js +125 -0
- package/dist/types/mutation.js.map +1 -0
- package/dist/types/push.d.ts +100 -85
- package/dist/types/push.d.ts.map +1 -1
- package/dist/types/push.js +7 -134
- package/dist/types/push.js.map +1 -1
- package/dist/types/query-server.d.ts +144 -0
- package/dist/types/query-server.d.ts.map +1 -0
- package/dist/types/query-server.js +19 -0
- package/dist/types/query-server.js.map +1 -0
- package/dist/types.test.js +4 -4
- package/dist/types.test.js.map +1 -1
- package/package.json +35 -5
- package/src/client-transaction.ts +5 -1
- package/src/client.ts +14 -15
- package/src/internal/server-synchronization-context.ts +37 -39
- package/src/internal/server.ts +8 -31
- package/src/server-transaction.ts +55 -101
- package/src/server.ts +147 -151
- package/src/types/ast.ts +4 -0
- package/src/types/{queries.ts → custom-queries.ts} +4 -6
- package/src/types/mutate-server.ts +37 -0
- package/src/types/mutation-id.ts +10 -0
- package/src/types/mutation.ts +155 -0
- package/src/types/push.ts +7 -167
- package/src/types/query-server.ts +27 -0
- package/dist/types/queries.d.ts.map +0 -1
- package/dist/types/queries.js.map +0 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { describe, it } from "@effect/vitest";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Exit from "effect/Exit";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import { ClientArgsParseError } from "./client.js";
|
|
6
|
+
describe("ClientArgsParseError", () => {
|
|
7
|
+
// A `SchemaError` is not `instanceof Error`, so the validation detail is masked to a generic
|
|
8
|
+
// "Internal error" rather than leaked. The getter still exists so a `getErrorMessage`-style
|
|
9
|
+
// consumer reads that clean string instead of serializing the raw `Cause` into a "Parsed message" blob.
|
|
10
|
+
it.effect("masks the schema validation detail to 'Internal error'", Effect.fn(function* ({ expect }) {
|
|
11
|
+
const exit = yield* Effect.exit(Schema.decodeUnknownEffect(Schema.Struct({ id: Schema.String }))({}));
|
|
12
|
+
expect(Exit.isFailure(exit)).toBe(true);
|
|
13
|
+
if (!Exit.isFailure(exit))
|
|
14
|
+
return;
|
|
15
|
+
const error = new ClientArgsParseError({ cause: exit.cause });
|
|
16
|
+
expect(error.message).toBe("Internal error");
|
|
17
|
+
}));
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=client.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.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,aAAa,CAAC;AAEnD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,6FAA6F;IAC7F,4FAA4F;IAC5F,wGAAwG;IACxG,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-synchronization-context.d.ts","sourceRoot":"","sources":["../../src/internal/server-synchronization-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;;;;;;;;AAG5E,qBAAa,4BAA6B,SAAQ,iCASjD;CAAG;AAEJ,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAE3D,CAAC;AAGF,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"server-synchronization-context.d.ts","sourceRoot":"","sources":["../../src/internal/server-synchronization-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;;;;;;;;AAG5E,qBAAa,4BAA6B,SAAQ,iCASjD;CAAG;AAEJ,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAE3D,CAAC;AAGF,eAAO,MAAM,KAAK,GAAwB,CAAC,EAAE,CAAC,EAAE,CAAC,sHAY/C,CAAC;AAEH,eAAO,MAAM,QAAQ,GAAwB,CAAC,EAAE,CAAC,EAAE,CAAC,sHAwBlD,CAAC"}
|
|
@@ -14,7 +14,7 @@ export class ServerSynchronizationContext extends Context.Service()(prefixId("Se
|
|
|
14
14
|
}
|
|
15
15
|
export const layer = Layer.effect(ServerSynchronizationContext)(ServerSynchronizationContext.make);
|
|
16
16
|
// Ensures that only one transaction is executed at a time and checks that another transaction wasn't already executed.
|
|
17
|
-
export const guard =
|
|
17
|
+
export const guard = Effect.fn(function* (effect) {
|
|
18
18
|
const ctx = yield* ServerSynchronizationContext;
|
|
19
19
|
return yield* SynchronizedRef.modifyEffect(ctx.wasTransactionExecuted, Effect.fn(function* (wasTransactionExecuted) {
|
|
20
20
|
if (wasTransactionExecuted) {
|
|
@@ -24,7 +24,7 @@ export const guard = (effect) => Effect.gen(function* () {
|
|
|
24
24
|
return [result, true];
|
|
25
25
|
}));
|
|
26
26
|
});
|
|
27
|
-
export const finalize =
|
|
27
|
+
export const finalize = Effect.fn(function* (effect) {
|
|
28
28
|
const { wasTransactionExecuted } = yield* ServerSynchronizationContext;
|
|
29
29
|
return yield* effect.pipe(
|
|
30
30
|
// Case #2 "One transaction then fail"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-synchronization-context.js","sourceRoot":"","sources":["../../src/internal/server-synchronization-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,OAAO,4BAA6B,SAAQ,OAAO,CAAC,OAAO,EAAgC,CAC/F,QAAQ,CAAC,8BAA8B,CAAC,EACxC;IACE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACxB,OAAO;YACL,sBAAsB,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;SAC3D,CAAC;IACJ,CAAC,CAAC;CACH,CACF;CAAG;AAEJ,MAAM,CAAC,MAAM,KAAK,GAA8C,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CACxG,4BAA4B,CAAC,IAAI,CAClC,CAAC;AAEF,uHAAuH;AACvH,MAAM,CAAC,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"server-synchronization-context.js","sourceRoot":"","sources":["../../src/internal/server-synchronization-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,OAAO,4BAA6B,SAAQ,OAAO,CAAC,OAAO,EAAgC,CAC/F,QAAQ,CAAC,8BAA8B,CAAC,EACxC;IACE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACxB,OAAO;YACL,sBAAsB,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;SAC3D,CAAC;IACJ,CAAC,CAAC;CACH,CACF;CAAG;AAEJ,MAAM,CAAC,MAAM,KAAK,GAA8C,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CACxG,4BAA4B,CAAC,IAAI,CAClC,CAAC;AAEF,uHAAuH;AACvH,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAW,MAA8B;IAC/E,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,4BAA4B,CAAC;IAChD,OAAO,KAAK,CAAC,CAAC,eAAe,CAAC,YAAY,CACxC,GAAG,CAAC,sBAAsB,EAC1B,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,sBAAsB;QACzC,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,CAAC,IAAI,yBAAyB,EAAE,CAAC;QAChD,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAW,MAA8B;IAClF,MAAM,EAAE,sBAAsB,EAAE,GAAG,KAAK,CAAC,CAAC,4BAA4B,CAAC;IAEvE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI;IACvB,sCAAsC;IACtC,yGAAyG;IACzG,MAAM,CAAC,UAAU,CACf,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,sDAAsD,EAAE,CAAC,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CACH;IACD,2CAA2C;IAC3C,8DAA8D;IAC9D,MAAM,CAAC,GAAG,CACR,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CACH,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,44 +1,29 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
3
|
-
declare const ServerTransactionInput_base: Context.ServiceClass<ServerTransactionInput, "effect-zero/ServerTransactionInput", TransactionProviderInput>;
|
|
4
|
-
export declare class ServerTransactionInput extends ServerTransactionInput_base {
|
|
5
|
-
}
|
|
6
|
-
declare const NoTransactionError_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]; }>) => import("effect/Cause").YieldableError & {
|
|
1
|
+
import type * as Cause from "effect/Cause";
|
|
2
|
+
declare const NoTransactionError_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 & {
|
|
7
3
|
readonly _tag: "NoTransactionError";
|
|
8
4
|
} & Readonly<A>;
|
|
9
5
|
export declare class NoTransactionError extends NoTransactionError_base {
|
|
10
6
|
message: string;
|
|
11
7
|
}
|
|
12
|
-
declare const MultipleTransactionsError_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]; }>) =>
|
|
8
|
+
declare const MultipleTransactionsError_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 & {
|
|
13
9
|
readonly _tag: "MultipleTransactionsError";
|
|
14
10
|
} & Readonly<A>;
|
|
15
11
|
export declare class MultipleTransactionsError extends MultipleTransactionsError_base {
|
|
16
12
|
}
|
|
17
|
-
declare const
|
|
18
|
-
declare const
|
|
19
|
-
readonly _tag: "
|
|
13
|
+
declare const TransactInternalErrorTypeId: unique symbol;
|
|
14
|
+
declare const TransactInternalError_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 & {
|
|
15
|
+
readonly _tag: "TransactInternalError";
|
|
20
16
|
} & Readonly<A>;
|
|
21
|
-
export declare class
|
|
22
|
-
readonly
|
|
23
|
-
readonly receivedMutationID: number;
|
|
24
|
-
readonly lastMutationID: number | bigint;
|
|
17
|
+
export declare class TransactInternalError extends TransactInternalError_base<{
|
|
18
|
+
readonly cause: Cause.Cause<unknown>;
|
|
25
19
|
}> {
|
|
26
|
-
readonly [
|
|
27
|
-
|
|
28
|
-
static is(e: unknown): e is OutOfOrderMutationError;
|
|
20
|
+
readonly [TransactInternalErrorTypeId]: symbol;
|
|
21
|
+
static is(e: unknown): e is TransactInternalError;
|
|
29
22
|
}
|
|
30
|
-
declare const
|
|
31
|
-
|
|
32
|
-
readonly _tag: "MutationAlreadyProcessedError";
|
|
23
|
+
declare const TransactCallbackNotInvokedError_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 & {
|
|
24
|
+
readonly _tag: "TransactCallbackNotInvokedError";
|
|
33
25
|
} & Readonly<A>;
|
|
34
|
-
export declare class
|
|
35
|
-
readonly clientID: string;
|
|
36
|
-
readonly received: number;
|
|
37
|
-
readonly actual: number | bigint;
|
|
38
|
-
}> {
|
|
39
|
-
readonly [MutationAlreadyProcessedErrorTypeId]: symbol;
|
|
40
|
-
get message(): string;
|
|
41
|
-
static is(e: unknown): e is MutationAlreadyProcessedError;
|
|
26
|
+
export declare class TransactCallbackNotInvokedError extends TransactCallbackNotInvokedError_base {
|
|
42
27
|
}
|
|
43
28
|
export {};
|
|
44
29
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;;;;AAK3C,qBAAa,kBAAmB,SAAQ,uBAAsC;IAC5E,OAAO,SAAuE;CAC/E;;;;AACD,qBAAa,yBAA0B,SAAQ,8BAA6C;CAAG;AAE/F,QAAA,MAAM,2BAA2B,eAAgD,CAAC;;;;AAClF,qBAAa,qBAAsB,SAAQ,2BAA0C;IACnF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;IACA,QAAQ,CAAC,CAAC,2BAA2B,CAAC,SAA+B;IACrE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,qBAAqB;CAGlD;;;;AAED,qBAAa,+BAAgC,SAAQ,oCAAmD;CAAG"}
|
package/dist/internal/server.js
CHANGED
|
@@ -1,32 +1,18 @@
|
|
|
1
|
-
import * as Context from "effect/Context";
|
|
2
1
|
import * as Data from "effect/Data";
|
|
3
2
|
import * as Predicate from "effect/Predicate";
|
|
4
3
|
import { prefixId } from "./utils.js";
|
|
5
|
-
export class ServerTransactionInput extends Context.Service()(prefixId("ServerTransactionInput")) {
|
|
6
|
-
}
|
|
7
4
|
export class NoTransactionError extends Data.TaggedError("NoTransactionError") {
|
|
8
5
|
message = "No transaction detected in a mutation, a transaction is required.";
|
|
9
6
|
}
|
|
10
7
|
export class MultipleTransactionsError extends Data.TaggedError("MultipleTransactionsError") {
|
|
11
8
|
}
|
|
12
|
-
const
|
|
13
|
-
export class
|
|
14
|
-
[
|
|
15
|
-
get message() {
|
|
16
|
-
return `Client ${this.clientID} sent mutation ID ${this.receivedMutationID} but expected ${this.lastMutationID}`;
|
|
17
|
-
}
|
|
9
|
+
const TransactInternalErrorTypeId = Symbol.for(prefixId("TransactInternalError"));
|
|
10
|
+
export class TransactInternalError extends Data.TaggedError("TransactInternalError") {
|
|
11
|
+
[TransactInternalErrorTypeId] = TransactInternalErrorTypeId;
|
|
18
12
|
static is(e) {
|
|
19
|
-
return Predicate.hasProperty(e,
|
|
13
|
+
return Predicate.hasProperty(e, TransactInternalErrorTypeId);
|
|
20
14
|
}
|
|
21
15
|
}
|
|
22
|
-
|
|
23
|
-
export class MutationAlreadyProcessedError extends Data.TaggedError("MutationAlreadyProcessedError") {
|
|
24
|
-
[MutationAlreadyProcessedErrorTypeId] = MutationAlreadyProcessedErrorTypeId;
|
|
25
|
-
get message() {
|
|
26
|
-
return `Ignoring mutation from ${this.clientID} with ID ${this.received} as it was already processed. Expected: ${this.actual}`;
|
|
27
|
-
}
|
|
28
|
-
static is(e) {
|
|
29
|
-
return Predicate.hasProperty(e, MutationAlreadyProcessedErrorTypeId);
|
|
30
|
-
}
|
|
16
|
+
export class TransactCallbackNotInvokedError extends Data.TaggedError("TransactCallbackNotInvokedError") {
|
|
31
17
|
}
|
|
32
18
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC;IAC5E,OAAO,GAAG,mEAAmE,CAAC;CAC/E;AACD,MAAM,OAAO,yBAA0B,SAAQ,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC;CAAG;AAE/F,MAAM,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAClF,MAAM,OAAO,qBAAsB,SAAQ,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAEjF;IACS,CAAC,2BAA2B,CAAC,GAAG,2BAA2B,CAAC;IACrE,MAAM,CAAC,EAAE,CAAC,CAAU;QAClB,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,MAAM,OAAO,+BAAgC,SAAQ,IAAI,CAAC,WAAW,CAAC,iCAAiC,CAAC;CAAG"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { describe, it } from "@effect/vitest";
|
|
2
|
-
import { assertExitFailure } from "@effect/vitest/utils";
|
|
3
2
|
import * as Cause from "effect/Cause";
|
|
4
3
|
import * as Effect from "effect/Effect";
|
|
5
4
|
import * as Exit from "effect/Exit";
|
|
6
5
|
import { NoTransactionError } from "./server.js";
|
|
7
6
|
import * as ServerSynchronizationContext from "./server-synchronization-context.js";
|
|
8
7
|
describe("ServerSynchronizationContext", () => {
|
|
9
|
-
it.effect("finalize should return NoTransactionError when called without guard",
|
|
8
|
+
it.effect("finalize should return NoTransactionError when called without guard", Effect.fn(function* ({ expect }) {
|
|
10
9
|
const result = yield* Effect.void.pipe(ServerSynchronizationContext.finalize, Effect.provide(ServerSynchronizationContext.layer), Effect.exit);
|
|
11
|
-
|
|
10
|
+
expect(Exit.isFailure(result)).toBe(true);
|
|
11
|
+
if (Exit.isFailure(result)) {
|
|
12
|
+
expect(Cause.squash(result.cause)).toBeInstanceOf(NoTransactionError);
|
|
13
|
+
}
|
|
12
14
|
}));
|
|
13
15
|
it.effect("finalize shouldn't return errors when called with guard", Effect.fn(function* ({ expect }) {
|
|
14
16
|
const result = yield* Effect.void.pipe(ServerSynchronizationContext.guard, ServerSynchronizationContext.finalize, Effect.provide(ServerSynchronizationContext.layer), Effect.exit);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.test.js","sourceRoot":"","sources":["../../src/internal/server.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"server.test.js","sourceRoot":"","sources":["../../src/internal/server.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,4BAA4B,MAAM,qCAAqC,CAAC;AAEpF,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,MAAM,CACP,qEAAqE,EACrE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CACpC,4BAA4B,CAAC,QAAQ,EACrC,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAClD,MAAM,CAAC,IAAI,CACZ,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,EAAE,CAAC,MAAM,CACP,yDAAyD,EACzD,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CACpC,4BAA4B,CAAC,KAAK,EAClC,4BAA4B,CAAC,QAAQ,EACrC,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAClD,MAAM,CAAC,IAAI,CACZ,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,183 +1,156 @@
|
|
|
1
1
|
import type { Schema as ZeroSchema, ServerTransaction as ZeroServerTransaction } from "@rocicorp/zero";
|
|
2
|
-
import type {
|
|
2
|
+
import type { ZQLDatabase } from "@rocicorp/zero/server";
|
|
3
3
|
import * as Cause from "effect/Cause";
|
|
4
4
|
import * as Ctx from "effect/Context";
|
|
5
5
|
import * as Effect from "effect/Effect";
|
|
6
6
|
import type { NodeInspectSymbol } from "effect/Inspectable";
|
|
7
7
|
import type * as Unify from "effect/Unify";
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
import * as ServerSynchronizationContext from "./internal/server-synchronization-context.js";
|
|
8
|
+
import * as ClientTransaction from "./client-transaction.js";
|
|
9
|
+
import type { MultipleTransactionsError, TransactCallbackNotInvokedError, TransactInternalError } from "./internal/server.js";
|
|
10
|
+
import type * as ServerSynchronizationContext from "./internal/server-synchronization-context.js";
|
|
11
|
+
export declare const DatabaseSymbol: unique symbol;
|
|
12
|
+
export declare const ServerTransactionCallbackSymbol: unique symbol;
|
|
11
13
|
export type Context<TSchema extends ZeroSchema, TTransaction> = ReturnType<typeof make<any, TSchema, TTransaction>>;
|
|
12
14
|
export declare const make: <const Id extends string, TSchema extends ZeroSchema, TTransaction>(id: Id, database: ZQLDatabase<TSchema, TTransaction>, clientTransaction: ClientTransaction.Context<TSchema>) => {
|
|
13
|
-
|
|
15
|
+
use: <A>(fn: (transaction: ZeroServerTransaction<TSchema, TTransaction>, options: {
|
|
16
|
+
readonly signal: AbortSignal;
|
|
17
|
+
}) => PromiseLike<A>) => Effect.Effect<A, TransactionUseError, {
|
|
18
|
+
readonly Service: ZeroServerTransaction<TSchema, TTransaction>;
|
|
19
|
+
readonly key: `${string}/ServerTransactionContext`;
|
|
20
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
21
|
+
}>;
|
|
22
|
+
execute: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, MultipleTransactionsError | TransactInternalError | TransactCallbackNotInvokedError | E, ServerSynchronizationContext.ServerSynchronizationContext | {
|
|
23
|
+
readonly Service: {
|
|
24
|
+
readonly transact: <A_1, E_1, R_1>(fn: (transaction: ZeroServerTransaction<TSchema, TTransaction>) => Effect.Effect<A_1, E_1, R_1>) => Effect.Effect<A_1, E_1 | TransactInternalError | TransactCallbackNotInvokedError | MultipleTransactionsError, R_1 | ServerSynchronizationContext.ServerSynchronizationContext>;
|
|
25
|
+
};
|
|
26
|
+
readonly key: `${string}/ServerTransactionCallback`;
|
|
27
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
28
|
+
} | Exclude<R, {
|
|
29
|
+
readonly Service: ZeroServerTransaction<TSchema, TTransaction>;
|
|
30
|
+
readonly key: `${string}/ServerTransactionContext`;
|
|
31
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
32
|
+
} | {
|
|
33
|
+
readonly Service: import("@rocicorp/zero").Transaction<TSchema>;
|
|
34
|
+
readonly key: any;
|
|
35
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
36
|
+
}>>;
|
|
37
|
+
[DatabaseSymbol]: ZQLDatabase<TSchema, TTransaction>;
|
|
38
|
+
[ServerTransactionCallbackSymbol]: {
|
|
14
39
|
new (_: never): {
|
|
15
40
|
readonly Service: {
|
|
16
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
17
|
-
transactionHooks: TransactionProviderHooks;
|
|
41
|
+
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>;
|
|
18
42
|
};
|
|
19
|
-
readonly key: `${string}/
|
|
43
|
+
readonly key: `${string}/ServerTransactionCallback`;
|
|
20
44
|
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
21
45
|
};
|
|
22
|
-
readonly key: `${string}/
|
|
46
|
+
readonly key: `${string}/ServerTransactionCallback`;
|
|
23
47
|
of(this: void, self: {
|
|
24
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
25
|
-
transactionHooks: TransactionProviderHooks;
|
|
48
|
+
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>;
|
|
26
49
|
}): {
|
|
27
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
28
|
-
transactionHooks: TransactionProviderHooks;
|
|
50
|
+
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>;
|
|
29
51
|
};
|
|
30
52
|
context(self: {
|
|
31
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
32
|
-
transactionHooks: TransactionProviderHooks;
|
|
53
|
+
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>;
|
|
33
54
|
}): Ctx.Context<{
|
|
34
55
|
readonly Service: {
|
|
35
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
36
|
-
transactionHooks: TransactionProviderHooks;
|
|
56
|
+
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>;
|
|
37
57
|
};
|
|
38
|
-
readonly key: `${string}/
|
|
58
|
+
readonly key: `${string}/ServerTransactionCallback`;
|
|
39
59
|
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
40
60
|
}>;
|
|
41
|
-
use<A,
|
|
42
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
43
|
-
|
|
44
|
-
}) => Effect.Effect<A, E, R>): Effect.Effect<A, E, {
|
|
61
|
+
use<A, E_2, R_2>(f: (service: {
|
|
62
|
+
readonly transact: <A_1, E_3, R_3>(fn: (transaction: ZeroServerTransaction<TSchema, TTransaction>) => Effect.Effect<A_1, E_3, R_3>) => Effect.Effect<A_1, E_3 | TransactInternalError | TransactCallbackNotInvokedError | MultipleTransactionsError, R_3 | ServerSynchronizationContext.ServerSynchronizationContext>;
|
|
63
|
+
}) => Effect.Effect<A, E_2, R_2>): Effect.Effect<A, E_2, {
|
|
45
64
|
readonly Service: {
|
|
46
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
47
|
-
transactionHooks: TransactionProviderHooks;
|
|
65
|
+
readonly transact: <A_1, E_3, R_3>(fn: (transaction: ZeroServerTransaction<TSchema, TTransaction>) => Effect.Effect<A_1, E_3, R_3>) => Effect.Effect<A_1, E_3 | TransactInternalError | TransactCallbackNotInvokedError | MultipleTransactionsError, R_3 | ServerSynchronizationContext.ServerSynchronizationContext>;
|
|
48
66
|
};
|
|
49
|
-
readonly key: `${string}/
|
|
67
|
+
readonly key: `${string}/ServerTransactionCallback`;
|
|
50
68
|
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
51
|
-
} |
|
|
69
|
+
} | R_2>;
|
|
52
70
|
useSync<A>(f: (service: {
|
|
53
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
54
|
-
transactionHooks: TransactionProviderHooks;
|
|
71
|
+
readonly transact: <A_1, E_1, R_1>(fn: (transaction: ZeroServerTransaction<TSchema, TTransaction>) => Effect.Effect<A_1, E_1, R_1>) => Effect.Effect<A_1, E_1 | TransactInternalError | TransactCallbackNotInvokedError | MultipleTransactionsError, R_1 | ServerSynchronizationContext.ServerSynchronizationContext>;
|
|
55
72
|
}) => A): Effect.Effect<A, never, {
|
|
56
73
|
readonly Service: {
|
|
57
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
58
|
-
transactionHooks: TransactionProviderHooks;
|
|
74
|
+
readonly transact: <A_1, E_1, R_1>(fn: (transaction: ZeroServerTransaction<TSchema, TTransaction>) => Effect.Effect<A_1, E_1, R_1>) => Effect.Effect<A_1, E_1 | TransactInternalError | TransactCallbackNotInvokedError | MultipleTransactionsError, R_1 | ServerSynchronizationContext.ServerSynchronizationContext>;
|
|
59
75
|
};
|
|
60
|
-
readonly key: `${string}/
|
|
76
|
+
readonly key: `${string}/ServerTransactionCallback`;
|
|
61
77
|
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
62
78
|
}>;
|
|
63
79
|
readonly Identifier: {
|
|
64
80
|
readonly Service: {
|
|
65
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
66
|
-
transactionHooks: TransactionProviderHooks;
|
|
81
|
+
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>;
|
|
67
82
|
};
|
|
68
|
-
readonly key: `${string}/
|
|
83
|
+
readonly key: `${string}/ServerTransactionCallback`;
|
|
69
84
|
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
70
85
|
};
|
|
71
86
|
readonly Service: {
|
|
72
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
73
|
-
transactionHooks: TransactionProviderHooks;
|
|
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>;
|
|
74
88
|
};
|
|
75
89
|
readonly stack?: string | undefined;
|
|
76
90
|
readonly "~effect/Context/Service": Ctx.ServiceTypeId;
|
|
77
91
|
readonly "~effect/Effect": Effect.Variance<{
|
|
78
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
79
|
-
transactionHooks: TransactionProviderHooks;
|
|
92
|
+
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>;
|
|
80
93
|
}, never, {
|
|
81
94
|
readonly Service: {
|
|
82
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
83
|
-
transactionHooks: TransactionProviderHooks;
|
|
95
|
+
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>;
|
|
84
96
|
};
|
|
85
|
-
readonly key: `${string}/
|
|
97
|
+
readonly key: `${string}/ServerTransactionCallback`;
|
|
86
98
|
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
87
99
|
}>;
|
|
88
100
|
[Symbol.iterator](): Effect.EffectIterator<Effect.Effect<{
|
|
89
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
90
|
-
transactionHooks: TransactionProviderHooks;
|
|
101
|
+
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>;
|
|
91
102
|
}, never, {
|
|
92
103
|
readonly Service: {
|
|
93
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
94
|
-
transactionHooks: TransactionProviderHooks;
|
|
104
|
+
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>;
|
|
95
105
|
};
|
|
96
|
-
readonly key: `${string}/
|
|
106
|
+
readonly key: `${string}/ServerTransactionCallback`;
|
|
97
107
|
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
98
108
|
}>>;
|
|
99
109
|
[Unify.typeSymbol]?: unknown;
|
|
100
110
|
[Unify.unifySymbol]?: Effect.EffectUnify<Ctx.ServiceClass<{
|
|
101
111
|
readonly Service: {
|
|
102
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
103
|
-
transactionHooks: TransactionProviderHooks;
|
|
112
|
+
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>;
|
|
104
113
|
};
|
|
105
|
-
readonly key: `${string}/
|
|
114
|
+
readonly key: `${string}/ServerTransactionCallback`;
|
|
106
115
|
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
107
|
-
}, `${string}/
|
|
108
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
109
|
-
transactionHooks: TransactionProviderHooks;
|
|
116
|
+
}, `${string}/ServerTransactionCallback`, {
|
|
117
|
+
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>;
|
|
110
118
|
}>> | undefined;
|
|
111
119
|
[Unify.ignoreSymbol]?: {};
|
|
112
120
|
pipe<A>(this: A): A;
|
|
113
121
|
pipe<A, B = never>(this: A, ab: (_: A) => B): B;
|
|
114
122
|
pipe<A, B_1 = never, C = never>(this: A, ab: (_: A) => B_1, bc: (_: B_1) => C): C;
|
|
115
123
|
pipe<A, B_2 = never, C_1 = never, D = never>(this: A, ab: (_: A) => B_2, bc: (_: B_2) => C_1, cd: (_: C_1) => D): D;
|
|
116
|
-
pipe<A, B_3 = never, C_2 = never, D_1 = never,
|
|
117
|
-
pipe<A, B_4 = never, C_3 = never, D_2 = never,
|
|
118
|
-
pipe<A, B_5 = never, C_4 = never, D_3 = never,
|
|
119
|
-
pipe<A, B_6 = never, C_5 = never, D_4 = never,
|
|
120
|
-
pipe<A, B_7 = never, C_6 = never, D_5 = never,
|
|
121
|
-
pipe<A, B_8 = never, C_7 = never, D_6 = never,
|
|
122
|
-
pipe<A, B_9 = never, C_8 = never, D_7 = never,
|
|
123
|
-
pipe<A, B_10 = never, C_9 = never, D_8 = never,
|
|
124
|
-
pipe<A, B_11 = never, C_10 = never, D_9 = never,
|
|
125
|
-
pipe<A, B_12 = never, C_11 = never, D_10 = never,
|
|
126
|
-
pipe<A, B_13 = never, C_12 = never, D_11 = never,
|
|
127
|
-
pipe<A, B_14 = never, C_13 = never, D_12 = never,
|
|
128
|
-
pipe<A, B_15 = never, C_14 = never, D_13 = never,
|
|
129
|
-
pipe<A, B_16 = never, C_15 = never, D_14 = never,
|
|
130
|
-
pipe<A, B_17 = never, C_16 = never, D_15 = never,
|
|
131
|
-
pipe<A, B_18 = never, C_17 = never, D_16 = never,
|
|
132
|
-
pipe<A, B_19 = never, C_18 = never, D_17 = never,
|
|
133
|
-
pipe<A, B_20 = never, C_19 = never, D_18 = never,
|
|
124
|
+
pipe<A, B_3 = never, C_2 = never, D_1 = never, E_4 = never>(this: A, ab: (_: A) => B_3, bc: (_: B_3) => C_2, cd: (_: C_2) => D_1, de: (_: D_1) => E_4): E_4;
|
|
125
|
+
pipe<A, B_4 = never, C_3 = never, D_2 = never, E_5 = never, F = never>(this: A, ab: (_: A) => B_4, bc: (_: B_4) => C_3, cd: (_: C_3) => D_2, de: (_: D_2) => E_5, ef: (_: E_5) => F): F;
|
|
126
|
+
pipe<A, B_5 = never, C_4 = never, D_3 = never, E_6 = never, F_1 = never, G = never>(this: A, ab: (_: A) => B_5, bc: (_: B_5) => C_4, cd: (_: C_4) => D_3, de: (_: D_3) => E_6, ef: (_: E_6) => F_1, fg: (_: F_1) => G): G;
|
|
127
|
+
pipe<A, B_6 = never, C_5 = never, D_4 = never, E_7 = never, F_2 = never, G_1 = never, H = never>(this: A, ab: (_: A) => B_6, bc: (_: B_6) => C_5, cd: (_: C_5) => D_4, de: (_: D_4) => E_7, ef: (_: E_7) => F_2, fg: (_: F_2) => G_1, gh: (_: G_1) => H): H;
|
|
128
|
+
pipe<A, B_7 = never, C_6 = never, D_5 = never, E_8 = never, F_3 = never, G_2 = never, H_1 = never, I = never>(this: A, ab: (_: A) => B_7, bc: (_: B_7) => C_6, cd: (_: C_6) => D_5, de: (_: D_5) => E_8, ef: (_: E_8) => F_3, fg: (_: F_3) => G_2, gh: (_: G_2) => H_1, hi: (_: H_1) => I): I;
|
|
129
|
+
pipe<A, B_8 = never, C_7 = never, D_6 = never, E_9 = never, F_4 = never, G_3 = never, H_2 = never, I_1 = never, J = never>(this: A, ab: (_: A) => B_8, bc: (_: B_8) => C_7, cd: (_: C_7) => D_6, de: (_: D_6) => E_9, ef: (_: E_9) => F_4, fg: (_: F_4) => G_3, gh: (_: G_3) => H_2, hi: (_: H_2) => I_1, ij: (_: I_1) => J): J;
|
|
130
|
+
pipe<A, B_9 = never, C_8 = never, D_7 = never, E_10 = never, F_5 = never, G_4 = never, H_3 = never, I_2 = never, J_1 = never, K = never>(this: A, ab: (_: A) => B_9, bc: (_: B_9) => C_8, cd: (_: C_8) => D_7, de: (_: D_7) => E_10, ef: (_: E_10) => F_5, fg: (_: F_5) => G_4, gh: (_: G_4) => H_3, hi: (_: H_3) => I_2, ij: (_: I_2) => J_1, jk: (_: J_1) => K): K;
|
|
131
|
+
pipe<A, B_10 = never, C_9 = never, D_8 = never, E_11 = never, F_6 = never, G_5 = never, H_4 = never, I_3 = never, J_2 = never, K_1 = never, L = never>(this: A, ab: (_: A) => B_10, bc: (_: B_10) => C_9, cd: (_: C_9) => D_8, de: (_: D_8) => E_11, ef: (_: E_11) => F_6, fg: (_: F_6) => G_5, gh: (_: G_5) => H_4, hi: (_: H_4) => I_3, ij: (_: I_3) => J_2, jk: (_: J_2) => K_1, kl: (_: K_1) => L): L;
|
|
132
|
+
pipe<A, B_11 = never, C_10 = never, D_9 = never, E_12 = never, F_7 = never, G_6 = never, H_5 = never, I_4 = never, J_3 = never, K_2 = never, L_1 = never, M = never>(this: A, ab: (_: A) => B_11, bc: (_: B_11) => C_10, cd: (_: C_10) => D_9, de: (_: D_9) => E_12, ef: (_: E_12) => F_7, fg: (_: F_7) => G_6, gh: (_: G_6) => H_5, hi: (_: H_5) => I_4, ij: (_: I_4) => J_3, jk: (_: J_3) => K_2, kl: (_: K_2) => L_1, lm: (_: L_1) => M): M;
|
|
133
|
+
pipe<A, B_12 = never, C_11 = never, D_10 = never, E_13 = never, F_8 = never, G_7 = never, H_6 = never, I_5 = never, J_4 = never, K_3 = never, L_2 = never, M_1 = never, N = never>(this: A, ab: (_: A) => B_12, bc: (_: B_12) => C_11, cd: (_: C_11) => D_10, de: (_: D_10) => E_13, ef: (_: E_13) => F_8, fg: (_: F_8) => G_7, gh: (_: G_7) => H_6, hi: (_: H_6) => I_5, ij: (_: I_5) => J_4, jk: (_: J_4) => K_3, kl: (_: K_3) => L_2, lm: (_: L_2) => M_1, mn: (_: M_1) => N): N;
|
|
134
|
+
pipe<A, B_13 = never, C_12 = never, D_11 = never, E_14 = never, F_9 = never, G_8 = never, H_7 = never, I_6 = never, J_5 = never, K_4 = never, L_3 = never, M_2 = never, N_1 = never, O = never>(this: A, ab: (_: A) => B_13, bc: (_: B_13) => C_12, cd: (_: C_12) => D_11, de: (_: D_11) => E_14, ef: (_: E_14) => F_9, fg: (_: F_9) => G_8, gh: (_: G_8) => H_7, hi: (_: H_7) => I_6, ij: (_: I_6) => J_5, jk: (_: J_5) => K_4, kl: (_: K_4) => L_3, lm: (_: L_3) => M_2, mn: (_: M_2) => N_1, no: (_: N_1) => O): O;
|
|
135
|
+
pipe<A, B_14 = never, C_13 = never, D_12 = never, E_15 = never, F_10 = never, G_9 = never, H_8 = never, I_7 = never, J_6 = never, K_5 = never, L_4 = never, M_3 = never, N_2 = never, O_1 = never, P = never>(this: A, ab: (_: A) => B_14, bc: (_: B_14) => C_13, cd: (_: C_13) => D_12, de: (_: D_12) => E_15, ef: (_: E_15) => F_10, fg: (_: F_10) => G_9, gh: (_: G_9) => H_8, hi: (_: H_8) => I_7, ij: (_: I_7) => J_6, jk: (_: J_6) => K_5, kl: (_: K_5) => L_4, lm: (_: L_4) => M_3, mn: (_: M_3) => N_2, no: (_: N_2) => O_1, op: (_: O_1) => P): P;
|
|
136
|
+
pipe<A, B_15 = never, C_14 = never, D_13 = never, E_16 = never, F_11 = never, G_10 = never, H_9 = never, I_8 = never, J_7 = never, K_6 = never, L_5 = never, M_4 = never, N_3 = never, O_2 = never, P_1 = never, Q = never>(this: A, ab: (_: A) => B_15, bc: (_: B_15) => C_14, cd: (_: C_14) => D_13, de: (_: D_13) => E_16, ef: (_: E_16) => F_11, fg: (_: F_11) => G_10, gh: (_: G_10) => H_9, hi: (_: H_9) => I_8, ij: (_: I_8) => J_7, jk: (_: J_7) => K_6, kl: (_: K_6) => L_5, lm: (_: L_5) => M_4, mn: (_: M_4) => N_3, no: (_: N_3) => O_2, op: (_: O_2) => P_1, pq: (_: P_1) => Q): Q;
|
|
137
|
+
pipe<A, B_16 = never, C_15 = never, D_14 = never, E_17 = never, F_12 = never, G_11 = never, H_10 = never, I_9 = never, J_8 = never, K_7 = never, L_6 = never, M_5 = never, N_4 = never, O_3 = never, P_2 = never, Q_1 = never, R_4 = never>(this: A, ab: (_: A) => B_16, bc: (_: B_16) => C_15, cd: (_: C_15) => D_14, de: (_: D_14) => E_17, ef: (_: E_17) => F_12, fg: (_: F_12) => G_11, gh: (_: G_11) => H_10, hi: (_: H_10) => I_9, ij: (_: I_9) => J_8, jk: (_: J_8) => K_7, kl: (_: K_7) => L_6, lm: (_: L_6) => M_5, mn: (_: M_5) => N_4, no: (_: N_4) => O_3, op: (_: O_3) => P_2, pq: (_: P_2) => Q_1, qr: (_: Q_1) => R_4): R_4;
|
|
138
|
+
pipe<A, B_17 = never, C_16 = never, D_15 = never, E_18 = never, F_13 = never, G_12 = never, H_11 = never, I_10 = never, J_9 = never, K_8 = never, L_7 = never, M_6 = never, N_5 = never, O_4 = never, P_3 = never, Q_2 = never, R_5 = never, S = never>(this: A, ab: (_: A) => B_17, bc: (_: B_17) => C_16, cd: (_: C_16) => D_15, de: (_: D_15) => E_18, ef: (_: E_18) => F_13, fg: (_: F_13) => G_12, gh: (_: G_12) => H_11, hi: (_: H_11) => I_10, ij: (_: I_10) => J_9, jk: (_: J_9) => K_8, kl: (_: K_8) => L_7, lm: (_: L_7) => M_6, mn: (_: M_6) => N_5, no: (_: N_5) => O_4, op: (_: O_4) => P_3, pq: (_: P_3) => Q_2, qr: (_: Q_2) => R_5, rs: (_: R_5) => S): S;
|
|
139
|
+
pipe<A, B_18 = never, C_17 = never, D_16 = never, E_19 = never, F_14 = never, G_13 = never, H_12 = never, I_11 = never, J_10 = never, K_9 = never, L_8 = never, M_7 = never, N_6 = never, O_5 = never, P_4 = never, Q_3 = never, R_6 = never, S_1 = never, T = never>(this: A, ab: (_: A) => B_18, bc: (_: B_18) => C_17, cd: (_: C_17) => D_16, de: (_: D_16) => E_19, ef: (_: E_19) => F_14, fg: (_: F_14) => G_13, gh: (_: G_13) => H_12, hi: (_: H_12) => I_11, ij: (_: I_11) => J_10, jk: (_: J_10) => K_9, kl: (_: K_9) => L_8, lm: (_: L_8) => M_7, mn: (_: M_7) => N_6, no: (_: N_6) => O_5, op: (_: O_5) => P_4, pq: (_: P_4) => Q_3, qr: (_: Q_3) => R_6, rs: (_: R_6) => S_1, st: (_: S_1) => T): T;
|
|
140
|
+
pipe<A, B_19 = never, C_18 = never, D_17 = never, E_20 = never, F_15 = never, G_14 = never, H_13 = never, I_12 = never, J_11 = never, K_10 = never, L_9 = never, M_8 = never, N_7 = never, O_6 = never, P_5 = never, Q_4 = never, R_7 = never, S_2 = never, T_1 = never, U = never>(this: A, ab: (_: A) => B_19, bc: (_: B_19) => C_18, cd: (_: C_18) => D_17, de: (_: D_17) => E_20, ef: (_: E_20) => F_15, fg: (_: F_15) => G_14, gh: (_: G_14) => H_13, hi: (_: H_13) => I_12, ij: (_: I_12) => J_11, jk: (_: J_11) => K_10, kl: (_: K_10) => L_9, lm: (_: L_9) => M_8, mn: (_: M_8) => N_7, no: (_: N_7) => O_6, op: (_: O_6) => P_5, pq: (_: P_5) => Q_4, qr: (_: Q_4) => R_7, rs: (_: R_7) => S_2, st: (_: S_2) => T_1, tu: (_: T_1) => U): U;
|
|
141
|
+
pipe<A, B_20 = never, C_19 = never, D_18 = never, E_21 = never, F_16 = never, G_15 = never, H_14 = never, I_13 = never, J_12 = never, K_11 = never, L_10 = never, M_9 = never, N_8 = never, O_7 = never, P_6 = never, Q_5 = never, R_8 = never, S_3 = never, T_2 = never, U_1 = never>(this: A, ab: (_: A) => B_20, bc: (_: B_20) => C_19, cd: (_: C_19) => D_18, de: (_: D_18) => E_21, ef: (_: E_21) => F_16, fg: (_: F_16) => G_15, gh: (_: G_15) => H_14, hi: (_: H_14) => I_13, ij: (_: I_13) => J_12, jk: (_: J_12) => K_11, kl: (_: K_11) => L_10, lm: (_: L_10) => M_9, mn: (_: M_9) => N_8, no: (_: N_8) => O_7, op: (_: O_7) => P_6, pq: (_: P_6) => Q_5, qr: (_: Q_5) => R_8, rs: (_: R_8) => S_3, st: (_: S_3) => T_2, tu: (_: T_2) => U_1): U_1;
|
|
134
142
|
toString(): string;
|
|
135
143
|
toJSON(): unknown;
|
|
136
144
|
[NodeInspectSymbol](): unknown;
|
|
137
145
|
};
|
|
138
|
-
use: <A>(fn: (transaction: ZeroServerTransaction<TSchema, TTransaction>, options: {
|
|
139
|
-
readonly signal: AbortSignal;
|
|
140
|
-
}) => PromiseLike<A>) => Effect.Effect<A, ServerTransactionError, {
|
|
141
|
-
readonly Service: {
|
|
142
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
143
|
-
transactionHooks: TransactionProviderHooks;
|
|
144
|
-
};
|
|
145
|
-
readonly key: `${string}/ServerTransactionContext`;
|
|
146
|
-
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
147
|
-
}>;
|
|
148
|
-
execute: <A, E_19, R_6>(effect: Effect.Effect<A, E_19, R_6>) => Effect.Effect<A, import("./internal/server.js").MultipleTransactionsError | OutOfOrderMutationError | MutationAlreadyProcessedError | E_19 | UpdateClientMutationIdError | ZeroDatabaseError, ServerTransactionInput | ServerSynchronizationContext.ServerSynchronizationContext | Exclude<R_6, {
|
|
149
|
-
readonly Service: {
|
|
150
|
-
transaction: ZeroServerTransaction<TSchema, TTransaction>;
|
|
151
|
-
transactionHooks: TransactionProviderHooks;
|
|
152
|
-
};
|
|
153
|
-
readonly key: `${string}/ServerTransactionContext`;
|
|
154
|
-
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
155
|
-
} | {
|
|
156
|
-
readonly Service: import("@rocicorp/zero").Transaction<TSchema>;
|
|
157
|
-
readonly key: any;
|
|
158
|
-
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
159
|
-
}>>;
|
|
160
146
|
};
|
|
161
|
-
declare const
|
|
162
|
-
readonly _tag: "
|
|
163
|
-
} & Readonly<A>;
|
|
164
|
-
declare class ServerTransactionError extends ServerTransactionError_base<{
|
|
165
|
-
readonly cause: Cause.Cause<unknown>;
|
|
166
|
-
}> {
|
|
167
|
-
}
|
|
168
|
-
declare const UpdateClientMutationIdError_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 & {
|
|
169
|
-
readonly _tag: "UpdateClientMutationIdError";
|
|
170
|
-
} & Readonly<A>;
|
|
171
|
-
declare class UpdateClientMutationIdError extends UpdateClientMutationIdError_base<{
|
|
172
|
-
readonly cause: Cause.Cause<unknown>;
|
|
173
|
-
}> {
|
|
174
|
-
}
|
|
175
|
-
declare const ZeroDatabaseError_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 & {
|
|
176
|
-
readonly _tag: "ZeroDatabaseError";
|
|
147
|
+
declare const TransactionUseError_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 & {
|
|
148
|
+
readonly _tag: "TransactionUseError";
|
|
177
149
|
} & Readonly<A>;
|
|
178
|
-
declare class
|
|
150
|
+
declare class TransactionUseError extends TransactionUseError_base<{
|
|
179
151
|
readonly cause: Cause.Cause<unknown>;
|
|
180
152
|
}> {
|
|
153
|
+
get message(): string;
|
|
181
154
|
}
|
|
182
155
|
export {};
|
|
183
156
|
//# sourceMappingURL=server-transaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-transaction.d.ts","sourceRoot":"","sources":["../src/server-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvG,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"server-transaction.d.ts","sourceRoot":"","sources":["../src/server-transaction.ts"],"names":[],"mappings":"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"}
|