@livestore/common-cf 0.5.0-dev.0 → 0.5.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/declare/mod.js +1 -1
- package/dist/do-rpc/client.d.ts +8 -0
- package/dist/do-rpc/client.d.ts.map +1 -1
- package/dist/do-rpc/client.js +67 -37
- package/dist/do-rpc/client.js.map +1 -1
- package/dist/do-rpc/client.test.js +97 -7
- package/dist/do-rpc/client.test.js.map +1 -1
- package/dist/do-rpc/mod.d.ts +1 -1
- package/dist/do-rpc/mod.d.ts.map +1 -1
- package/dist/do-rpc/mod.js +2 -2
- package/dist/do-rpc/mod.js.map +1 -1
- package/dist/do-rpc/rpc.test.js +2 -2
- package/dist/do-rpc/rpc.test.js.map +1 -1
- package/dist/do-rpc/server.d.ts +4 -3
- package/dist/do-rpc/server.d.ts.map +1 -1
- package/dist/do-rpc/server.js +55 -63
- package/dist/do-rpc/server.js.map +1 -1
- package/dist/do-rpc/test-fixtures/rpc-schema.d.ts +16 -16
- package/dist/do-rpc/test-fixtures/worker.d.ts.map +1 -1
- package/dist/do-rpc/test-fixtures/worker.js +1 -1
- package/dist/mod.js +3 -3
- package/dist/ws-rpc/test-fixtures/rpc-schema.d.ts +16 -16
- package/dist/ws-rpc/test-fixtures/worker.d.ts.map +1 -1
- package/dist/ws-rpc/test-fixtures/worker.js +2 -2
- package/dist/ws-rpc/ws-rpc-server.d.ts +8 -2
- package/dist/ws-rpc/ws-rpc-server.d.ts.map +1 -1
- package/dist/ws-rpc/ws-rpc-server.js +45 -13
- package/dist/ws-rpc/ws-rpc-server.js.map +1 -1
- package/dist/ws-rpc/ws-rpc.test.js +1 -1
- package/dist/ws-rpc/ws-rpc.test.js.map +1 -1
- package/package.json +28 -28
- package/src/do-rpc/README.md +2 -2
- package/src/do-rpc/client.test.ts +148 -7
- package/src/do-rpc/client.ts +94 -53
- package/src/do-rpc/mod.ts +1 -1
- package/src/do-rpc/rpc.test.ts +1 -1
- package/src/do-rpc/server.ts +84 -67
- package/src/ws-rpc/ws-rpc-server.ts +78 -12
package/dist/declare/mod.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// NOTE We have a separate module for type level declarations as those are only available in CF worker environments
|
|
2
2
|
// and we need to avoid importing them from other environments.
|
|
3
|
-
export * as CfDeclare from
|
|
3
|
+
export * as CfDeclare from './cf-declare.js';
|
|
4
4
|
//# sourceMappingURL=mod.js.map
|
package/dist/do-rpc/client.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { Layer, RpcClient } from '@livestore/utils/effect';
|
|
2
2
|
import type * as CfTypes from '../cf-types.ts';
|
|
3
|
+
declare const DoRpcReadError_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 & {
|
|
4
|
+
readonly _tag: "DoRpcReadError";
|
|
5
|
+
} & Readonly<A>;
|
|
6
|
+
/** A transferred stream can lose Cloudflare's RPC error flags when its connection breaks. */
|
|
7
|
+
export declare class DoRpcReadError extends DoRpcReadError_base<{
|
|
8
|
+
cause: unknown;
|
|
9
|
+
}> {
|
|
10
|
+
}
|
|
3
11
|
interface MakeDoRpcProtocolArgs {
|
|
4
12
|
callRpc: (payload: Uint8Array) => Promise<Uint8Array | CfTypes.ReadableStream>;
|
|
5
13
|
callerContext: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/do-rpc/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/do-rpc/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,EAEL,SAAS,EAMV,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;;;;AAE9C,6FAA6F;AAC7F,qBAAa,cAAe,SAAQ,oBAAmC;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;CAAG;AA8D7F,UAAU,qBAAqB;IAC7B,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9E,aAAa,EAAE;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,SAAU,qBAAqB,KAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAGpG,CAAA"}
|
package/dist/do-rpc/client.js
CHANGED
|
@@ -1,33 +1,61 @@
|
|
|
1
|
-
import { Effect, Fiber, FiberMap, Layer, Option, RpcClient, RpcSerialization, } from '@livestore/utils/effect';
|
|
2
|
-
/**
|
|
1
|
+
import { Data, Effect, Fiber, FiberMap, Layer, Option, RpcClient, RpcClientError, RpcMessage, RpcSerialization, Schema, } from '@livestore/utils/effect';
|
|
2
|
+
/** A transferred stream can lose Cloudflare's RPC error flags when its connection breaks. */
|
|
3
|
+
export class DoRpcReadError extends Data.TaggedError('DoRpcReadError') {
|
|
4
|
+
}
|
|
5
|
+
const isEncodedRpcMessage = Schema.is(RpcMessage.EncodedSchema);
|
|
6
|
+
const isFromServerEncoded = (message) => {
|
|
7
|
+
if (isEncodedRpcMessage(message) === false)
|
|
8
|
+
return false;
|
|
9
|
+
return (message._tag === 'Chunk' ||
|
|
10
|
+
message._tag === 'Exit' ||
|
|
11
|
+
message._tag === 'Defect' ||
|
|
12
|
+
message._tag === 'Pong' ||
|
|
13
|
+
message._tag === 'Request');
|
|
14
|
+
};
|
|
15
|
+
/** Decodes a streaming-RPC `ReadableStream`'s binary frames, writing each out as it arrives. */
|
|
3
16
|
const processReadableStream = (stream, parser, writeResponse) => Effect.gen(function* () {
|
|
4
17
|
const reader = stream.getReader();
|
|
5
18
|
yield* Effect.gen(function* () {
|
|
6
19
|
while (true) {
|
|
7
|
-
const { done, value } = yield* Effect.tryPromise(
|
|
20
|
+
const { done, value } = yield* Effect.tryPromise({
|
|
21
|
+
try: () => reader.read(),
|
|
22
|
+
catch: (cause) => transportFailure(new DoRpcReadError({ cause })),
|
|
23
|
+
});
|
|
8
24
|
if (done === true) {
|
|
9
|
-
|
|
25
|
+
return yield* transportFailure(new DoRpcReadError({ cause: new Error('RPC stream ended before its exit') }));
|
|
10
26
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
27
|
+
if (value instanceof Uint8Array === false) {
|
|
28
|
+
return yield* Effect.die('Received a non-binary RPC response');
|
|
29
|
+
}
|
|
30
|
+
for (const message of parser.decode(value)) {
|
|
31
|
+
if (isFromServerEncoded(message) === false) {
|
|
32
|
+
return yield* Effect.die('Received an invalid RPC response');
|
|
33
|
+
}
|
|
16
34
|
yield* writeResponse(message);
|
|
35
|
+
// The RPC exit completes the request; do not wait for the transferred stream to close too.
|
|
36
|
+
if (message._tag === 'Exit')
|
|
37
|
+
return;
|
|
17
38
|
}
|
|
18
39
|
}
|
|
19
|
-
}).pipe(Effect.withSpan('do-rpc-client:processReadableStream'),
|
|
40
|
+
}).pipe(Effect.withSpan('do-rpc-client:processReadableStream'),
|
|
41
|
+
// Cancelling an errored stream rejects with that same error; ignore it so the original failure surfaces.
|
|
42
|
+
Effect.ensuring(Effect.sync(() => {
|
|
43
|
+
// Cancellation is best effort: a disconnected remote producer may never acknowledge it.
|
|
44
|
+
void reader.cancel().catch(() => { });
|
|
45
|
+
reader.releaseLock();
|
|
46
|
+
})));
|
|
20
47
|
});
|
|
21
48
|
/**
|
|
22
49
|
* Creates a Protocol layer that uses Cloudflare Durable Object RPC calls.
|
|
23
50
|
* This enables direct RPC communication with Durable Objects using Cloudflare's native RPC.
|
|
24
51
|
*/
|
|
25
|
-
export const layerProtocolDurableObject = (args) => Layer.effect(RpcClient.Protocol, makeProtocolDurableObject(args));
|
|
52
|
+
export const layerProtocolDurableObject = (args) => Layer.effect(RpcClient.Protocol, makeProtocolDurableObject(args)).pipe(Layer.provide(RpcSerialization.layerSchemaBinary()));
|
|
26
53
|
/**
|
|
27
54
|
* Implementation of the RPC Protocol interface using Cloudflare Durable Object RPC calls.
|
|
28
55
|
* Provides the core protocol methods required by @effect/rpc.
|
|
29
56
|
*/
|
|
30
57
|
const makeProtocolDurableObject = ({ callRpc, }) => RpcClient.Protocol.make(Effect.fnUntraced(function* (writeResponse) {
|
|
58
|
+
const serialization = yield* RpcSerialization.RpcSerialization;
|
|
31
59
|
// Not using an actual `FiberMap` here because it seems to shutdown to early
|
|
32
60
|
// const fiberMap = new Map<string, Fiber.Fiber<void, never>>()
|
|
33
61
|
const fiberMap = yield* FiberMap.make();
|
|
@@ -43,42 +71,44 @@ const makeProtocolDurableObject = ({ callRpc, }) => RpcClient.Protocol.make(Effe
|
|
|
43
71
|
}
|
|
44
72
|
return Effect.void;
|
|
45
73
|
}
|
|
46
|
-
//
|
|
47
|
-
const parser =
|
|
74
|
+
// Binary parsers hold stream framing state, so scope one parser to one DO RPC call.
|
|
75
|
+
const parser = serialization.makeUnsafe();
|
|
48
76
|
// Wrap single Request in array to match server expected format
|
|
49
77
|
const serializedPayload = parser.encode([message]);
|
|
78
|
+
if (serializedPayload instanceof Uint8Array === false) {
|
|
79
|
+
return Effect.die('SchemaBinary RPC serialization did not produce bytes');
|
|
80
|
+
}
|
|
50
81
|
return Effect.gen(function* () {
|
|
51
|
-
const serializedResponse = yield* Effect.tryPromise(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
82
|
+
const serializedResponse = yield* Effect.tryPromise({
|
|
83
|
+
try: () => callRpc(serializedPayload),
|
|
84
|
+
catch: transportFailure,
|
|
85
|
+
});
|
|
86
|
+
if (serializedResponse instanceof Uint8Array) {
|
|
87
|
+
for (const response of parser.decode(serializedResponse)) {
|
|
88
|
+
if (isFromServerEncoded(response) === false) {
|
|
89
|
+
return yield* Effect.die('Received an invalid RPC response');
|
|
90
|
+
}
|
|
91
|
+
yield* writeResponse(clientId, response);
|
|
92
|
+
}
|
|
60
93
|
return;
|
|
61
94
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (Array.isArray(decoded) === true) {
|
|
67
|
-
responseArray = decoded.flat(1);
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
responseArray = [decoded];
|
|
71
|
-
}
|
|
72
|
-
// Process each response
|
|
73
|
-
for (const response of responseArray) {
|
|
74
|
-
yield* writeResponse(clientId, response);
|
|
75
|
-
}
|
|
76
|
-
}).pipe(Effect.withSpan('do-rpc-client:send'), Effect.orDie); // Ensure never error type
|
|
95
|
+
const fiber = yield* processReadableStream(serializedResponse, parser, (response) => writeResponse(clientId, response)).pipe(Effect.forkChild);
|
|
96
|
+
yield* FiberMap.set(fiberMap, message.id, fiber);
|
|
97
|
+
yield* Fiber.join(fiber);
|
|
98
|
+
}).pipe(Effect.withSpan('do-rpc-client:send'));
|
|
77
99
|
};
|
|
78
100
|
return {
|
|
79
101
|
send,
|
|
80
102
|
supportsAck: false, // DO RPC doesn't support ack mechanism like WebSockets
|
|
81
103
|
supportsTransferables: false, // DO RPC doesn't support transferables yet
|
|
104
|
+
codecFor: serialization.codecFor,
|
|
82
105
|
};
|
|
83
106
|
}));
|
|
107
|
+
/**
|
|
108
|
+
* A rejected DO call or stream read fails only the request that made it (Effect RPC routes `send` failures per
|
|
109
|
+
* request). `RpcClientError` reasons are a closed union, so the original rejection rides as `RpcClientDefect.cause`.
|
|
110
|
+
*/
|
|
111
|
+
const transportFailure = (cause) => new RpcClientError.RpcClientError({
|
|
112
|
+
reason: new RpcClientError.RpcClientDefect({ message: 'Durable Object RPC call failed', cause }),
|
|
113
|
+
});
|
|
84
114
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/do-rpc/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/do-rpc/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Vitest } from '@livestore/utils-dev/node-vitest';
|
|
2
|
-
import { Effect, Fiber, Rpc, RpcClient, RpcGroup, Schema, Stream } from '@livestore/utils/effect';
|
|
3
|
-
import { layerProtocolDurableObject } from
|
|
4
|
-
import { toDurableObjectHandler } from
|
|
2
|
+
import { Cause, Effect, Exit, Fiber, Option, Rpc, RpcClient, RpcClientError, RpcGroup, Schema, Stream, } from '@livestore/utils/effect';
|
|
3
|
+
import { DoRpcReadError, layerProtocolDurableObject } from './client.js';
|
|
4
|
+
import { toDurableObjectHandler } from './server.js';
|
|
5
5
|
class Rpcs extends RpcGroup.make(Rpc.make('BigStream', {
|
|
6
6
|
payload: Schema.Struct({ n: Schema.Finite }),
|
|
7
7
|
success: Schema.Struct({
|
|
@@ -72,11 +72,101 @@ Vitest.live('keeps a straddling stream frame isolated from a concurrent unary re
|
|
|
72
72
|
Vitest.expect(result.echo).toEqual({ echo: 'Echo: hi' });
|
|
73
73
|
Vitest.expect(result.rows).toEqual(expectedRows);
|
|
74
74
|
}));
|
|
75
|
-
|
|
75
|
+
Vitest.describe('transport failures', () => {
|
|
76
|
+
Vitest.live('fails a unary call with an RpcClientError that keeps the rejected error', () => Effect.gen(function* () {
|
|
77
|
+
const rejected = cloudflareError();
|
|
78
|
+
const exit = yield* RpcClient.make(Rpcs).pipe(Effect.flatMap((client) => client.Echo({ text: 'hi' })), Effect.exit, Effect.provide(protocolWith(() => Promise.reject(rejected))), Effect.timeout('2 seconds'));
|
|
79
|
+
Vitest.expect(transportFailureCause(exit)).toBe(rejected);
|
|
80
|
+
}));
|
|
81
|
+
Vitest.live('preserves a read failure through rejected cancellation and releases the reader lock', () => Effect.gen(function* () {
|
|
82
|
+
const rejected = cloudflareError();
|
|
83
|
+
let failedStream;
|
|
84
|
+
const failAfterFirstRead = (bytes) => {
|
|
85
|
+
let isFirstRead = true;
|
|
86
|
+
const stream = new ReadableStream({
|
|
87
|
+
pull(controller) {
|
|
88
|
+
if (isFirstRead === false)
|
|
89
|
+
return controller.error(rejected);
|
|
90
|
+
isFirstRead = false;
|
|
91
|
+
controller.enqueue(bytes.subarray(0, READ_CHUNK_SIZE));
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
failedStream = stream;
|
|
95
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- bridge platform ReadableStream to the CF type, like server.ts
|
|
96
|
+
return stream;
|
|
97
|
+
};
|
|
98
|
+
const exit = yield* RpcClient.make(Rpcs).pipe(Effect.flatMap((client) => client.BigStream({ n: expectedRows.length }).pipe(Stream.runCollect)), Effect.exit, Effect.provide(protocolWith(makeGatedCallRpc(failAfterFirstRead))), Effect.timeout('2 seconds'));
|
|
99
|
+
Vitest.expect(transportFailureCause(exit)).toBe(rejected);
|
|
100
|
+
Vitest.expect(failedStream?.locked).toBe(false);
|
|
101
|
+
}));
|
|
102
|
+
Vitest.live('fails only the request whose call rejected', () => Effect.gen(function* () {
|
|
103
|
+
let releaseStream = () => { };
|
|
104
|
+
const streamReleased = new Promise((resolve) => {
|
|
105
|
+
releaseStream = resolve;
|
|
106
|
+
});
|
|
107
|
+
const gatedUntilReleased = (bytes) => {
|
|
108
|
+
const stream = new ReadableStream({
|
|
109
|
+
async start(controller) {
|
|
110
|
+
await streamReleased;
|
|
111
|
+
controller.enqueue(bytes);
|
|
112
|
+
controller.close();
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- bridge platform ReadableStream to the CF type, like server.ts
|
|
116
|
+
return stream;
|
|
117
|
+
};
|
|
118
|
+
const callStream = makeGatedCallRpc(gatedUntilReleased);
|
|
119
|
+
let calls = 0;
|
|
120
|
+
const callRpc = (payload) => {
|
|
121
|
+
calls++;
|
|
122
|
+
return calls === 1 ? callStream(payload) : Promise.reject(cloudflareError());
|
|
123
|
+
};
|
|
124
|
+
const result = yield* Effect.gen(function* () {
|
|
125
|
+
const client = yield* RpcClient.make(Rpcs);
|
|
126
|
+
const streamFiber = yield* client
|
|
127
|
+
.BigStream({ n: expectedRows.length })
|
|
128
|
+
.pipe(Stream.runCollect, Effect.forkChild);
|
|
129
|
+
yield* Effect.yieldNow;
|
|
130
|
+
const echoExit = yield* client.Echo({ text: 'hi' }).pipe(Effect.exit);
|
|
131
|
+
yield* Effect.sync(() => releaseStream());
|
|
132
|
+
const rows = yield* Fiber.join(streamFiber);
|
|
133
|
+
return { echoExit, rows: Array.from(rows) };
|
|
134
|
+
}).pipe(Effect.provide(protocolWith(callRpc)), Effect.timeout('2 seconds'));
|
|
135
|
+
Vitest.expect(transportFailureCause(result.echoExit)).toBeInstanceOf(Error);
|
|
136
|
+
Vitest.expect(result.rows).toEqual(expectedRows);
|
|
137
|
+
}));
|
|
138
|
+
Vitest.live('interruption releases the reader even when remote cancellation never completes', () => Effect.gen(function* () {
|
|
139
|
+
const stream = new ReadableStream({ cancel: () => new Promise(() => { }) });
|
|
140
|
+
const exit = yield* RpcClient.make(Rpcs).pipe(Effect.flatMap((client) => client.BigStream({ n: 1 }).pipe(Stream.runDrain, Effect.timeout('20 millis'))), Effect.exit,
|
|
141
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- bridge the platform stream to the CF type
|
|
142
|
+
Effect.provide(protocolWith(async () => stream)), Effect.timeout('2 seconds'));
|
|
143
|
+
Vitest.expect(Exit.isFailure(exit)).toBe(true);
|
|
144
|
+
Vitest.expect(stream.locked).toBe(false);
|
|
145
|
+
}));
|
|
146
|
+
Vitest.live('reports a truncated response as a read failure instead of waiting forever for an RPC exit', () => Effect.gen(function* () {
|
|
147
|
+
const stream = new ReadableStream({ start: (controller) => controller.close() });
|
|
148
|
+
const exit = yield* RpcClient.make(Rpcs).pipe(Effect.flatMap((client) => client.BigStream({ n: 1 }).pipe(Stream.runCollect)), Effect.exit,
|
|
149
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- bridge the platform stream to the CF type
|
|
150
|
+
Effect.provide(protocolWith(async () => stream)), Effect.timeout('2 seconds'));
|
|
151
|
+
Vitest.expect(transportFailureCause(exit)).toEqual(new Error('RPC stream ended before its exit'));
|
|
152
|
+
}));
|
|
153
|
+
});
|
|
154
|
+
const cloudflareError = () => Object.assign(new Error('Network connection lost.'), { retryable: true });
|
|
155
|
+
const protocolWith = (callRpc) => layerProtocolDurableObject({ callRpc, callerContext: { bindingName: 'TEST', durableObjectId: 'id' } });
|
|
156
|
+
/** The rejected error carried by a typed transport failure, or `undefined` for any other outcome (including a defect). */
|
|
157
|
+
const transportFailureCause = (exit) => {
|
|
158
|
+
if (Exit.isSuccess(exit) === true)
|
|
159
|
+
return undefined;
|
|
160
|
+
const error = Option.getOrUndefined(Cause.findErrorOption(exit.cause));
|
|
161
|
+
if (error instanceof RpcClientError.RpcClientError === false)
|
|
162
|
+
return undefined;
|
|
163
|
+
if (error.reason._tag !== 'RpcClientDefect')
|
|
164
|
+
return undefined;
|
|
165
|
+
return error.reason.cause instanceof DoRpcReadError ? error.reason.cause.cause : error.reason.cause;
|
|
166
|
+
};
|
|
167
|
+
const makeGatedCallRpc = (gateStream) => (payload) => toDurableObjectHandler(Rpcs, { layer: ServerLive })(new Uint8Array(payload)).pipe(Effect.filterOrElse(
|
|
76
168
|
// Narrow on `Uint8Array`; the `ReadableStream` global differs from `CfTypes` across envs.
|
|
77
|
-
(result) => result instanceof Uint8Array
|
|
78
|
-
? Effect.succeed(result)
|
|
79
|
-
: Effect.promise(() => collectBytes(result)).pipe(Effect.map(gateStream))), Effect.runPromise);
|
|
169
|
+
(result) => result instanceof Uint8Array, (result) => Effect.promise(() => collectBytes(result)).pipe(Effect.map(gateStream))), Effect.runPromise);
|
|
80
170
|
const collectBytes = async (stream) => {
|
|
81
171
|
const reader = stream.getReader();
|
|
82
172
|
const parts = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/do-rpc/client.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/do-rpc/client.test.ts"],"names":[],"mappings":"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"}
|
package/dist/do-rpc/mod.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { layerProtocolDurableObject } from './client.ts';
|
|
1
|
+
export { DoRpcReadError, layerProtocolDurableObject } from './client.ts';
|
|
2
2
|
export { type ClientDoWithRpcCallback, emitStreamResponse, toDurableObjectHandler } from './server.ts';
|
|
3
3
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/do-rpc/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/do-rpc/mod.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/do-rpc/mod.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,EAAE,KAAK,uBAAuB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/do-rpc/mod.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// Re-export client and server implementations for backward compatibility
|
|
2
|
-
export { layerProtocolDurableObject } from
|
|
3
|
-
export { emitStreamResponse, toDurableObjectHandler } from
|
|
2
|
+
export { DoRpcReadError, layerProtocolDurableObject } from './client.js';
|
|
3
|
+
export { emitStreamResponse, toDurableObjectHandler } from './server.js';
|
|
4
4
|
//# sourceMappingURL=mod.js.map
|
package/dist/do-rpc/mod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/do-rpc/mod.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/do-rpc/mod.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,EAAgC,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/do-rpc/rpc.test.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Vitest } from '@livestore/utils-dev/node-vitest';
|
|
|
3
3
|
import { WranglerDevServer } from '@livestore/utils-dev/wrangler';
|
|
4
4
|
import { Effect, FetchHttpClient, Layer, Option, References, RpcClient, RpcSerialization, Stream, } from '@livestore/utils/effect';
|
|
5
5
|
import { PlatformNode } from '@livestore/utils/node';
|
|
6
|
-
import { TestRpcs } from
|
|
6
|
+
import { TestRpcs } from './test-fixtures/rpc-schema.js';
|
|
7
7
|
const testTimeout = 60_000;
|
|
8
8
|
const withWranglerTest = Vitest.makeWithTestCtx({
|
|
9
9
|
timeout: testTimeout,
|
|
@@ -100,7 +100,7 @@ Vitest.describe('Durable Object RPC', { timeout: testTimeout }, () => {
|
|
|
100
100
|
/*
|
|
101
101
|
|
|
102
102
|
|
|
103
|
-
In
|
|
103
|
+
In the installed `@effect/rpc` `RpcClient.js`:
|
|
104
104
|
add the console log
|
|
105
105
|
```
|
|
106
106
|
yield* Scope.addFinalizerExit(scope, exit => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.test.js","sourceRoot":"","sources":["../../src/do-rpc/rpc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EACL,MAAM,EACN,eAAe,EACf,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,MAAM,GACP,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAExD,MAAM,WAAW,GAAG,MAAM,CAAA;AAE1B,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC;IAC9C,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,GAAG,EAAE,CACd,iBAAiB,CAAC,KAAK,CAAC;QACtB,GAAG,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"rpc.test.js","sourceRoot":"","sources":["../../src/do-rpc/rpc.test.ts"],"names":[],"mappings":"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"}
|
package/dist/do-rpc/server.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Effect, type Layer, type ReadonlyArray, Rpc, type RpcGroup } from '@livestore/utils/effect';
|
|
1
|
+
import { Effect, type Layer, type ReadonlyArray, Rpc, type RpcGroup, Schema } from '@livestore/utils/effect';
|
|
2
2
|
import type * as CfTypes from '../cf-types.ts';
|
|
3
3
|
export interface ClientDoWithRpcCallback {
|
|
4
4
|
__DURABLE_OBJECT_BRAND: never;
|
|
@@ -27,6 +27,7 @@ export declare const emitStreamResponse: (args_0: {
|
|
|
27
27
|
};
|
|
28
28
|
requestId: string;
|
|
29
29
|
storeId: string;
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
schema: Schema.Top;
|
|
31
|
+
values: ReadonlyArray.NonEmptyReadonlyArray<unknown>;
|
|
32
|
+
}) => Effect.Effect<void, Schema.SchemaError | import("effect/Cause").UnknownError, never>;
|
|
32
33
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/do-rpc/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/do-rpc/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAIN,KAAK,KAAK,EAEV,KAAK,aAAa,EAClB,GAAG,EACH,KAAK,QAAQ,EAKb,MAAM,EAIP,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;AA0B9C,MAAM,WAAW,uBAAuB;IACtC,sBAAsB,EAAE,KAAK,CAAA;IAC7B;;;OAGG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpF;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAChC,IAAI,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE,SAChB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WACrB;IACP,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3E,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAC9D,KACA,CAAC,CACF,iBAAiB,EAAE,UAAU,CAAC,WAAW,CAAC,KACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CA+IjE,CAAA;AAEL,qEAAqE;AACrE,eAAO,MAAM,kBAAkB;SAQxB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;mBACT;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;eACpD,MAAM;aACR,MAAM;YACP,MAAM,CAAC,GAAG;YACV,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC;0FAwBpD,CAAA"}
|