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
package/README.md
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
```ts
|
|
6
6
|
// mutators.ts
|
|
7
7
|
|
|
8
|
-
import * as
|
|
8
|
+
import * as ZfxMutators from "effect-zero/mutators";
|
|
9
9
|
|
|
10
10
|
// Define your mutators schema
|
|
11
11
|
// Both root-level and nested mutators are supported (up to 1 level of nesting)
|
|
12
|
-
export const mutatorSchema =
|
|
12
|
+
export const mutatorSchema = ZfxMutators.schema({
|
|
13
13
|
// root-level mutator
|
|
14
14
|
/*
|
|
15
15
|
foo: Schema.Struct({
|
|
@@ -39,10 +39,11 @@ export const mutatorSchema = Mutators.schema({
|
|
|
39
39
|
// server.ts
|
|
40
40
|
|
|
41
41
|
import { zeroPostgresJS } from "@rocicorp/zero/server/adapters/postgresjs";
|
|
42
|
-
import
|
|
43
|
-
import * as
|
|
44
|
-
import * as
|
|
45
|
-
import * as
|
|
42
|
+
import * as ZfxMutateServerTypes from "effect-zero/types/mutate-server";
|
|
43
|
+
import * as ZfxPushTypes from "effect-zero/types/push";
|
|
44
|
+
import * as ZfxServerTransaction from "effect-zero/server-transaction";
|
|
45
|
+
import * as ZfxMutators from "effect-zero/mutators";
|
|
46
|
+
import * as ZfxServer from "effect-zero/server";
|
|
46
47
|
import * as Schema from "effect/Schema";
|
|
47
48
|
import * as Effect from "effect/Effect";
|
|
48
49
|
import postgres from "postgres";
|
|
@@ -60,7 +61,7 @@ const database = zeroPostgresJS(
|
|
|
60
61
|
);
|
|
61
62
|
|
|
62
63
|
// The "server-side" transaction
|
|
63
|
-
const serverTransaction =
|
|
64
|
+
const serverTransaction = ZfxServerTransaction.make(
|
|
64
65
|
"ServerTransaction",
|
|
65
66
|
database,
|
|
66
67
|
// passing a client transaction allows us to use the client mutators on the server side
|
|
@@ -68,7 +69,7 @@ const serverTransaction = ServerTransaction.make(
|
|
|
68
69
|
);
|
|
69
70
|
|
|
70
71
|
// define server mutators
|
|
71
|
-
export const serverMutators =
|
|
72
|
+
export const serverMutators = ZfxMutators.make(mutatorSchema, {
|
|
72
73
|
todo: {
|
|
73
74
|
create: ({ id, title }) => Effect.gen(function* () {
|
|
74
75
|
// Note, we can run arbitrary logic before/after performing the zero transaction
|
|
@@ -101,14 +102,22 @@ export const serverMutators = Mutators.make(mutatorSchema, {
|
|
|
101
102
|
// if your server framework is effect-based (like Effect HTTP module)
|
|
102
103
|
export async function handleZeroPush(req: Request): Promise<Response> {
|
|
103
104
|
const url = new URL(req.url);
|
|
104
|
-
const
|
|
105
|
+
const query = Schema.decodeSync(ZfxMutateServerTypes.MutateParams)({
|
|
105
106
|
schema: url.searchParams.get("schema")!,
|
|
106
107
|
appID: url.searchParams.get("appID")!,
|
|
107
108
|
});
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
const
|
|
111
|
-
|
|
109
|
+
const body = Schema.decodeSync(ZfxPushTypes.PushBody)(await req.json());
|
|
110
|
+
|
|
111
|
+
const responseBody = await Effect.runPromise(
|
|
112
|
+
ZfxServer.handleMutate({
|
|
113
|
+
transaction: serverTransaction,
|
|
114
|
+
mutators: serverMutators,
|
|
115
|
+
query,
|
|
116
|
+
body,
|
|
117
|
+
// The authenticated user id (or `null`/`undefined` for logged-out clients).
|
|
118
|
+
userId: undefined,
|
|
119
|
+
}),
|
|
120
|
+
);
|
|
112
121
|
return new Response(JSON.stringify(responseBody), { status: 200, headers: { "content-type": "application/json" } });
|
|
113
122
|
}
|
|
114
123
|
```
|
|
@@ -117,17 +126,17 @@ export async function handleZeroPush(req: Request): Promise<Response> {
|
|
|
117
126
|
|
|
118
127
|
```ts
|
|
119
128
|
// client.ts
|
|
120
|
-
import * as
|
|
121
|
-
import * as
|
|
122
|
-
import * as
|
|
129
|
+
import * as ZfxClient from "effect-zero/client";
|
|
130
|
+
import * as ZfxClientTransaction from "effect-zero/client-transaction";
|
|
131
|
+
import * as ZfxMutators from "effect-zero/mutators";
|
|
123
132
|
import * as Effect from "effect/Effect";
|
|
124
133
|
import { schema } from "./schema"; // your schema
|
|
125
134
|
import { mutatorSchema } from "./mutators"; // see above
|
|
126
135
|
|
|
127
136
|
// The "client-side" transaction
|
|
128
|
-
export const clientTransaction =
|
|
137
|
+
export const clientTransaction = ZfxClientTransaction.make("ClientTransaction", schema);
|
|
129
138
|
|
|
130
|
-
export const clientMutators =
|
|
139
|
+
export const clientMutators = ZfxMutators.make(mutatorSchema, {
|
|
131
140
|
todo: {
|
|
132
141
|
create: Effect.fn(function* ({ id, title }) {
|
|
133
142
|
yield* clientTransaction.use((tx) => tx.mutate.TodoTable.insert({ id, title, createdAt: Date.now() }));
|
|
@@ -140,9 +149,9 @@ export const clientMutators = Mutators.make(mutatorSchema, {
|
|
|
140
149
|
|
|
141
150
|
// Helper to create a vanilla Zero client instance for querying and mutating
|
|
142
151
|
export const createZero = Effect.fn(function* (opts: { userID: string; auth?: string; server: string; mutateURL: string }) {
|
|
143
|
-
// `
|
|
152
|
+
// `ZfxClient.make` returns an Effect containing a Zero client instance
|
|
144
153
|
// Note: this is a scoped effect, so it must be run within a scope (e.g., Effect.scoped)
|
|
145
|
-
return yield*
|
|
154
|
+
return yield* ZfxClient.make(clientTransaction, clientMutators, {
|
|
146
155
|
userID: opts.userID,
|
|
147
156
|
auth: opts.auth,
|
|
148
157
|
server: opts.server, // your zero-cache server URL
|
|
@@ -160,14 +169,14 @@ export const createZero = Effect.fn(function* (opts: { userID: string; auth?: st
|
|
|
160
169
|
// queries.ts
|
|
161
170
|
|
|
162
171
|
import { createBuilder } from "@rocicorp/zero";
|
|
163
|
-
import * as
|
|
172
|
+
import * as ZfxQuery from "effect-zero/query";
|
|
164
173
|
import * as Effect from "effect/Effect";
|
|
165
174
|
import * as Schema from "effect/Schema";
|
|
166
175
|
import { schema } from "./schema"; // your schema
|
|
167
176
|
|
|
168
177
|
const builder = createBuilder(schema);
|
|
169
178
|
|
|
170
|
-
export const getTodoByIdQuery =
|
|
179
|
+
export const getTodoByIdQuery = ZfxQuery.make({
|
|
171
180
|
name: "getTodoById",
|
|
172
181
|
payload: Schema.Tuple(Schema.String),
|
|
173
182
|
query: Effect.fn(function* (id) {
|
|
@@ -185,8 +194,8 @@ export const queries = [
|
|
|
185
194
|
```ts
|
|
186
195
|
// server.ts
|
|
187
196
|
|
|
188
|
-
import * as
|
|
189
|
-
import
|
|
197
|
+
import * as ZfxServer from "effect-zero/server";
|
|
198
|
+
import * as ZfxCustomQueriesTypes from "effect-zero/types/custom-queries";
|
|
190
199
|
import * as Effect from "effect/Effect";
|
|
191
200
|
import * as Schema from "effect/Schema";
|
|
192
201
|
import { queries } from "./queries";
|
|
@@ -194,8 +203,16 @@ import { schema } from "./schema"; // your schema
|
|
|
194
203
|
|
|
195
204
|
// See `handleZeroPush` notes
|
|
196
205
|
export async function handleZeroQueryRequest(req: Request): Promise<Response> {
|
|
197
|
-
const
|
|
198
|
-
const result = await Effect.runPromise(
|
|
206
|
+
const body = Schema.decodeSync(ZfxCustomQueriesTypes.TransformRequestMessage)(await req.json());
|
|
207
|
+
const result = await Effect.runPromise(
|
|
208
|
+
ZfxServer.handleQuery({
|
|
209
|
+
queries,
|
|
210
|
+
schema,
|
|
211
|
+
body,
|
|
212
|
+
// The authenticated user id (or `null`/`undefined` for logged-out clients).
|
|
213
|
+
userId: undefined,
|
|
214
|
+
}),
|
|
215
|
+
);
|
|
199
216
|
return new Response(JSON.stringify(result), { status: 200, headers: { "content-type": "application/json" } });
|
|
200
217
|
}
|
|
201
218
|
```
|
|
@@ -206,7 +223,7 @@ export async function handleZeroQueryRequest(req: Request): Promise<Response> {
|
|
|
206
223
|
// client.ts
|
|
207
224
|
|
|
208
225
|
import * as Effect from 'effect/Effect';
|
|
209
|
-
import * as
|
|
226
|
+
import * as ZfxQuery from "effect-zero/query";
|
|
210
227
|
import { getTodoByIdQuery } from "./queries";
|
|
211
228
|
import { createZero } from "./client"; // see "Custom mutators" -> "Client setup"
|
|
212
229
|
|
|
@@ -214,13 +231,14 @@ const getTodoById = Effect.fn(function* (id: string) {
|
|
|
214
231
|
// Create the query instance
|
|
215
232
|
const query = yield* getTodoByIdQuery(id);
|
|
216
233
|
|
|
217
|
-
|
|
234
|
+
// Pass the real user ID (or `null`/`undefined` for logged-out clients).
|
|
235
|
+
const zero = yield* createZero({ userID: "user-123", server: "http://localhost:4848" });
|
|
218
236
|
|
|
219
|
-
// `
|
|
220
|
-
const stream =
|
|
237
|
+
// `ZfxQuery.stream` creates an Effect's Stream from a query
|
|
238
|
+
const stream = ZfxQuery.stream(zero, query);
|
|
221
239
|
|
|
222
|
-
// `
|
|
223
|
-
const sub =
|
|
240
|
+
// `ZfxQuery.subscribable` creates an Effect's Subscribable from a query
|
|
241
|
+
const sub = ZfxQuery.subscribable(zero, query);
|
|
224
242
|
|
|
225
243
|
// You can also use the query with the Zero client as usual
|
|
226
244
|
const view = yield* Effect.sync(() => zero.materialize(query));
|
|
@@ -235,7 +253,7 @@ You might want to create atoms with query results. To do that, you can implement
|
|
|
235
253
|
import { Atom } from "@effect-atom/atom";
|
|
236
254
|
import * as Effect from "effect/Effect";
|
|
237
255
|
import * as Subscribable from "effect/Subscribable";
|
|
238
|
-
import * as
|
|
256
|
+
import * as ZfxQuery from "effect-zero/query";
|
|
239
257
|
|
|
240
258
|
import type { schema } from "./schema"; // your schema
|
|
241
259
|
import { zeroAtom } from "./zero"; // you can create zeroAtom using `createZero` from the "Client setup" section as a reference
|
|
@@ -243,11 +261,11 @@ import { zeroAtom } from "./zero"; // you can create zeroAtom using `createZero`
|
|
|
243
261
|
type Schema = typeof schema;
|
|
244
262
|
|
|
245
263
|
export const queryAtom = Atom.family(
|
|
246
|
-
<T extends keyof Schema["tables"] & string, R>(query:
|
|
264
|
+
<T extends keyof Schema["tables"] & string, R>(query: ZfxQuery.Query<T, Schema, R>) => {
|
|
247
265
|
return Atom.subscribable(
|
|
248
266
|
Effect.fn(function* (get) {
|
|
249
267
|
const zero = yield* get.result(zeroAtom);
|
|
250
|
-
return
|
|
268
|
+
return ZfxQuery.subscribable(zero, query).pipe(Subscribable.map(({ value }) => value));
|
|
251
269
|
}),
|
|
252
270
|
);
|
|
253
271
|
},
|
|
@@ -265,15 +283,15 @@ const todoAtom = Atom.fn(Effect.fn(function* (id: string, get: Atom.FnContext) {
|
|
|
265
283
|
});
|
|
266
284
|
```
|
|
267
285
|
|
|
268
|
-
> **Note:** Queries created via `
|
|
286
|
+
> **Note:** Queries created via `ZfxQuery.make` implement the [`Equal` trait](https://effect.website/docs/trait/equal/), so `Atom.family` would properly cache the results when using queries as arguments.
|
|
269
287
|
|
|
270
288
|
## Differences from the original implementation
|
|
271
289
|
|
|
272
|
-
|
|
290
|
+
In `effect-zero` the Zero transaction is an explicit step inside a mutator (via `serverTransaction.execute`/`.use`), so a mutator may run arbitrary Effect logic before and after it. (Upstream's `handleMutateRequest`/`transact` callback supports running code around the transaction too — this is not unique to `effect-zero` — but because an `effect-zero` mutator is a typed `Effect` with the transaction as a sub-step, it defines explicit rules for the edge cases this creates: the transaction may commit while surrounding code fails, or a mutator may run zero or multiple transactions.) Below are the rules `effect-zero` follows during mutation execution:
|
|
273
291
|
|
|
274
292
|
1. "One transaction and succeed" -> successful response from the push endpoint (normal flow).
|
|
275
293
|
2. "One transaction then fail" (code after the transaction produces an error) -> successful response, despite the mutation failing. This is essential to maintain integrity of Zero's internal state: the transaction has already succeeded (and altered the state of the database), thus the result from the push endpoint must coincide. Relatedly, the user must be careful with work performed after the transaction, it is considered "fire and forget".
|
|
276
294
|
3. "Two or more transactions" -> This is a sub-case of the "One transaction then fail (#2)" scenario; the first transaction will succeed (and thus we must return a successful response from the push endpoint), and the second one will fail. We must be careful of performing multiple transactions in the mutator for this reason.
|
|
277
295
|
4. "Zero transactions then succeed" -> error response, because all mutations must have a transaction.
|
|
278
296
|
5. "Zero transactions then fail" -> error response containing the first error encountered.
|
|
279
|
-
6. "Fail before transaction" -> same as #5.
|
|
297
|
+
6. "Fail before transaction" -> same as #5.
|
|
@@ -4,9 +4,18 @@ import * as Ctx from "effect/Context";
|
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
5
|
import type { NodeInspectSymbol } from "effect/Inspectable";
|
|
6
6
|
import type * as Unify from "effect/Unify";
|
|
7
|
+
export declare const ContextSymbol: unique symbol;
|
|
8
|
+
export declare const SchemaSymbol: unique symbol;
|
|
7
9
|
export type Context<TSchema extends ZeroSchema> = ReturnType<typeof make<any, TSchema>>;
|
|
8
10
|
export declare const make: <const Id extends string, TSchema extends ZeroSchema>(id: Id, schema: TSchema) => {
|
|
9
|
-
|
|
11
|
+
use: <A>(fn: (transaction: ZeroTransaction<TSchema>, options: {
|
|
12
|
+
readonly signal: AbortSignal;
|
|
13
|
+
}) => PromiseLike<A>) => Effect.Effect<A, ClientTransactionError, {
|
|
14
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
15
|
+
readonly key: Id;
|
|
16
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
17
|
+
}>;
|
|
18
|
+
[ContextSymbol]: {
|
|
10
19
|
new (_: never): {
|
|
11
20
|
readonly Service: ZeroTransaction<TSchema>;
|
|
12
21
|
readonly key: Id;
|
|
@@ -80,14 +89,7 @@ export declare const make: <const Id extends string, TSchema extends ZeroSchema>
|
|
|
80
89
|
toJSON(): unknown;
|
|
81
90
|
[NodeInspectSymbol](): unknown;
|
|
82
91
|
};
|
|
83
|
-
|
|
84
|
-
readonly signal: AbortSignal;
|
|
85
|
-
}) => PromiseLike<A>) => Effect.Effect<A, ClientTransactionError, {
|
|
86
|
-
readonly Service: ZeroTransaction<TSchema>;
|
|
87
|
-
readonly key: Id;
|
|
88
|
-
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
89
|
-
}>;
|
|
90
|
-
schema: TSchema;
|
|
92
|
+
[SchemaSymbol]: TSchema;
|
|
91
93
|
};
|
|
92
94
|
declare const ClientTransactionError_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 & {
|
|
93
95
|
readonly _tag: "ClientTransactionError";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-transaction.d.ts","sourceRoot":"","sources":["../src/client-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAM3C,MAAM,MAAM,OAAO,CAAC,OAAO,SAAS,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAExF,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,OAAO,SAAS,UAAU,EAAE,IAAI,EAAE,EAAE,QAAQ,OAAO
|
|
1
|
+
{"version":3,"file":"client-transaction.d.ts","sourceRoot":"","sources":["../src/client-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAM3C,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,YAAY,eAAiC,CAAC;AAG3D,MAAM,MAAM,OAAO,CAAC,OAAO,SAAS,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAExF,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,OAAO,SAAS,UAAU,EAAE,IAAI,EAAE,EAAE,QAAQ,OAAO;UAGlF,CAAC,MACR,CAAC,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;KAAE,KAAK,WAAW,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAW3G,CAAC;;;;AAEF,cAAM,sBAAuB,SAAQ,4BAA2C;IAC9E,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;IACA,IAAa,OAAO,WAGnB;CACF"}
|
|
@@ -2,6 +2,9 @@ import * as Cause from "effect/Cause";
|
|
|
2
2
|
import * as Ctx from "effect/Context";
|
|
3
3
|
import * as Data from "effect/Data";
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
|
+
import { prefixId } from "./internal/utils.js";
|
|
6
|
+
export const ContextSymbol = Symbol.for(prefixId("Context"));
|
|
7
|
+
export const SchemaSymbol = Symbol.for(prefixId("Schema"));
|
|
5
8
|
export const make = (id, schema) => {
|
|
6
9
|
class Context extends Ctx.Service()(id) {
|
|
7
10
|
}
|
|
@@ -12,7 +15,7 @@ export const make = (id, schema) => {
|
|
|
12
15
|
catch: (error) => new ClientTransactionError({ cause: Cause.fail(error) }),
|
|
13
16
|
});
|
|
14
17
|
});
|
|
15
|
-
return {
|
|
18
|
+
return { use, [ContextSymbol]: Context, [SchemaSymbol]: schema };
|
|
16
19
|
};
|
|
17
20
|
class ClientTransactionError extends Data.TaggedError("ClientTransactionError") {
|
|
18
21
|
get message() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-transaction.js","sourceRoot":"","sources":["../src/client-transaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"client-transaction.js","sourceRoot":"","sources":["../src/client-transaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAK/C,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAK3D,MAAM,CAAC,MAAM,IAAI,GAAG,CAAsD,EAAM,EAAE,MAAe,EAAE,EAAE;IACnG,MAAM,OAAQ,SAAQ,GAAG,CAAC,OAAO,EAAqC,CAAC,EAAE,CAAC;KAAG;IAE7E,MAAM,GAAG,GAAG,CACV,EAAwG,EACxG,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;QACnC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;YAC5C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,sBAAsB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SAC3E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,sBAAuB,SAAQ,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAE5E;IACA,IAAa,OAAO;QAClB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAC;IAClF,CAAC;CACF"}
|
package/dist/client.d.ts
CHANGED
|
@@ -5,9 +5,53 @@ import type { NodeInspectSymbol } from "effect/Inspectable";
|
|
|
5
5
|
import * as Rec from "effect/Record";
|
|
6
6
|
import * as Schema from "effect/Schema";
|
|
7
7
|
import type * as Unify from "effect/Unify";
|
|
8
|
+
import { ContextSymbol, SchemaSymbol } from "./client-transaction.js";
|
|
8
9
|
import * as Mutators from "./mutators.js";
|
|
9
10
|
export declare const make: <TSchema extends ZeroSchema, TMutators extends Mutators.AnyMutators>(transaction: {
|
|
10
|
-
|
|
11
|
+
use: <A>(fn: (transaction: ZeroTransaction<TSchema>, options: {
|
|
12
|
+
readonly signal: AbortSignal;
|
|
13
|
+
}) => PromiseLike<A>) => Effect.Effect<A, {
|
|
14
|
+
get message(): string;
|
|
15
|
+
readonly "~effect/Effect": Effect.Variance<never, /*elided*/ any, never>;
|
|
16
|
+
[Symbol.iterator](): Effect.EffectIterator<Effect.Effect<never, /*elided*/ any, never>>;
|
|
17
|
+
name: string;
|
|
18
|
+
stack?: string;
|
|
19
|
+
cause: Cause.Cause<unknown>;
|
|
20
|
+
readonly "~effect/ErrorReporter/ignore"?: boolean;
|
|
21
|
+
readonly "~effect/ErrorReporter/severity"?: import("effect/LogLevel").Severity;
|
|
22
|
+
readonly "~effect/ErrorReporter/attributes"?: Rec.ReadonlyRecord<string, unknown>;
|
|
23
|
+
pipe<A_1>(this: A_1): A_1;
|
|
24
|
+
pipe<A_1, B = never>(this: A_1, ab: (_: A_1) => B): B;
|
|
25
|
+
pipe<A_1, B_1 = never, C = never>(this: A_1, ab: (_: A_1) => B_1, bc: (_: B_1) => C): C;
|
|
26
|
+
pipe<A_1, B_2 = never, C_1 = never, D = never>(this: A_1, ab: (_: A_1) => B_2, bc: (_: B_2) => C_1, cd: (_: C_1) => D): D;
|
|
27
|
+
pipe<A_1, B_3 = never, C_2 = never, D_1 = never, E = never>(this: A_1, ab: (_: A_1) => B_3, bc: (_: B_3) => C_2, cd: (_: C_2) => D_1, de: (_: D_1) => E): E;
|
|
28
|
+
pipe<A_1, B_4 = never, C_3 = never, D_2 = never, E_1 = never, F = never>(this: A_1, ab: (_: A_1) => B_4, bc: (_: B_4) => C_3, cd: (_: C_3) => D_2, de: (_: D_2) => E_1, ef: (_: E_1) => F): F;
|
|
29
|
+
pipe<A_1, B_5 = never, C_4 = never, D_3 = never, E_2 = never, F_1 = never, G = never>(this: A_1, ab: (_: A_1) => B_5, bc: (_: B_5) => C_4, cd: (_: C_4) => D_3, de: (_: D_3) => E_2, ef: (_: E_2) => F_1, fg: (_: F_1) => G): G;
|
|
30
|
+
pipe<A_1, B_6 = never, C_5 = never, D_4 = never, E_3 = never, F_2 = never, G_1 = never, H = never>(this: A_1, ab: (_: A_1) => B_6, bc: (_: B_6) => C_5, cd: (_: C_5) => D_4, de: (_: D_4) => E_3, ef: (_: E_3) => F_2, fg: (_: F_2) => G_1, gh: (_: G_1) => H): H;
|
|
31
|
+
pipe<A_1, B_7 = never, C_6 = never, D_5 = never, E_4 = never, F_3 = never, G_2 = never, H_1 = never, I = never>(this: A_1, ab: (_: A_1) => B_7, bc: (_: B_7) => C_6, cd: (_: C_6) => D_5, de: (_: D_5) => E_4, ef: (_: E_4) => F_3, fg: (_: F_3) => G_2, gh: (_: G_2) => H_1, hi: (_: H_1) => I): I;
|
|
32
|
+
pipe<A_1, B_8 = never, C_7 = never, D_6 = never, E_5 = never, F_4 = never, G_3 = never, H_2 = never, I_1 = never, J = never>(this: A_1, ab: (_: A_1) => B_8, bc: (_: B_8) => C_7, cd: (_: C_7) => D_6, de: (_: D_6) => E_5, ef: (_: E_5) => F_4, fg: (_: F_4) => G_3, gh: (_: G_3) => H_2, hi: (_: H_2) => I_1, ij: (_: I_1) => J): J;
|
|
33
|
+
pipe<A_1, B_9 = never, C_8 = never, D_7 = never, E_6 = never, F_5 = never, G_4 = never, H_3 = never, I_2 = never, J_1 = never, K = never>(this: A_1, ab: (_: A_1) => B_9, bc: (_: B_9) => C_8, cd: (_: C_8) => D_7, de: (_: D_7) => E_6, ef: (_: E_6) => 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;
|
|
34
|
+
pipe<A_1, B_10 = never, C_9 = never, D_8 = never, E_7 = never, F_6 = never, G_5 = never, H_4 = never, I_3 = never, J_2 = never, K_1 = never, L = never>(this: A_1, ab: (_: A_1) => B_10, bc: (_: B_10) => C_9, cd: (_: C_9) => D_8, de: (_: D_8) => E_7, ef: (_: E_7) => 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;
|
|
35
|
+
pipe<A_1, B_11 = never, C_10 = never, D_9 = never, E_8 = 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_1, ab: (_: A_1) => B_11, bc: (_: B_11) => C_10, cd: (_: C_10) => D_9, de: (_: D_9) => E_8, ef: (_: E_8) => 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;
|
|
36
|
+
pipe<A_1, B_12 = never, C_11 = never, D_10 = never, E_9 = 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_1, ab: (_: A_1) => B_12, bc: (_: B_12) => C_11, cd: (_: C_11) => D_10, de: (_: D_10) => E_9, ef: (_: E_9) => 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;
|
|
37
|
+
pipe<A_1, B_13 = never, C_12 = never, D_11 = never, E_10 = 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_1, ab: (_: A_1) => B_13, bc: (_: B_13) => C_12, cd: (_: C_12) => D_11, de: (_: D_11) => E_10, ef: (_: E_10) => 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;
|
|
38
|
+
pipe<A_1, B_14 = never, C_13 = never, D_12 = never, E_11 = 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_1, ab: (_: A_1) => B_14, bc: (_: B_14) => C_13, cd: (_: C_13) => D_12, de: (_: D_12) => E_11, ef: (_: E_11) => 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;
|
|
39
|
+
pipe<A_1, B_15 = never, C_14 = never, D_13 = never, E_12 = 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_1, ab: (_: A_1) => B_15, bc: (_: B_15) => C_14, cd: (_: C_14) => D_13, de: (_: D_13) => E_12, ef: (_: E_12) => 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;
|
|
40
|
+
pipe<A_1, B_16 = never, C_15 = never, D_14 = never, E_13 = 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 = never>(this: A_1, ab: (_: A_1) => B_16, bc: (_: B_16) => C_15, cd: (_: C_15) => D_14, de: (_: D_14) => E_13, ef: (_: E_13) => 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): R;
|
|
41
|
+
pipe<A_1, B_17 = never, C_16 = never, D_15 = never, E_14 = 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_1 = never, S = never>(this: A_1, ab: (_: A_1) => B_17, bc: (_: B_17) => C_16, cd: (_: C_16) => D_15, de: (_: D_15) => E_14, ef: (_: E_14) => 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_1, rs: (_: R_1) => S): S;
|
|
42
|
+
pipe<A_1, B_18 = never, C_17 = never, D_16 = never, E_15 = 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_2 = never, S_1 = never, T = never>(this: A_1, ab: (_: A_1) => B_18, bc: (_: B_18) => C_17, cd: (_: C_17) => D_16, de: (_: D_16) => E_15, ef: (_: E_15) => 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_2, rs: (_: R_2) => S_1, st: (_: S_1) => T): T;
|
|
43
|
+
pipe<A_1, B_19 = never, C_18 = never, D_17 = never, E_16 = 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_3 = never, S_2 = never, T_1 = never, U = never>(this: A_1, ab: (_: A_1) => B_19, bc: (_: B_19) => C_18, cd: (_: C_18) => D_17, de: (_: D_17) => E_16, ef: (_: E_16) => 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_3, rs: (_: R_3) => S_2, st: (_: S_2) => T_1, tu: (_: T_1) => U): U;
|
|
44
|
+
pipe<A_1, B_20 = never, C_19 = never, D_18 = never, E_17 = 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_4 = never, S_3 = never, T_2 = never, U_1 = never>(this: A_1, ab: (_: A_1) => B_20, bc: (_: B_20) => C_19, cd: (_: C_19) => D_18, de: (_: D_18) => E_17, ef: (_: E_17) => 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_4, rs: (_: R_4) => S_3, st: (_: S_3) => T_2, tu: (_: T_2) => U_1): U_1;
|
|
45
|
+
toString(): string;
|
|
46
|
+
toJSON(): unknown;
|
|
47
|
+
[NodeInspectSymbol](): unknown;
|
|
48
|
+
readonly _tag: "ClientTransactionError";
|
|
49
|
+
}, {
|
|
50
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
51
|
+
readonly key: any;
|
|
52
|
+
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
53
|
+
}>;
|
|
54
|
+
[ContextSymbol]: {
|
|
11
55
|
new (_: never): {
|
|
12
56
|
readonly Service: ZeroTransaction<TSchema>;
|
|
13
57
|
readonly key: any;
|
|
@@ -20,11 +64,11 @@ export declare const make: <TSchema extends ZeroSchema, TMutators extends Mutato
|
|
|
20
64
|
readonly key: any;
|
|
21
65
|
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
22
66
|
}>;
|
|
23
|
-
use<A,
|
|
67
|
+
use<A, E_18, R_5>(f: (service: ZeroTransaction<TSchema>) => Effect.Effect<A, E_18, R_5>): Effect.Effect<A, E_18, {
|
|
24
68
|
readonly Service: ZeroTransaction<TSchema>;
|
|
25
69
|
readonly key: any;
|
|
26
70
|
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
27
|
-
} |
|
|
71
|
+
} | R_5>;
|
|
28
72
|
useSync<A>(f: (service: ZeroTransaction<TSchema>) => A): Effect.Effect<A, never, {
|
|
29
73
|
readonly Service: ZeroTransaction<TSchema>;
|
|
30
74
|
readonly key: any;
|
|
@@ -59,72 +103,29 @@ export declare const make: <TSchema extends ZeroSchema, TMutators extends Mutato
|
|
|
59
103
|
pipe<A, B = never>(this: A, ab: (_: A) => B): B;
|
|
60
104
|
pipe<A, B_1 = never, C = never>(this: A, ab: (_: A) => B_1, bc: (_: B_1) => C): C;
|
|
61
105
|
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;
|
|
62
|
-
pipe<A, B_3 = never, C_2 = never, D_1 = never,
|
|
63
|
-
pipe<A, B_4 = never, C_3 = never, D_2 = never,
|
|
64
|
-
pipe<A, B_5 = never, C_4 = never, D_3 = never,
|
|
65
|
-
pipe<A, B_6 = never, C_5 = never, D_4 = never,
|
|
66
|
-
pipe<A, B_7 = never, C_6 = never, D_5 = never,
|
|
67
|
-
pipe<A, B_8 = never, C_7 = never, D_6 = never,
|
|
68
|
-
pipe<A, B_9 = never, C_8 = never, D_7 = never,
|
|
69
|
-
pipe<A, B_10 = never, C_9 = never, D_8 = never,
|
|
70
|
-
pipe<A, B_11 = never, C_10 = never, D_9 = never,
|
|
71
|
-
pipe<A, B_12 = never, C_11 = never, D_10 = never,
|
|
72
|
-
pipe<A, B_13 = never, C_12 = never, D_11 = never,
|
|
73
|
-
pipe<A, B_14 = never, C_13 = never, D_12 = never,
|
|
74
|
-
pipe<A, B_15 = never, C_14 = never, D_13 = never,
|
|
75
|
-
pipe<A, B_16 = never, C_15 = never, D_14 = never,
|
|
76
|
-
pipe<A, B_17 = never, C_16 = never, D_15 = never,
|
|
77
|
-
pipe<A, B_18 = never, C_17 = never, D_16 = never,
|
|
78
|
-
pipe<A, B_19 = never, C_18 = never, D_17 = never,
|
|
79
|
-
pipe<A, B_20 = never, C_19 = never, D_18 = never,
|
|
106
|
+
pipe<A, B_3 = never, C_2 = never, D_1 = never, E = never>(this: A, ab: (_: A) => B_3, bc: (_: B_3) => C_2, cd: (_: C_2) => D_1, de: (_: D_1) => E): E;
|
|
107
|
+
pipe<A, B_4 = never, C_3 = never, D_2 = never, E_1 = never, F = never>(this: A, ab: (_: A) => B_4, bc: (_: B_4) => C_3, cd: (_: C_3) => D_2, de: (_: D_2) => E_1, ef: (_: E_1) => F): F;
|
|
108
|
+
pipe<A, B_5 = never, C_4 = never, D_3 = never, E_2 = 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_2, ef: (_: E_2) => F_1, fg: (_: F_1) => G): G;
|
|
109
|
+
pipe<A, B_6 = never, C_5 = never, D_4 = never, E_3 = 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_3, ef: (_: E_3) => F_2, fg: (_: F_2) => G_1, gh: (_: G_1) => H): H;
|
|
110
|
+
pipe<A, B_7 = never, C_6 = never, D_5 = never, E_4 = 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_4, ef: (_: E_4) => F_3, fg: (_: F_3) => G_2, gh: (_: G_2) => H_1, hi: (_: H_1) => I): I;
|
|
111
|
+
pipe<A, B_8 = never, C_7 = never, D_6 = never, E_5 = 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_5, ef: (_: E_5) => F_4, fg: (_: F_4) => G_3, gh: (_: G_3) => H_2, hi: (_: H_2) => I_1, ij: (_: I_1) => J): J;
|
|
112
|
+
pipe<A, B_9 = never, C_8 = never, D_7 = never, E_6 = 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_6, ef: (_: E_6) => 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;
|
|
113
|
+
pipe<A, B_10 = never, C_9 = never, D_8 = never, E_7 = 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_7, ef: (_: E_7) => 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;
|
|
114
|
+
pipe<A, B_11 = never, C_10 = never, D_9 = never, E_8 = 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_8, ef: (_: E_8) => 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;
|
|
115
|
+
pipe<A, B_12 = never, C_11 = never, D_10 = never, E_9 = 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_9, ef: (_: E_9) => 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;
|
|
116
|
+
pipe<A, B_13 = never, C_12 = never, D_11 = never, E_10 = 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_10, ef: (_: E_10) => 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;
|
|
117
|
+
pipe<A, B_14 = never, C_13 = never, D_12 = never, E_11 = 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_11, ef: (_: E_11) => 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;
|
|
118
|
+
pipe<A, B_15 = never, C_14 = never, D_13 = never, E_12 = 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_12, ef: (_: E_12) => 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;
|
|
119
|
+
pipe<A, B_16 = never, C_15 = never, D_14 = never, E_13 = 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 = never>(this: A, ab: (_: A) => B_16, bc: (_: B_16) => C_15, cd: (_: C_15) => D_14, de: (_: D_14) => E_13, ef: (_: E_13) => 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): R;
|
|
120
|
+
pipe<A, B_17 = never, C_16 = never, D_15 = never, E_14 = 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_1 = never, S = never>(this: A, ab: (_: A) => B_17, bc: (_: B_17) => C_16, cd: (_: C_16) => D_15, de: (_: D_15) => E_14, ef: (_: E_14) => 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_1, rs: (_: R_1) => S): S;
|
|
121
|
+
pipe<A, B_18 = never, C_17 = never, D_16 = never, E_15 = 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_2 = 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_15, ef: (_: E_15) => 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_2, rs: (_: R_2) => S_1, st: (_: S_1) => T): T;
|
|
122
|
+
pipe<A, B_19 = never, C_18 = never, D_17 = never, E_16 = 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_3 = 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_16, ef: (_: E_16) => 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_3, rs: (_: R_3) => S_2, st: (_: S_2) => T_1, tu: (_: T_1) => U): U;
|
|
123
|
+
pipe<A, B_20 = never, C_19 = never, D_18 = never, E_17 = 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_4 = 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_17, ef: (_: E_17) => 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_4, rs: (_: R_4) => S_3, st: (_: S_3) => T_2, tu: (_: T_2) => U_1): U_1;
|
|
80
124
|
toString(): string;
|
|
81
125
|
toJSON(): unknown;
|
|
82
126
|
[NodeInspectSymbol](): unknown;
|
|
83
127
|
};
|
|
84
|
-
|
|
85
|
-
readonly signal: AbortSignal;
|
|
86
|
-
}) => PromiseLike<A>) => Effect.Effect<A, {
|
|
87
|
-
get message(): string;
|
|
88
|
-
readonly "~effect/Effect": Effect.Variance<never, /*elided*/ any, never>;
|
|
89
|
-
[Symbol.iterator](): Effect.EffectIterator<Effect.Effect<never, /*elided*/ any, never>>;
|
|
90
|
-
name: string;
|
|
91
|
-
stack?: string;
|
|
92
|
-
cause: Cause.Cause<unknown>;
|
|
93
|
-
readonly "~effect/ErrorReporter/ignore"?: boolean;
|
|
94
|
-
readonly "~effect/ErrorReporter/severity"?: import("effect/LogLevel").Severity;
|
|
95
|
-
readonly "~effect/ErrorReporter/attributes"?: Rec.ReadonlyRecord<string, unknown>;
|
|
96
|
-
pipe<A_1>(this: A_1): A_1;
|
|
97
|
-
pipe<A_1, B = never>(this: A_1, ab: (_: A_1) => B): B;
|
|
98
|
-
pipe<A_1, B_1 = never, C = never>(this: A_1, ab: (_: A_1) => B_1, bc: (_: B_1) => C): C;
|
|
99
|
-
pipe<A_1, B_2 = never, C_1 = never, D = never>(this: A_1, ab: (_: A_1) => B_2, bc: (_: B_2) => C_1, cd: (_: C_1) => D): D;
|
|
100
|
-
pipe<A_1, B_3 = never, C_2 = never, D_1 = never, E_1 = never>(this: A_1, ab: (_: A_1) => B_3, bc: (_: B_3) => C_2, cd: (_: C_2) => D_1, de: (_: D_1) => E_1): E_1;
|
|
101
|
-
pipe<A_1, B_4 = never, C_3 = never, D_2 = never, E_2 = never, F = never>(this: A_1, ab: (_: A_1) => B_4, bc: (_: B_4) => C_3, cd: (_: C_3) => D_2, de: (_: D_2) => E_2, ef: (_: E_2) => F): F;
|
|
102
|
-
pipe<A_1, B_5 = never, C_4 = never, D_3 = never, E_3 = never, F_1 = never, G = never>(this: A_1, ab: (_: A_1) => B_5, bc: (_: B_5) => C_4, cd: (_: C_4) => D_3, de: (_: D_3) => E_3, ef: (_: E_3) => F_1, fg: (_: F_1) => G): G;
|
|
103
|
-
pipe<A_1, B_6 = never, C_5 = never, D_4 = never, E_4 = never, F_2 = never, G_1 = never, H = never>(this: A_1, ab: (_: A_1) => B_6, bc: (_: B_6) => C_5, cd: (_: C_5) => D_4, de: (_: D_4) => E_4, ef: (_: E_4) => F_2, fg: (_: F_2) => G_1, gh: (_: G_1) => H): H;
|
|
104
|
-
pipe<A_1, B_7 = never, C_6 = never, D_5 = never, E_5 = never, F_3 = never, G_2 = never, H_1 = never, I = never>(this: A_1, ab: (_: A_1) => B_7, bc: (_: B_7) => C_6, cd: (_: C_6) => D_5, de: (_: D_5) => E_5, ef: (_: E_5) => F_3, fg: (_: F_3) => G_2, gh: (_: G_2) => H_1, hi: (_: H_1) => I): I;
|
|
105
|
-
pipe<A_1, B_8 = never, C_7 = never, D_6 = never, E_6 = never, F_4 = never, G_3 = never, H_2 = never, I_1 = never, J = never>(this: A_1, ab: (_: A_1) => B_8, bc: (_: B_8) => C_7, cd: (_: C_7) => D_6, de: (_: D_6) => E_6, ef: (_: E_6) => F_4, fg: (_: F_4) => G_3, gh: (_: G_3) => H_2, hi: (_: H_2) => I_1, ij: (_: I_1) => J): J;
|
|
106
|
-
pipe<A_1, B_9 = never, C_8 = never, D_7 = never, E_7 = never, F_5 = never, G_4 = never, H_3 = never, I_2 = never, J_1 = never, K = never>(this: A_1, ab: (_: A_1) => B_9, bc: (_: B_9) => C_8, cd: (_: C_8) => D_7, de: (_: D_7) => E_7, ef: (_: E_7) => 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;
|
|
107
|
-
pipe<A_1, B_10 = never, C_9 = never, D_8 = never, E_8 = never, F_6 = never, G_5 = never, H_4 = never, I_3 = never, J_2 = never, K_1 = never, L = never>(this: A_1, ab: (_: A_1) => B_10, bc: (_: B_10) => C_9, cd: (_: C_9) => D_8, de: (_: D_8) => E_8, ef: (_: E_8) => 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;
|
|
108
|
-
pipe<A_1, B_11 = never, C_10 = never, D_9 = never, E_9 = 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_1, ab: (_: A_1) => B_11, bc: (_: B_11) => C_10, cd: (_: C_10) => D_9, de: (_: D_9) => E_9, ef: (_: E_9) => 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;
|
|
109
|
-
pipe<A_1, B_12 = never, C_11 = never, D_10 = never, E_10 = 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_1, ab: (_: A_1) => B_12, bc: (_: B_12) => C_11, cd: (_: C_11) => D_10, de: (_: D_10) => E_10, ef: (_: E_10) => 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;
|
|
110
|
-
pipe<A_1, B_13 = never, C_12 = never, D_11 = never, E_11 = 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_1, ab: (_: A_1) => B_13, bc: (_: B_13) => C_12, cd: (_: C_12) => D_11, de: (_: D_11) => E_11, ef: (_: E_11) => 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;
|
|
111
|
-
pipe<A_1, B_14 = never, C_13 = never, D_12 = never, E_12 = 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_1, ab: (_: A_1) => B_14, bc: (_: B_14) => C_13, cd: (_: C_13) => D_12, de: (_: D_12) => E_12, ef: (_: E_12) => 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;
|
|
112
|
-
pipe<A_1, B_15 = never, C_14 = never, D_13 = never, E_13 = 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_1, ab: (_: A_1) => B_15, bc: (_: B_15) => C_14, cd: (_: C_14) => D_13, de: (_: D_13) => E_13, ef: (_: E_13) => 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;
|
|
113
|
-
pipe<A_1, B_16 = never, C_15 = never, D_14 = never, E_14 = 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_1 = never>(this: A_1, ab: (_: A_1) => B_16, bc: (_: B_16) => C_15, cd: (_: C_15) => D_14, de: (_: D_14) => E_14, ef: (_: E_14) => 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_1): R_1;
|
|
114
|
-
pipe<A_1, B_17 = never, C_16 = never, D_15 = never, E_15 = 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_2 = never, S = never>(this: A_1, ab: (_: A_1) => B_17, bc: (_: B_17) => C_16, cd: (_: C_16) => D_15, de: (_: D_15) => E_15, ef: (_: E_15) => 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_2, rs: (_: R_2) => S): S;
|
|
115
|
-
pipe<A_1, B_18 = never, C_17 = never, D_16 = never, E_16 = 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_3 = never, S_1 = never, T = never>(this: A_1, ab: (_: A_1) => B_18, bc: (_: B_18) => C_17, cd: (_: C_17) => D_16, de: (_: D_16) => E_16, ef: (_: E_16) => 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_3, rs: (_: R_3) => S_1, st: (_: S_1) => T): T;
|
|
116
|
-
pipe<A_1, B_19 = never, C_18 = never, D_17 = never, E_17 = 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_4 = never, S_2 = never, T_1 = never, U = never>(this: A_1, ab: (_: A_1) => B_19, bc: (_: B_19) => C_18, cd: (_: C_18) => D_17, de: (_: D_17) => E_17, ef: (_: E_17) => 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_4, rs: (_: R_4) => S_2, st: (_: S_2) => T_1, tu: (_: T_1) => U): U;
|
|
117
|
-
pipe<A_1, B_20 = never, C_19 = never, D_18 = never, E_18 = 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_5 = never, S_3 = never, T_2 = never, U_1 = never>(this: A_1, ab: (_: A_1) => B_20, bc: (_: B_20) => C_19, cd: (_: C_19) => D_18, de: (_: D_18) => E_18, ef: (_: E_18) => 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_5, rs: (_: R_5) => S_3, st: (_: S_3) => T_2, tu: (_: T_2) => U_1): U_1;
|
|
118
|
-
toString(): string;
|
|
119
|
-
toJSON(): unknown;
|
|
120
|
-
[NodeInspectSymbol](): unknown;
|
|
121
|
-
readonly _tag: "ClientTransactionError";
|
|
122
|
-
}, {
|
|
123
|
-
readonly Service: ZeroTransaction<TSchema>;
|
|
124
|
-
readonly key: any;
|
|
125
|
-
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
126
|
-
}>;
|
|
127
|
-
schema: TSchema;
|
|
128
|
+
[SchemaSymbol]: TSchema;
|
|
128
129
|
}, mutators: TMutators, options: Omit<ZeroOptions<TSchema, { [A in keyof TMutators]: TMutators[A] extends Mutators.AnyMutator<any, any> ? UnwrapMutator<TSchema, TMutators[A]> : { [B_21 in keyof TMutators[A]]: TMutators[A][B_21] extends Mutators.AnyMutator<any, any> ? UnwrapMutator<TSchema, TMutators[A][B_21]> : never; }; }>, "schema" | "mutators">) => Effect.Effect<Zero<TSchema, { [A in keyof TMutators]: TMutators[A] extends Mutators.AnyMutator<any, any> ? UnwrapMutator<TSchema, TMutators[A]> : { [B_21 in keyof TMutators[A]]: TMutators[A][B_21] extends Mutators.AnyMutator<any, any> ? UnwrapMutator<TSchema, TMutators[A][B_21]> : never; }; }, unknown>, never, import("effect/Scope").Scope | Exclude<Mutators.ExtractMutatorsRequirements<TMutators>, {
|
|
129
130
|
readonly Service: ZeroTransaction<TSchema>;
|
|
130
131
|
readonly key: any;
|
|
@@ -135,8 +136,9 @@ declare const ClientArgsParseError_base: new <A extends Record<string, any> = {}
|
|
|
135
136
|
readonly _tag: "ClientArgsParseError";
|
|
136
137
|
} & Readonly<A>;
|
|
137
138
|
export declare class ClientArgsParseError extends ClientArgsParseError_base<{
|
|
138
|
-
readonly cause: Cause.Cause<
|
|
139
|
+
readonly cause: Cause.Cause<unknown>;
|
|
139
140
|
}> {
|
|
141
|
+
get message(): string;
|
|
140
142
|
}
|
|
141
143
|
export {};
|
|
142
144
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,IAAI,UAAU,EAAE,KAAK,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACxH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,IAAI,UAAU,EAAE,KAAK,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACxH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAK1C,eAAO,MAAM,IAAI,GAAwB,OAAO,SAAS,UAAU,EAAE,SAAS,SAAS,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DA4CxG,CAAC,kUAAD,CAAC;;;;GAVF,CAAC;AAEH,KAAK,aAAa,CAAC,OAAO,SAAS,UAAU,EAAE,SAAS,SAAS,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,GACpH,CAAC,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GACxD,CACE,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,EACrC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,QAAQ,CAAC,mBAAmB,CAAC,CAAC,KACvE,OAAO,CAAC,IAAI,CAAC,CAAC;;;;AAYvB,qBAAa,oBAAqB,SAAQ,0BAAyC;IACjF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;IACA,IAAa,OAAO,WAGnB;CACF"}
|
package/dist/client.js
CHANGED
|
@@ -2,34 +2,31 @@ import { Zero } from "@rocicorp/zero";
|
|
|
2
2
|
import * as Cause from "effect/Cause";
|
|
3
3
|
import * as Data from "effect/Data";
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
|
-
import * as Exit from "effect/Exit";
|
|
6
5
|
import * as Match from "effect/Match";
|
|
7
6
|
import * as Predicate from "effect/Predicate";
|
|
8
7
|
import * as Rec from "effect/Record";
|
|
9
8
|
import * as Schema from "effect/Schema";
|
|
9
|
+
import { ContextSymbol, SchemaSymbol } from "./client-transaction.js";
|
|
10
10
|
import { normalizeArgs } from "./internal/utils.js";
|
|
11
11
|
import * as Mutators from "./mutators.js";
|
|
12
12
|
export const make = Effect.fn(function* (transaction, mutators, options) {
|
|
13
13
|
const ctx = yield* Effect.context();
|
|
14
14
|
function unwrapMutator(mutator) {
|
|
15
|
-
return
|
|
16
|
-
const exit = await Schema.decodeUnknownEffect(mutator[Mutators.MutatorSchemaSymbol])(normalizeArgs(args)).pipe(Effect.catchTag("SchemaError", (e) => Effect.fail(new ClientArgsParseError({ cause: Cause.fail(e) }))), Effect.flatMap(mutator), Effect.provideService(transaction.Context, tx), Effect.runPromiseExitWith(ctx));
|
|
17
|
-
if (Exit.isFailure(exit)) {
|
|
18
|
-
// Extract underlying error bypassing FiberFailure
|
|
19
|
-
throw Cause.squash(exit.cause);
|
|
20
|
-
}
|
|
21
|
-
return exit.value;
|
|
22
|
-
};
|
|
15
|
+
return (tx, args, _ctx) => Schema.decodeUnknownEffect(mutator[Mutators.MutatorSchemaSymbol])(normalizeArgs(args)).pipe(Effect.catchTag("SchemaError", (e) => Effect.fail(new ClientArgsParseError({ cause: Cause.fail(e) }))), Effect.flatMap(mutator), Effect.provideService(transaction[ContextSymbol], tx), Effect.runPromiseWith(ctx));
|
|
23
16
|
}
|
|
24
17
|
const unwrappedMutators = Rec.map(mutators, (v) => Match.value(v).pipe(Match.when(Predicate.isFunction, unwrapMutator), Match.orElse(Rec.map(unwrapMutator))));
|
|
25
18
|
return yield* Effect.acquireRelease(Effect.sync(() => {
|
|
26
19
|
return new Zero({
|
|
27
20
|
...options,
|
|
28
|
-
schema: transaction
|
|
21
|
+
schema: transaction[SchemaSymbol],
|
|
29
22
|
mutators: unwrappedMutators,
|
|
30
23
|
});
|
|
31
24
|
}), (zero) => Effect.promise(() => zero.close()));
|
|
32
25
|
});
|
|
33
26
|
export class ClientArgsParseError extends Data.TaggedError("ClientArgsParseError") {
|
|
27
|
+
get message() {
|
|
28
|
+
const error = Cause.squash(this.cause);
|
|
29
|
+
return Predicate.isError(error) ? error.message : "Internal error";
|
|
30
|
+
}
|
|
34
31
|
}
|
|
35
32
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoF,MAAM,gBAAgB,CAAC;AACxH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoF,MAAM,gBAAgB,CAAC;AACxH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,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,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAK1C,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EACrC,WAA+C,EAC/C,QAAmB,EACnB,OAA8F;IAE9F,MAAM,GAAG,GACP,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAElB,CAAC;IAEN,SAAS,aAAa,CAAI,OAAgF;QACxG,OAAO,CAAC,EAA4B,EAAE,IAAa,EAAE,IAAa,EAAE,EAAE,CACpE,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACzF,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACtG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EACvB,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,EACrD,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAC3B,CAAC;IACN,CAAC;IAED,MAAM,iBAAiB,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAChD,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CACnC,CAAC;IAE1E,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CACjC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACf,OAAO,IAAI,IAAI,CAAC;YACd,GAAG,OAAO;YACV,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC;YACjC,QAAQ,EAAE,iBAAiB;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC,EACF,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAC7C,CAAC;AACJ,CAAC,CAAC,CAAC;AAmBH,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAE/E;IACA,IAAa,OAAO;QAClB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACrE,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":""}
|