alchemy 2.0.0-beta.40 → 2.0.0-beta.41
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/bin/exec.js +16 -3
- package/bin/exec.js.map +1 -1
- package/lib/AWS/EC2/hosted.js +1 -1
- package/lib/AWS/EC2/hosted.js.map +1 -1
- package/lib/AWS/ECS/Task.js +1 -1
- package/lib/AWS/ECS/Task.js.map +1 -1
- package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/BucketEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/EventBridgeEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.js +1 -1
- package/lib/AWS/Lambda/Function.js.map +1 -1
- package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/StreamEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/TableEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/TopicEventSource.d.ts.map +1 -1
- package/lib/Apply.d.ts.map +1 -1
- package/lib/Apply.js +41 -7
- package/lib/Apply.js.map +1 -1
- package/lib/Cloudflare/Bridge.d.ts +1 -0
- package/lib/Cloudflare/Bridge.d.ts.map +1 -1
- package/lib/Cloudflare/Bridge.js +1 -0
- package/lib/Cloudflare/Bridge.js.map +1 -1
- package/lib/Cloudflare/Container/ContainerApplication.js +1 -1
- package/lib/Cloudflare/Container/ContainerApplication.js.map +1 -1
- package/lib/Cloudflare/Container/ContainerBinding.d.ts +1 -1
- package/lib/Cloudflare/Container/ContainerBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Container/ContainerBinding.js +1 -1
- package/lib/Cloudflare/Container/ContainerBinding.js.map +1 -1
- package/lib/Cloudflare/Fetcher.d.ts +9 -0
- package/lib/Cloudflare/Fetcher.d.ts.map +1 -1
- package/lib/Cloudflare/Fetcher.js +20 -1
- package/lib/Cloudflare/Fetcher.js.map +1 -1
- package/lib/Cloudflare/Local/SidecarHandlers.d.ts.map +1 -1
- package/lib/Cloudflare/Local/SidecarHandlers.js +1 -1
- package/lib/Cloudflare/Local/SidecarHandlers.js.map +1 -1
- package/lib/Cloudflare/StateStore/Api.d.ts +2 -2
- package/lib/Cloudflare/Website/StaticSite.d.ts +5 -4
- package/lib/Cloudflare/Website/StaticSite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/StaticSite.js.map +1 -1
- package/lib/Cloudflare/Website/Vite.d.ts +4 -4
- package/lib/Cloudflare/Website/Vite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/Vite.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts +17 -0
- package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/DurableObjectBridge.js +86 -0
- package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -0
- package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts +2 -1
- package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectNamespace.js +10 -39
- package/lib/Cloudflare/Workers/DurableObjectNamespace.js.map +1 -1
- package/lib/Cloudflare/Workers/HttpServer.d.ts +2 -8
- package/lib/Cloudflare/Workers/HttpServer.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/HttpServer.js +29 -33
- package/lib/Cloudflare/Workers/HttpServer.js.map +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts +5 -24
- package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Rpc.d.ts +0 -101
- package/lib/Cloudflare/Workers/Rpc.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Rpc.js +9 -286
- package/lib/Cloudflare/Workers/Rpc.js.map +1 -1
- package/lib/Cloudflare/Workers/RpcAsync.d.ts +8 -0
- package/lib/Cloudflare/Workers/RpcAsync.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/RpcAsync.js +45 -0
- package/lib/Cloudflare/Workers/RpcAsync.js.map +1 -0
- package/lib/Cloudflare/Workers/Worker.d.ts +16 -162
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +49 -354
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts +8 -0
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +129 -0
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -0
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts +154 -0
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerBinding.js +51 -0
- package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -0
- package/lib/Cloudflare/Workers/WorkerBridge.d.ts +35 -0
- package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerBridge.js +149 -0
- package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -0
- package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.js +18 -84
- package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts +8 -0
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +113 -0
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -0
- package/lib/Cloudflare/Workers/WorkflowBridge.d.ts +26 -0
- package/lib/Cloudflare/Workers/WorkflowBridge.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkflowBridge.js +41 -0
- package/lib/Cloudflare/Workers/WorkflowBridge.js.map +1 -0
- package/lib/Cloudflare/Workers/index.d.ts +4 -0
- package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/index.js +4 -0
- package/lib/Cloudflare/Workers/index.js.map +1 -1
- package/lib/Cloudflare/index.d.ts +4 -2
- package/lib/Cloudflare/index.d.ts.map +1 -1
- package/lib/Cloudflare/index.js +4 -2
- package/lib/Cloudflare/index.js.map +1 -1
- package/lib/Neon/Project.d.ts.map +1 -1
- package/lib/Neon/Project.js +2 -1
- package/lib/Neon/Project.js.map +1 -1
- package/lib/Platform.d.ts +3 -4
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Platform.js.map +1 -1
- package/lib/Rpc.d.ts +17 -0
- package/lib/Rpc.d.ts.map +1 -0
- package/lib/Rpc.js +1 -0
- package/lib/Rpc.js.map +1 -0
- package/lib/RuntimeContext.d.ts +1 -0
- package/lib/RuntimeContext.d.ts.map +1 -1
- package/lib/RuntimeContext.js.map +1 -1
- package/lib/Sidecar/RpcHandler.d.ts.map +1 -1
- package/lib/Sidecar/RpcHandler.js +13 -9
- package/lib/Sidecar/RpcHandler.js.map +1 -1
- package/lib/State/HttpStateApi.d.ts +10 -0
- package/lib/State/HttpStateApi.d.ts.map +1 -1
- package/lib/State/HttpStateApi.js +10 -0
- package/lib/State/HttpStateApi.js.map +1 -1
- package/lib/State/HttpStateStore.d.ts.map +1 -1
- package/lib/State/HttpStateStore.js +2 -1
- package/lib/State/HttpStateStore.js.map +1 -1
- package/lib/State/InMemoryState.d.ts.map +1 -1
- package/lib/State/InMemoryState.js +2 -0
- package/lib/State/InMemoryState.js.map +1 -1
- package/lib/State/LocalState.d.ts.map +1 -1
- package/lib/State/LocalState.js +2 -0
- package/lib/State/LocalState.js.map +1 -1
- package/lib/State/State.d.ts +8 -0
- package/lib/State/State.d.ts.map +1 -1
- package/lib/State/StateEncoding.d.ts.map +1 -1
- package/lib/State/StateEncoding.js +5 -1
- package/lib/State/StateEncoding.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/Apply.ts +44 -10
- package/src/Cli/Event.ts +1 -1
- package/src/Cloudflare/Bridge.ts +1 -0
- package/src/Cloudflare/Container/ContainerBinding.ts +1 -1
- package/src/Cloudflare/Fetcher.ts +38 -1
- package/src/Cloudflare/Local/SidecarHandlers.ts +3 -6
- package/src/Cloudflare/Website/StaticSite.ts +10 -5
- package/src/Cloudflare/Website/Vite.ts +7 -4
- package/src/Cloudflare/Workers/DurableObjectBridge.ts +180 -0
- package/src/Cloudflare/Workers/DurableObjectNamespace.ts +22 -70
- package/src/Cloudflare/Workers/HttpServer.ts +25 -39
- package/src/Cloudflare/Workers/InferEnv.ts +42 -78
- package/src/Cloudflare/Workers/Rpc.ts +18 -417
- package/src/Cloudflare/Workers/RpcAsync.ts +63 -0
- package/src/Cloudflare/Workers/Worker.ts +107 -548
- package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +149 -0
- package/src/Cloudflare/Workers/WorkerBinding.ts +103 -0
- package/src/Cloudflare/Workers/WorkerBridge.ts +304 -0
- package/src/Cloudflare/Workers/WorkerBundle.ts +17 -83
- package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +164 -0
- package/src/Cloudflare/Workers/WorkflowBridge.ts +92 -0
- package/src/Cloudflare/Workers/index.ts +4 -0
- package/src/Cloudflare/index.ts +4 -2
- package/src/Neon/Project.ts +3 -1
- package/src/Platform.ts +3 -4
- package/src/Rpc.ts +25 -0
- package/src/RuntimeContext.ts +1 -0
- package/src/Sidecar/RpcHandler.ts +18 -9
- package/src/State/HttpStateApi.ts +11 -0
- package/src/State/HttpStateStore.ts +7 -2
- package/src/State/InMemoryState.ts +2 -0
- package/src/State/LocalState.ts +2 -0
- package/src/State/State.ts +8 -0
- package/src/State/StateEncoding.ts +8 -1
- package/src/index.ts +7 -6
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import type * as cf from "@cloudflare/workers-types";
|
|
2
1
|
import * as Cause from "effect/Cause";
|
|
3
2
|
import * as Effect from "effect/Effect";
|
|
4
3
|
import * as Stream from "effect/Stream";
|
|
5
4
|
import * as Socket from "effect/unstable/socket/Socket";
|
|
6
|
-
import type { ExtractRpcShape, RpcPromiseShape } from "./InferEnv.ts";
|
|
7
5
|
export declare const StreamTag = "~alchemy/rpc/stream";
|
|
8
6
|
export declare const ErrorTag = "~alchemy/rpc/error";
|
|
9
7
|
export declare const StreamErrorTag = "~alchemy/rpc/stream-error";
|
|
@@ -75,105 +73,6 @@ export declare const decodeRpcResult: (value: unknown) => Effect.Effect<unknown,
|
|
|
75
73
|
* its methods are called at exec, even though it's *defined* at init).
|
|
76
74
|
*/
|
|
77
75
|
export declare const makeRpcStub: <Shape>(stubSource: unknown | Effect.Effect<unknown, never, never>) => Shape;
|
|
78
|
-
/**
|
|
79
|
-
* Wrap a raw Cloudflare service binding (the wire-typed view emitted by
|
|
80
|
-
* `InferEnv`) into a Promise-flavored API for non-Effect consumers.
|
|
81
|
-
*
|
|
82
|
-
* Effect-native worker methods serialize their results as envelopes:
|
|
83
|
-
* `Effect.fail` becomes `RpcErrorEnvelope`, `Stream` becomes
|
|
84
|
-
* `RpcStreamEnvelope`, and `Effect.succeed`/raw values pass through. This
|
|
85
|
-
* proxy auto-decodes those envelopes — error envelopes are thrown so the
|
|
86
|
-
* caller's `await` rejects, and stream envelopes are unwrapped to their raw
|
|
87
|
-
* `ReadableStream<Uint8Array>` body.
|
|
88
|
-
*
|
|
89
|
-
* `Service.fetch` and `Service.connect` pass through untouched, so the
|
|
90
|
-
* returned proxy is still a usable `Service` binding.
|
|
91
|
-
*
|
|
92
|
-
* For Effect-to-Effect cross-worker calls, prefer `bindWorker(Worker)` —
|
|
93
|
-
* it preserves typed errors and decoded streams.
|
|
94
|
-
*
|
|
95
|
-
* The generic parameter is the Worker *class* (or its Effect form), the
|
|
96
|
-
* same value you would pass to `bindWorker`. Shape is recovered from the
|
|
97
|
-
* embedded `Rpc<Shape>`.
|
|
98
|
-
*
|
|
99
|
-
* @example
|
|
100
|
-
* ```ts
|
|
101
|
-
* import * as Cloudflare from "alchemy/Cloudflare";
|
|
102
|
-
* import Backend from "./backend.ts";
|
|
103
|
-
*
|
|
104
|
-
* const backend = Cloudflare.toPromiseApi<typeof Backend>(env.BACKEND);
|
|
105
|
-
* const greeting = await backend.hello(key); // throws on Effect.fail
|
|
106
|
-
* ```
|
|
107
|
-
*/
|
|
108
|
-
export declare const toPromiseApi: <W>(stub: any) => RpcPromiseShape<ExtractRpcShape<W>> & Service;
|
|
109
|
-
/**
|
|
110
|
-
* Create a DurableObjectBridge class that proxies RPC method calls through
|
|
111
|
-
* the Effect runtime, encoding success/fail/stream results as RPC envelopes.
|
|
112
|
-
*
|
|
113
|
-
* Accepts the `DurableObject` base class and a `getExport` resolver so the
|
|
114
|
-
* implementation lives in real TypeScript instead of a generated string template.
|
|
115
|
-
*/
|
|
116
|
-
export declare const makeDurableObjectBridge: (DurableObject: abstract new (state: unknown, env: unknown) => cf.DurableObject, getExport: (name: string) => Promise<(state: unknown, env: unknown) => Effect.Effect<Record<string, unknown>>>) => (className: string) => {
|
|
117
|
-
new (state: {
|
|
118
|
-
blockConcurrencyWhile: (fn: () => Promise<unknown>) => Promise<unknown>;
|
|
119
|
-
}, env: unknown): {
|
|
120
|
-
readonly object: Promise<DurableObjectShape>;
|
|
121
|
-
fetch(request: cf.Request): Promise<cf.Response>;
|
|
122
|
-
alarm(alarmInfo?: cf.AlarmInvocationInfo): Promise<void>;
|
|
123
|
-
webSocketMessage(ws: cf.WebSocket, message: string | ArrayBuffer): Promise<void>;
|
|
124
|
-
webSocketClose(ws: cf.WebSocket, code: number, reason: string, wasClean: boolean): Promise<void>;
|
|
125
|
-
connect?(socket: cf.Socket): void | Promise<void>;
|
|
126
|
-
webSocketError?(ws: cf.WebSocket, error: unknown): void | Promise<void>;
|
|
127
|
-
};
|
|
128
|
-
};
|
|
129
|
-
/**
|
|
130
|
-
* Create a `WorkerBridge` class — a `WorkerEntrypoint` subclass that
|
|
131
|
-
* Cloudflare instantiates per request and dispatches both standard
|
|
132
|
-
* handlers (`fetch`/`scheduled`/…) and RPC method calls into.
|
|
133
|
-
*
|
|
134
|
-
* The bridge is intentionally layer-ignorant: all runtime-layer plumbing
|
|
135
|
-
* (services, scope, `WorkerExecutionContext`) lives in the platform's
|
|
136
|
-
* `runtimeContext.exports` flow, which builds:
|
|
137
|
-
*
|
|
138
|
-
* - `getDefault()` → `{ fetch, scheduled, … }` — handler dispatchers
|
|
139
|
-
* that the bridge forwards `(input, env, ctx)` to.
|
|
140
|
-
* - `getRpc()` → `{ method: (args, ctx) => Promise<envelope> }` —
|
|
141
|
-
* pre-wrapped RPC dispatchers that already run the user effect with
|
|
142
|
-
* the right runtime layer and envelope-encode the result.
|
|
143
|
-
*
|
|
144
|
-
* Cloudflare's script-validate step requires standard handler methods
|
|
145
|
-
* (`fetch`/`scheduled`/etc.) to be visible on the class prototype. We
|
|
146
|
-
* declare static stubs there and override them per-instance with
|
|
147
|
-
* closure-bound forwarders that capture `ctx`/`env` from the constructor
|
|
148
|
-
* (prototype-level `this` doesn't survive the proxy + RPC dispatch
|
|
149
|
-
* round-trip in some Cloudflare runtime versions).
|
|
150
|
-
*/
|
|
151
|
-
export declare const makeWorkerBridge: (WorkerEntrypoint: abstract new (ctx: unknown, env: unknown) => {
|
|
152
|
-
fetch?(request: cf.Request): Promise<cf.Response> | cf.Response;
|
|
153
|
-
}, ExportedHandlerMethods: ReadonlyArray<string>, getDefault: () => Promise<Record<string, any>>, getRpc: () => Promise<Record<string, any>>) => {
|
|
154
|
-
new (ctx: unknown, env: unknown): {
|
|
155
|
-
fetch?(request: cf.Request): Promise<cf.Response> | cf.Response;
|
|
156
|
-
};
|
|
157
|
-
};
|
|
158
|
-
/**
|
|
159
|
-
* Create a WorkflowBridge class that extends `WorkflowEntrypoint` and
|
|
160
|
-
* delegates the `run(event, step)` call to the Effect-native workflow body
|
|
161
|
-
* registered via `worker.export(...)`.
|
|
162
|
-
*
|
|
163
|
-
* The bridge provides `WorkflowEvent` and `WorkflowStep` as Effect
|
|
164
|
-
* services so the user writes `yield* WorkflowEvent` and `yield* task(...)`
|
|
165
|
-
* instead of receiving callback parameters.
|
|
166
|
-
*/
|
|
167
|
-
export declare const makeWorkflowBridge: (WorkflowEntrypoint: abstract new (ctx: unknown, env: unknown) => {
|
|
168
|
-
run(event: any, step: any): Promise<unknown>;
|
|
169
|
-
}, getExport: (name: string) => Promise<(env: unknown) => Effect.Effect<(input: unknown) => Effect.Effect<unknown, never, any>>>) => (className: string) => {
|
|
170
|
-
new (ctx: unknown, env: unknown): {
|
|
171
|
-
readonly fn: Promise<(input: unknown) => Effect.Effect<unknown, never, any>>;
|
|
172
|
-
readonly env: unknown;
|
|
173
|
-
run(event: any, step: any): Promise<unknown>;
|
|
174
|
-
};
|
|
175
|
-
};
|
|
176
|
-
import type { DurableObjectShape } from "./DurableObjectNamespace.ts";
|
|
177
76
|
export declare const toRpcStream: (stream: Stream.Stream<any, any, any>) => Effect.Effect<{
|
|
178
77
|
_tag: "~alchemy/rpc/stream";
|
|
179
78
|
encoding: "bytes";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rpc.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Rpc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Rpc.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Rpc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AAIxD,eAAO,MAAM,SAAS,wBAAwB,CAAC;AAC/C,eAAO,MAAM,QAAQ,uBAAuB,CAAC;AAC7C,eAAO,MAAM,cAAc,8BAA8B,CAAC;AAE1D,KAAK,cAAc,GAAG,OAAO,GAAG,OAAO,CAAC;AAExC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,OAAO,SAAS,CAAC;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CAClC,CAAC;;;;AAEF,qBAAa,cAAe,SAAQ,oBAAmC;IACrE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;IACA,IAAa,OAAO,WAInB;CACF;;;;AAED,qBAAa,YAAa,SAAQ,kBAAiC;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;IACA,IAAa,OAAO,WAInB;CACF;;;;AAED,qBAAa,oBAAqB,SAAQ,0BAExC;IACA,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;AAEL,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,OAAO,QAAQ,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,OAAO,cAAc,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,OAAO,OAAO,KACb,KAAK,IAAI,oBAKM,CAAC;AAEnB,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,gBAK3C,CAAC;AAEnB;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,OAqB/C,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,OAAO,KACb,KAAK,IAAI,iBAQ0B,CAAC;AAEvC,eAAO,MAAM,qBAAqB,GAChC,MAAM,cAAc,CAAC,UAAU,CAAC,EAChC,UAAU,cAAc,KACvB,MAAM,CAAC,MAAM,CACd,GAAG,EACH,MAAM,CAAC,WAAW,GAAG,cAAc,GAAG,oBAAoB,CAgC3D,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,UAAU,iBAAiB,KAC1B,MAAM,CAAC,MAAM,CACd,GAAG,EACH,MAAM,CAAC,WAAW,GAAG,cAAc,GAAG,oBAAoB,CACA,CAAC;AAE7D,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,YAU5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAKhC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,EAC/B,YAAY,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KACzD,KAyBF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;;;;;;;;;;;cA6C7D,CAAC"}
|
|
@@ -7,8 +7,6 @@ import * as Stream from "effect/Stream";
|
|
|
7
7
|
import * as Socket from "effect/unstable/socket/Socket";
|
|
8
8
|
import { isYieldableEffect } from "../../Util/effect.js";
|
|
9
9
|
import { fromCloudflareFetcher } from "../Fetcher.js";
|
|
10
|
-
import { serveWebRequest } from "./HttpServer.js";
|
|
11
|
-
import { fromWebSocket } from "./WebSocket.js";
|
|
12
10
|
export const StreamTag = "~alchemy/rpc/stream";
|
|
13
11
|
export const ErrorTag = "~alchemy/rpc/error";
|
|
14
12
|
export const StreamErrorTag = "~alchemy/rpc/stream-error";
|
|
@@ -146,290 +144,6 @@ export const makeRpcStub = (stubSource) => {
|
|
|
146
144
|
},
|
|
147
145
|
});
|
|
148
146
|
};
|
|
149
|
-
/**
|
|
150
|
-
* Wrap a raw Cloudflare service binding (the wire-typed view emitted by
|
|
151
|
-
* `InferEnv`) into a Promise-flavored API for non-Effect consumers.
|
|
152
|
-
*
|
|
153
|
-
* Effect-native worker methods serialize their results as envelopes:
|
|
154
|
-
* `Effect.fail` becomes `RpcErrorEnvelope`, `Stream` becomes
|
|
155
|
-
* `RpcStreamEnvelope`, and `Effect.succeed`/raw values pass through. This
|
|
156
|
-
* proxy auto-decodes those envelopes — error envelopes are thrown so the
|
|
157
|
-
* caller's `await` rejects, and stream envelopes are unwrapped to their raw
|
|
158
|
-
* `ReadableStream<Uint8Array>` body.
|
|
159
|
-
*
|
|
160
|
-
* `Service.fetch` and `Service.connect` pass through untouched, so the
|
|
161
|
-
* returned proxy is still a usable `Service` binding.
|
|
162
|
-
*
|
|
163
|
-
* For Effect-to-Effect cross-worker calls, prefer `bindWorker(Worker)` —
|
|
164
|
-
* it preserves typed errors and decoded streams.
|
|
165
|
-
*
|
|
166
|
-
* The generic parameter is the Worker *class* (or its Effect form), the
|
|
167
|
-
* same value you would pass to `bindWorker`. Shape is recovered from the
|
|
168
|
-
* embedded `Rpc<Shape>`.
|
|
169
|
-
*
|
|
170
|
-
* @example
|
|
171
|
-
* ```ts
|
|
172
|
-
* import * as Cloudflare from "alchemy/Cloudflare";
|
|
173
|
-
* import Backend from "./backend.ts";
|
|
174
|
-
*
|
|
175
|
-
* const backend = Cloudflare.toPromiseApi<typeof Backend>(env.BACKEND);
|
|
176
|
-
* const greeting = await backend.hello(key); // throws on Effect.fail
|
|
177
|
-
* ```
|
|
178
|
-
*/
|
|
179
|
-
export const toPromiseApi = (stub) => new Proxy(stub, {
|
|
180
|
-
get: (target, prop) => {
|
|
181
|
-
// `Service` methods (fetch/connect) and any non-string keys (Symbol.dispose, etc.)
|
|
182
|
-
// pass through to the underlying Cloudflare binding unchanged.
|
|
183
|
-
if (typeof prop !== "string" || prop === "fetch" || prop === "connect") {
|
|
184
|
-
const value = target[prop];
|
|
185
|
-
return typeof value === "function" ? value.bind(target) : value;
|
|
186
|
-
}
|
|
187
|
-
return async (...args) => {
|
|
188
|
-
const result = await target[prop](...args);
|
|
189
|
-
if (isRpcErrorEnvelope(result)) {
|
|
190
|
-
throw decodeRpcThrowable(result.error);
|
|
191
|
-
}
|
|
192
|
-
if (isRpcStreamEnvelope(result)) {
|
|
193
|
-
return result.body;
|
|
194
|
-
}
|
|
195
|
-
return result;
|
|
196
|
-
};
|
|
197
|
-
},
|
|
198
|
-
});
|
|
199
|
-
/**
|
|
200
|
-
* Reconstruct a throwable from {@link encodeRpcError}'s wire form. Plain
|
|
201
|
-
* `Error` payloads are rebuilt as `Error` instances so `.message`/`.name`/
|
|
202
|
-
* `.stack` survive. Tagged errors (anything with a `_tag`) and primitives
|
|
203
|
-
* are thrown as-is so `try { ... } catch (e) { if (e._tag === ...) }` keeps
|
|
204
|
-
* working.
|
|
205
|
-
*/
|
|
206
|
-
const decodeRpcThrowable = (error) => {
|
|
207
|
-
if (error === null || typeof error !== "object")
|
|
208
|
-
return error;
|
|
209
|
-
const obj = error;
|
|
210
|
-
if ("_tag" in obj)
|
|
211
|
-
return obj;
|
|
212
|
-
if (typeof obj.message === "string" || typeof obj.name === "string") {
|
|
213
|
-
const e = new Error(typeof obj.message === "string" ? obj.message : "");
|
|
214
|
-
if (typeof obj.name === "string")
|
|
215
|
-
e.name = obj.name;
|
|
216
|
-
if (typeof obj.stack === "string")
|
|
217
|
-
e.stack = obj.stack;
|
|
218
|
-
return e;
|
|
219
|
-
}
|
|
220
|
-
return error;
|
|
221
|
-
};
|
|
222
|
-
/**
|
|
223
|
-
* Create a DurableObjectBridge class that proxies RPC method calls through
|
|
224
|
-
* the Effect runtime, encoding success/fail/stream results as RPC envelopes.
|
|
225
|
-
*
|
|
226
|
-
* Accepts the `DurableObject` base class and a `getExport` resolver so the
|
|
227
|
-
* implementation lives in real TypeScript instead of a generated string template.
|
|
228
|
-
*/
|
|
229
|
-
export const makeDurableObjectBridge = (DurableObject, getExport) => (className) => class DurableObjectBridge extends DurableObject {
|
|
230
|
-
object;
|
|
231
|
-
async fetch(request) {
|
|
232
|
-
const methods = await this.object;
|
|
233
|
-
if (methods.fetch) {
|
|
234
|
-
const fetch = methods.fetch;
|
|
235
|
-
const response = await serveWebRequest(request, fetch).pipe(Effect.runPromise);
|
|
236
|
-
return response;
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
return new Response("Method not found", { status: 404 });
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
async alarm(alarmInfo) {
|
|
243
|
-
const methods = await this.object;
|
|
244
|
-
if (methods.alarm) {
|
|
245
|
-
await Effect.runPromise(methods.alarm(alarmInfo));
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
async webSocketMessage(ws, message) {
|
|
249
|
-
const methods = await this.object;
|
|
250
|
-
if (methods.webSocketMessage) {
|
|
251
|
-
const socket = fromWebSocket(ws);
|
|
252
|
-
const value = methods.webSocketMessage(socket, message);
|
|
253
|
-
if (Effect.isEffect(value)) {
|
|
254
|
-
await Effect.runPromise(value);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
async webSocketClose(ws, code, reason, wasClean) {
|
|
259
|
-
const methods = await this.object;
|
|
260
|
-
if (methods.webSocketClose) {
|
|
261
|
-
const socket = fromWebSocket(ws);
|
|
262
|
-
const value = methods.webSocketClose(socket, code, reason, wasClean);
|
|
263
|
-
if (Effect.isEffect(value)) {
|
|
264
|
-
await Effect.runPromise(value);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
constructor(state, env) {
|
|
269
|
-
super(state, env);
|
|
270
|
-
this.object = state.blockConcurrencyWhile(async () => {
|
|
271
|
-
const makeDurableObject = await getExport(className);
|
|
272
|
-
return await Effect.runPromise(makeDurableObject(state, env));
|
|
273
|
-
});
|
|
274
|
-
return new Proxy(this, {
|
|
275
|
-
get: (target, prop) => prop in target
|
|
276
|
-
? target[prop]
|
|
277
|
-
: async (...args) => {
|
|
278
|
-
const methods = await this.object;
|
|
279
|
-
const method = methods[prop]; // TODO(sam): what should the type be? Is it safe to always call it?
|
|
280
|
-
const value = method(...args);
|
|
281
|
-
if (Effect.isEffect(value)) {
|
|
282
|
-
const exit = await Effect.runPromiseExit(value);
|
|
283
|
-
if (exit._tag === "Success") {
|
|
284
|
-
if (Stream.isStream(exit.value)) {
|
|
285
|
-
return await Effect.runPromise(toRpcStream(exit.value));
|
|
286
|
-
}
|
|
287
|
-
return exit.value;
|
|
288
|
-
}
|
|
289
|
-
const failReason = exit.cause.reasons.find(Cause.isFailReason);
|
|
290
|
-
if (failReason) {
|
|
291
|
-
return {
|
|
292
|
-
_tag: ErrorTag,
|
|
293
|
-
error: encodeRpcError(failReason.error),
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
const dieReason = exit.cause.reasons.find(Cause.isDieReason);
|
|
297
|
-
throw (dieReason?.defect ??
|
|
298
|
-
new Error("RPC method failed with an unexpected cause"));
|
|
299
|
-
}
|
|
300
|
-
return value;
|
|
301
|
-
},
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
};
|
|
305
|
-
/**
|
|
306
|
-
* Create a `WorkerBridge` class — a `WorkerEntrypoint` subclass that
|
|
307
|
-
* Cloudflare instantiates per request and dispatches both standard
|
|
308
|
-
* handlers (`fetch`/`scheduled`/…) and RPC method calls into.
|
|
309
|
-
*
|
|
310
|
-
* The bridge is intentionally layer-ignorant: all runtime-layer plumbing
|
|
311
|
-
* (services, scope, `WorkerExecutionContext`) lives in the platform's
|
|
312
|
-
* `runtimeContext.exports` flow, which builds:
|
|
313
|
-
*
|
|
314
|
-
* - `getDefault()` → `{ fetch, scheduled, … }` — handler dispatchers
|
|
315
|
-
* that the bridge forwards `(input, env, ctx)` to.
|
|
316
|
-
* - `getRpc()` → `{ method: (args, ctx) => Promise<envelope> }` —
|
|
317
|
-
* pre-wrapped RPC dispatchers that already run the user effect with
|
|
318
|
-
* the right runtime layer and envelope-encode the result.
|
|
319
|
-
*
|
|
320
|
-
* Cloudflare's script-validate step requires standard handler methods
|
|
321
|
-
* (`fetch`/`scheduled`/etc.) to be visible on the class prototype. We
|
|
322
|
-
* declare static stubs there and override them per-instance with
|
|
323
|
-
* closure-bound forwarders that capture `ctx`/`env` from the constructor
|
|
324
|
-
* (prototype-level `this` doesn't survive the proxy + RPC dispatch
|
|
325
|
-
* round-trip in some Cloudflare runtime versions).
|
|
326
|
-
*/
|
|
327
|
-
export const makeWorkerBridge = (WorkerEntrypoint, ExportedHandlerMethods, getDefault, getRpc) => {
|
|
328
|
-
class WorkerBridge extends WorkerEntrypoint {
|
|
329
|
-
constructor(ctx, env) {
|
|
330
|
-
super(ctx, env);
|
|
331
|
-
// Override handler methods per-instance with closure-bound forwarders.
|
|
332
|
-
// We read `this.ctx`/`this.env` at *call time* rather than capturing
|
|
333
|
-
// the constructor args because Cloudflare's runtime appears to
|
|
334
|
-
// populate those instance fields differently depending on whether
|
|
335
|
-
// the entrypoint is invoked via direct fetch or RPC — `super(ctx, env)`
|
|
336
|
-
// alone isn't enough to guarantee they survive into the call.
|
|
337
|
-
const self = this;
|
|
338
|
-
// Cloudflare invokes `WorkerEntrypoint.fetch(request)` with only the
|
|
339
|
-
// primary input on the *parameter list* — `env`/`ctx` live on `this`
|
|
340
|
-
// (and the runtime sometimes passes `(request, undefined, undefined)`
|
|
341
|
-
// anyway for legacy compat). Other handlers, including `scheduled`, may
|
|
342
|
-
// receive the classic `(input, env, ctx)` arguments. The platform's
|
|
343
|
-
// underlying handler dispatch (`handle("fetch")`, `handle("scheduled")`,
|
|
344
|
-
// etc.) follows the plain-export signature `(input, env, context)`, so
|
|
345
|
-
// prefer explicit handler args when Cloudflare provides them and fall
|
|
346
|
-
// back to the WorkerEntrypoint instance fields.
|
|
347
|
-
for (const method of ExportedHandlerMethods) {
|
|
348
|
-
this[method] = async (input, envArg, ctxArg) => {
|
|
349
|
-
const def = await getDefault();
|
|
350
|
-
return def?.[method]?.(input, envArg ?? self.env, ctxArg ?? self.ctx);
|
|
351
|
-
};
|
|
352
|
-
}
|
|
353
|
-
// RPC method dispatch — anything Cloudflare RPC tries to invoke that
|
|
354
|
-
// isn't an own property goes through the dispatcher table built by
|
|
355
|
-
// the platform's exports flow.
|
|
356
|
-
return new Proxy(this, {
|
|
357
|
-
get: (target, prop) => {
|
|
358
|
-
if (typeof prop !== "string")
|
|
359
|
-
return target[prop];
|
|
360
|
-
if (prop in target)
|
|
361
|
-
return target[prop];
|
|
362
|
-
return async (...args) => {
|
|
363
|
-
const rpc = await getRpc();
|
|
364
|
-
const dispatcher = rpc?.[prop];
|
|
365
|
-
if (typeof dispatcher !== "function") {
|
|
366
|
-
throw new Error(`Method "${prop}" not found on worker. ` +
|
|
367
|
-
`Make sure it's returned from the worker's default export.`);
|
|
368
|
-
}
|
|
369
|
-
return dispatcher(args, self.ctx);
|
|
370
|
-
};
|
|
371
|
-
},
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
// Stub prototype methods so Cloudflare's script-validate detects the
|
|
376
|
-
// standard handler set; per-instance overrides above are what actually
|
|
377
|
-
// run.
|
|
378
|
-
for (const method of ExportedHandlerMethods) {
|
|
379
|
-
Object.defineProperty(WorkerBridge.prototype, method, {
|
|
380
|
-
value: function () {
|
|
381
|
-
throw new Error(`Bridge method '${method}' was called before instance setup`);
|
|
382
|
-
},
|
|
383
|
-
writable: true,
|
|
384
|
-
configurable: true,
|
|
385
|
-
});
|
|
386
|
-
}
|
|
387
|
-
return WorkerBridge;
|
|
388
|
-
};
|
|
389
|
-
/**
|
|
390
|
-
* Create a WorkflowBridge class that extends `WorkflowEntrypoint` and
|
|
391
|
-
* delegates the `run(event, step)` call to the Effect-native workflow body
|
|
392
|
-
* registered via `worker.export(...)`.
|
|
393
|
-
*
|
|
394
|
-
* The bridge provides `WorkflowEvent` and `WorkflowStep` as Effect
|
|
395
|
-
* services so the user writes `yield* WorkflowEvent` and `yield* task(...)`
|
|
396
|
-
* instead of receiving callback parameters.
|
|
397
|
-
*/
|
|
398
|
-
export const makeWorkflowBridge = (WorkflowEntrypoint, getExport) => (className) => class WorkflowBridge extends WorkflowEntrypoint {
|
|
399
|
-
fn;
|
|
400
|
-
env;
|
|
401
|
-
constructor(ctx, env) {
|
|
402
|
-
super(ctx, env);
|
|
403
|
-
this.env = env;
|
|
404
|
-
this.fn = getExport(className).then((factory) => Effect.runPromise(factory(env)));
|
|
405
|
-
}
|
|
406
|
-
async run(event, step) {
|
|
407
|
-
const fn = await this.fn;
|
|
408
|
-
return Effect.runPromise(fn(event.payload).pipe(Effect.provideService(WorkflowEventService, wrapWorkflowEvent(event)), Effect.provideService(WorkflowStep, wrapWorkflowStep(step))));
|
|
409
|
-
}
|
|
410
|
-
};
|
|
411
|
-
import { WorkflowEvent as WorkflowEventService, WorkflowStep, } from "./Workflow.js";
|
|
412
|
-
const wrapWorkflowEvent = (event) => ({
|
|
413
|
-
payload: event.payload,
|
|
414
|
-
timestamp: event.timestamp instanceof Date
|
|
415
|
-
? event.timestamp
|
|
416
|
-
: new Date(event.timestamp),
|
|
417
|
-
instanceId: event.instanceId ?? "",
|
|
418
|
-
});
|
|
419
|
-
const wrapWorkflowStep = (step) => ({
|
|
420
|
-
do: (name, effect) => Effect.tryPromise(() => step.do(name, () => Effect.runPromise(effect))),
|
|
421
|
-
sleep: (name, duration) => Effect.tryPromise(() => step.sleep(name, duration)),
|
|
422
|
-
sleepUntil: (name, timestamp) => Effect.tryPromise(() => step.sleepUntil(name, timestamp instanceof Date ? timestamp.toISOString() : timestamp)),
|
|
423
|
-
});
|
|
424
|
-
const encodeStreamErrorMarker = (cause) => {
|
|
425
|
-
const failReason = cause.reasons.find(Cause.isFailReason);
|
|
426
|
-
const error = failReason ? encodeRpcError(failReason.error) : undefined;
|
|
427
|
-
return (JSON.stringify({
|
|
428
|
-
_tag: StreamErrorTag,
|
|
429
|
-
error,
|
|
430
|
-
}) + "\n");
|
|
431
|
-
};
|
|
432
|
-
const appendStreamErrors = (s) => s.pipe(Stream.catchCause((cause) => Stream.succeed(encodeStreamErrorMarker(cause))));
|
|
433
147
|
export const toRpcStream = (stream) => Effect.scoped(Effect.gen(function* () {
|
|
434
148
|
const [head, rest] = yield* Stream.peel(stream, Sink.head());
|
|
435
149
|
if (Option.isSome(head) && head.value instanceof Uint8Array) {
|
|
@@ -458,4 +172,13 @@ export const toRpcStream = (stream) => Effect.scoped(Effect.gen(function* () {
|
|
|
458
172
|
}
|
|
459
173
|
return Effect.die(Cause.squash(cause));
|
|
460
174
|
}));
|
|
175
|
+
const encodeStreamErrorMarker = (cause) => {
|
|
176
|
+
const failReason = cause.reasons.find(Cause.isFailReason);
|
|
177
|
+
const error = failReason ? encodeRpcError(failReason.error) : undefined;
|
|
178
|
+
return (JSON.stringify({
|
|
179
|
+
_tag: StreamErrorTag,
|
|
180
|
+
error,
|
|
181
|
+
}) + "\n");
|
|
182
|
+
};
|
|
183
|
+
const appendStreamErrors = (s) => s.pipe(Stream.catchCause((cause) => Stream.succeed(encodeStreamErrorMarker(cause))));
|
|
461
184
|
//# sourceMappingURL=Rpc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rpc.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Rpc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Rpc.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as Effect from "effect/Effect";
|
|
2
|
+
import type * as Stream from "effect/Stream";
|
|
3
|
+
import type { Rpc } from "../../Rpc.ts";
|
|
4
|
+
export type RpcAsync<Shape> = {
|
|
5
|
+
[K in keyof Shape as K extends "fetch" ? never : K]: Shape[K] extends (...args: infer A) => Effect.Effect<infer T, any, any> ? (...args: A) => Promise<T> : Shape[K] extends (...args: infer A) => Stream.Stream<any, any, any> ? (...args: A) => Promise<ReadableStream<Uint8Array>> : Shape[K] extends Effect.Effect<infer T, any, any> ? Promise<T> : Shape[K] extends Stream.Stream<any, any, any> ? Promise<ReadableStream<Uint8Array>> : Shape[K] extends (...args: infer A) => infer R ? (...args: A) => Promise<Awaited<R>> : Promise<Shape[K]>;
|
|
6
|
+
};
|
|
7
|
+
export declare const toRpcAsync: <W>(stub: any) => RpcAsync<Rpc.Shape<W>> & Service;
|
|
8
|
+
//# sourceMappingURL=RpcAsync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RpcAsync.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/RpcAsync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGxC,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI;KAC3B,CAAC,IAAI,MAAM,KAAK,IAAI,CAAC,SAAS,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CACpE,GAAG,IAAI,EAAE,MAAM,CAAC,KACb,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GACjC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1B,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACjE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,GACnD,KAAK,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAC/C,OAAO,CAAC,CAAC,CAAC,GACV,KAAK,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAC3C,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,GACnC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GAC5C,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,MAAM,GAAG,KAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAqBxD,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { isRpcErrorEnvelope, isRpcStreamEnvelope } from "../Bridge.js";
|
|
2
|
+
export const toRpcAsync = (stub) => new Proxy(stub, {
|
|
3
|
+
get: (target, prop) => {
|
|
4
|
+
// `Service` methods (fetch/connect) and any non-string keys (Symbol.dispose, etc.)
|
|
5
|
+
// pass through to the underlying Cloudflare binding unchanged.
|
|
6
|
+
if (typeof prop !== "string" || prop === "fetch" || prop === "connect") {
|
|
7
|
+
const value = target[prop];
|
|
8
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
9
|
+
}
|
|
10
|
+
return async (...args) => {
|
|
11
|
+
const result = await target[prop](...args);
|
|
12
|
+
if (isRpcErrorEnvelope(result)) {
|
|
13
|
+
throw decodeRpcThrowable(result.error);
|
|
14
|
+
}
|
|
15
|
+
if (isRpcStreamEnvelope(result)) {
|
|
16
|
+
return result.body;
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Reconstruct a throwable from {@link encodeRpcError}'s wire form. Plain
|
|
24
|
+
* `Error` payloads are rebuilt as `Error` instances so `.message`/`.name`/
|
|
25
|
+
* `.stack` survive. Tagged errors (anything with a `_tag`) and primitives
|
|
26
|
+
* are thrown as-is so `try { ... } catch (e) { if (e._tag === ...) }` keeps
|
|
27
|
+
* working.
|
|
28
|
+
*/
|
|
29
|
+
const decodeRpcThrowable = (error) => {
|
|
30
|
+
if (error === null || typeof error !== "object")
|
|
31
|
+
return error;
|
|
32
|
+
const obj = error;
|
|
33
|
+
if ("_tag" in obj)
|
|
34
|
+
return obj;
|
|
35
|
+
if (typeof obj.message === "string" || typeof obj.name === "string") {
|
|
36
|
+
const e = new Error(typeof obj.message === "string" ? obj.message : "");
|
|
37
|
+
if (typeof obj.name === "string")
|
|
38
|
+
e.name = obj.name;
|
|
39
|
+
if (typeof obj.stack === "string")
|
|
40
|
+
e.stack = obj.stack;
|
|
41
|
+
return e;
|
|
42
|
+
}
|
|
43
|
+
return error;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=RpcAsync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RpcAsync.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/RpcAsync.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAkBvE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,IAAS,EAAoC,EAAE,CAC3E,IAAI,KAAK,CAAC,IAAI,EAAE;IACd,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACpB,mFAAmF;QACnF,+DAA+D;QAC/D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvE,MAAM,KAAK,GAAI,MAAc,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,CAAC;QAED,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;YAClC,MAAM,MAAM,GAAG,MAAO,MAAc,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACpD,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,MAAM,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;CACF,CAAQ,CAAC;AAEZ;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAW,EAAE;IACrD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IAC9B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpE,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACpD,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;YAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACvD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|