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
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { NodeServices } from "@effect/platform-node";
|
|
2
|
+
import { Stream } from "effect";
|
|
3
|
+
import * as Cause from "effect/Cause";
|
|
4
|
+
import * as ConfigProvider from "effect/ConfigProvider";
|
|
5
|
+
import * as Context from "effect/Context";
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as Exit from "effect/Exit";
|
|
8
|
+
import { pipe } from "effect/Function";
|
|
9
|
+
import * as Layer from "effect/Layer";
|
|
10
|
+
import * as Logger from "effect/Logger";
|
|
11
|
+
import { MinimumLogLevel } from "effect/References";
|
|
12
|
+
import * as Scope from "effect/Scope";
|
|
13
|
+
import { FetchHttpClient } from "effect/unstable/http";
|
|
14
|
+
import { ExecutionContext } from "../../ExecutionContext.js";
|
|
15
|
+
import { makeEntrypointLayer } from "../../Runtime.js";
|
|
16
|
+
import { Self } from "../../Self.js";
|
|
17
|
+
import { Stack } from "../../Stack.js";
|
|
18
|
+
import { ErrorTag, encodeRpcError, toRpcStream, } from "./Rpc.js";
|
|
19
|
+
import { ExportedHandlerMethods, Worker, WorkerEnvironment, WorkerExecutionContext, } from "./Worker.js";
|
|
20
|
+
import cloudflare_workers from "./cloudflare_workers.js";
|
|
21
|
+
/**
|
|
22
|
+
* Makes the WorkerEntrypoint class and bridges to Effect fetch and RPC calls.
|
|
23
|
+
*/
|
|
24
|
+
export const makeWorkerBridge = (Base, { stack, entrypoint, }) => {
|
|
25
|
+
const { globalContext, exported, shape } = getWorkerExport({
|
|
26
|
+
entrypoint,
|
|
27
|
+
stack,
|
|
28
|
+
exportName: "default",
|
|
29
|
+
});
|
|
30
|
+
const processEvent = (eff, ctx) => {
|
|
31
|
+
const scope = Scope.makeUnsafe();
|
|
32
|
+
return eff
|
|
33
|
+
.pipe(Effect.flatMap(([eff, context]) => Effect.provide(eff, pipe(Layer.succeedContext(context), Layer.provideMerge(Layer.succeedContext(context)), Layer.provideMerge(Layer.succeed(WorkerExecutionContext, ctx)), Layer.provideMerge(Layer.succeed(ExecutionContext, {
|
|
34
|
+
scope,
|
|
35
|
+
cache: {},
|
|
36
|
+
}))))), Effect.provide(Layer.provideMerge(globalContext, Layer.succeed(Scope.Scope, scope))), Effect.runPromiseExit)
|
|
37
|
+
.finally(() => Scope.close(scope, Exit.void).pipe(Effect.runPromise, (promise) => ctx.waitUntil(promise)));
|
|
38
|
+
};
|
|
39
|
+
class WorkerBridge extends Base {
|
|
40
|
+
ctx;
|
|
41
|
+
env;
|
|
42
|
+
constructor(ctx, env) {
|
|
43
|
+
super(ctx, env);
|
|
44
|
+
this.ctx = ctx;
|
|
45
|
+
this.env = env;
|
|
46
|
+
for (const methodName of ExportedHandlerMethods) {
|
|
47
|
+
this[methodName] = async (input) => exported
|
|
48
|
+
.pipe(Effect.map((_default) => _default[methodName]), Effect.map((f) => f(input, this.env, this.ctx)), (eff) => processEvent(eff, this.ctx))
|
|
49
|
+
.then((exit) => exit._tag === "Success"
|
|
50
|
+
? Promise.resolve(exit.value)
|
|
51
|
+
: Promise.reject(Cause.squash(exit.cause)));
|
|
52
|
+
}
|
|
53
|
+
return new Proxy(this, {
|
|
54
|
+
get: (target, prop) => {
|
|
55
|
+
if (typeof prop !== "string")
|
|
56
|
+
return target[prop];
|
|
57
|
+
if (prop in target)
|
|
58
|
+
return target[prop];
|
|
59
|
+
return (...args) => shape
|
|
60
|
+
.pipe(Effect.map((shape) => shape[prop]), Effect.flatMap((dispatcher) => {
|
|
61
|
+
if (typeof dispatcher !== "function") {
|
|
62
|
+
return Effect.die(new Error(`Method "${prop}" not found on worker. ` +
|
|
63
|
+
`Make sure it's returned from the worker's default export.`));
|
|
64
|
+
}
|
|
65
|
+
console.log("dispatcher", dispatcher.toString());
|
|
66
|
+
return Effect.succeed([
|
|
67
|
+
dispatcher(...args),
|
|
68
|
+
Context.empty(),
|
|
69
|
+
]);
|
|
70
|
+
}), (eff) => processEvent(eff, this.ctx))
|
|
71
|
+
.then(handleRpcExit);
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Stub prototype methods so Cloudflare's script-validate detects the
|
|
77
|
+
// standard handler set; per-instance overrides above are what actually
|
|
78
|
+
// run.
|
|
79
|
+
for (const method of ExportedHandlerMethods) {
|
|
80
|
+
Object.defineProperty(WorkerBridge.prototype, method, {
|
|
81
|
+
value: function () {
|
|
82
|
+
throw new Error(`Bridge method '${method}' was called before instance setup`);
|
|
83
|
+
},
|
|
84
|
+
writable: true,
|
|
85
|
+
configurable: true,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return WorkerBridge;
|
|
89
|
+
};
|
|
90
|
+
export const getWorkerExport = ({ entrypoint, stack, exportName, }) => {
|
|
91
|
+
const tag = Self;
|
|
92
|
+
const runtimeContext = tag.pipe(Effect.map((func) => func.RuntimeContext));
|
|
93
|
+
const shape = runtimeContext.pipe(Effect.map((context) => context.shape()));
|
|
94
|
+
const exported = runtimeContext.pipe(Effect.flatMap((context) => context.exports), Effect.flatMap((exports) => Effect.isEffect(exports[exportName])
|
|
95
|
+
? exports[exportName]
|
|
96
|
+
: Effect.succeed(exports[exportName])));
|
|
97
|
+
const layer = makeEntrypointLayer(tag, entrypoint);
|
|
98
|
+
const platform = Layer.mergeAll(NodeServices.layer, FetchHttpClient.layer,
|
|
99
|
+
// TODO(sam): wire this up to telemetry more directly
|
|
100
|
+
Logger.layer([Logger.consolePretty()]));
|
|
101
|
+
const globalContext = Layer.unwrap(cloudflare_workers.pipe(Effect.map(({ env }) => layer.pipe(Layer.provideMerge(Layer.succeed(Stack, {
|
|
102
|
+
name: stack.name,
|
|
103
|
+
stage: stack.stage,
|
|
104
|
+
bindings: {},
|
|
105
|
+
resources: {},
|
|
106
|
+
actions: {},
|
|
107
|
+
})), Layer.provideMerge(platform), Layer.provideMerge(Layer.succeed(ConfigProvider.ConfigProvider, ConfigProvider.orElse(ConfigProvider.fromUnknown({ ALCHEMY_PHASE: "runtime" }), ConfigProvider.fromUnknown(env)))), Layer.provideMerge(Layer.succeed(WorkerEnvironment, env)), Layer.provideMerge(Layer.succeed(MinimumLogLevel, env.DEBUG ? "Debug" : "Info"))))));
|
|
108
|
+
return {
|
|
109
|
+
globalContext,
|
|
110
|
+
exported,
|
|
111
|
+
shape,
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
export const makeRpcProxy = (self, userShape, processEvent) => new Proxy(self, {
|
|
115
|
+
get: (target, prop) => {
|
|
116
|
+
if (typeof prop !== "string")
|
|
117
|
+
return target[prop];
|
|
118
|
+
if (prop in target)
|
|
119
|
+
return target[prop];
|
|
120
|
+
return (...args) => userShape
|
|
121
|
+
.pipe(Effect.map((shape) => shape[prop]), Effect.flatMap((dispatcher) => {
|
|
122
|
+
if (typeof dispatcher !== "function") {
|
|
123
|
+
return Effect.die(new Error(`Method "${prop}" not found on worker. ` +
|
|
124
|
+
`Make sure it's returned from the worker's default export.`));
|
|
125
|
+
}
|
|
126
|
+
console.log("dispatcher", dispatcher.toString());
|
|
127
|
+
return dispatcher(...args);
|
|
128
|
+
}), processEvent)
|
|
129
|
+
.then(handleRpcExit);
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
export const handleRpcExit = async (exit) => {
|
|
133
|
+
if (exit._tag === "Success") {
|
|
134
|
+
if (Stream.isStream(exit.value)) {
|
|
135
|
+
return await Effect.runPromise(toRpcStream(exit.value));
|
|
136
|
+
}
|
|
137
|
+
return exit.value;
|
|
138
|
+
}
|
|
139
|
+
const failReason = exit.cause.reasons.find(Cause.isFailReason);
|
|
140
|
+
if (failReason) {
|
|
141
|
+
return {
|
|
142
|
+
_tag: ErrorTag,
|
|
143
|
+
error: encodeRpcError(failReason.error),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
const dieReason = exit.cause.reasons.find(Cause.isDieReason);
|
|
147
|
+
throw (dieReason?.defect ?? new Error("RPC method failed with an unexpected cause"));
|
|
148
|
+
};
|
|
149
|
+
//# sourceMappingURL=WorkerBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerBridge.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerBundle.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBundle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkerBundle.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBundle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,KAAK,EACD;QACE,IAAI,EAAE,UAAU,CAAC;KAClB,GACD;QACE,IAAI,EAAE,QAAQ,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAAC,CAAC;KAC/D,CAAC;IACN,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CAC/C;AAED,eAAO,MAAM,YAAY;;;4CAoGvB,CAAC;AAEH,eAAO,MAAM,sBAAsB,GACjC,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAAC,EAC7D,OAAO;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,MAa9B,YAAY,MAAM,WAuC3B,CAAC"}
|
|
@@ -7,7 +7,6 @@ import { fileURLToPath } from "node:url";
|
|
|
7
7
|
import Sonda from "sonda/rolldown";
|
|
8
8
|
import * as Bundle from "../../Bundle/Bundle.js";
|
|
9
9
|
import { findCwdForBundle } from "../../Bundle/TempRoot.js";
|
|
10
|
-
import { Self } from "../../Self.js";
|
|
11
10
|
import { isDurableObjectExport, } from "./DurableObjectNamespace.js";
|
|
12
11
|
import { isWorkflowExport } from "./Workflow.js";
|
|
13
12
|
export const WorkerBundle = Effect.gen(function* () {
|
|
@@ -18,6 +17,12 @@ export const WorkerBundle = Effect.gen(function* () {
|
|
|
18
17
|
const realMain = yield* sanitizeMain(options.main);
|
|
19
18
|
const inputOptions = {
|
|
20
19
|
input: realMain,
|
|
20
|
+
// Forever-devtool native modules that vite/chokidar reference behind
|
|
21
|
+
// runtime guards. Rolldown resolves before tree-shaking, so the dead
|
|
22
|
+
// `require('../pkg')` (lightningcss < 1.32) and `require('fsevents')`
|
|
23
|
+
// (darwin-only) trip [UNRESOLVED_IMPORT] before DCE can prune them.
|
|
24
|
+
// See rolldown/tsdown#212.
|
|
25
|
+
external: ["lightningcss", "fsevents"],
|
|
21
26
|
cwd: yield* findCwdForBundle(realMain).pipe(Effect.mapError((cause) => new Bundle.BundleError({
|
|
22
27
|
message: `Failed to find cwd for bundle: ${realMain}`,
|
|
23
28
|
cause,
|
|
@@ -81,106 +86,35 @@ export const makeEffectVirtualEntry = (exports, stack) => {
|
|
|
81
86
|
const hasDoClasses = doClasses.length > 0;
|
|
82
87
|
const hasWfClasses = wfClasses.length > 0;
|
|
83
88
|
return (importPath) => `
|
|
84
|
-
import * as Config from "effect/Config";
|
|
85
|
-
import * as ConfigProvider from "effect/ConfigProvider";
|
|
86
|
-
import * as Console from "effect/Console";
|
|
87
89
|
import * as Effect from "effect/Effect";
|
|
88
|
-
import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
|
|
89
|
-
import * as Layer from "effect/Layer";
|
|
90
|
-
import * as Logger from "effect/Logger";
|
|
91
|
-
import * as Context from "effect/Context";
|
|
92
|
-
import * as Stream from "effect/Stream";
|
|
93
90
|
|
|
94
91
|
import { env, DurableObject, WorkerEntrypoint${hasWfClasses ? ", WorkflowEntrypoint" : ""} } from "cloudflare:workers";
|
|
95
|
-
import {
|
|
96
|
-
import * as NodeServices from "@effect/platform-node/NodeServices";
|
|
97
|
-
import { Stack } from "alchemy/Stack";
|
|
98
|
-
import { WorkerEnvironment, makeDurableObjectBridge, makeWorkerBridge${hasWfClasses ? ", makeWorkflowBridge" : ""}, ExportedHandlerMethods } from "alchemy/Cloudflare";
|
|
92
|
+
import { makeDurableObjectBridge, makeWorkerBridge${hasWfClasses ? ", makeWorkflowBridge" : ""} } from "alchemy/Cloudflare";
|
|
99
93
|
import { makeEntrypointLayer } from "alchemy/Runtime";
|
|
100
94
|
|
|
101
|
-
import entrypoint from
|
|
102
|
-
|
|
103
|
-
const tag = Context.Service("${Self.key}")
|
|
104
|
-
const layer = makeEntrypointLayer(tag, entrypoint);
|
|
105
|
-
|
|
106
|
-
const platform = Layer.mergeAll(
|
|
107
|
-
NodeServices.layer,
|
|
108
|
-
FetchHttpClient.layer,
|
|
109
|
-
// TODO(sam): wire this up to telemetry more directly
|
|
110
|
-
Logger.layer([Logger.consolePretty()]),
|
|
111
|
-
);
|
|
112
|
-
|
|
113
|
-
const stack = Layer.succeed(
|
|
114
|
-
Stack,
|
|
115
|
-
{
|
|
116
|
-
name: "${stack.name}",
|
|
117
|
-
stage: "${stack.stage}",
|
|
118
|
-
bindings: {},
|
|
119
|
-
resources: {}
|
|
120
|
-
}
|
|
121
|
-
);
|
|
95
|
+
import entrypoint from ${JSON.stringify(importPath)};
|
|
122
96
|
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
Layer.succeed(
|
|
131
|
-
ConfigProvider.ConfigProvider,
|
|
132
|
-
ConfigProvider.orElse(
|
|
133
|
-
ConfigProvider.fromUnknown({ ALCHEMY_PHASE: "runtime" }),
|
|
134
|
-
ConfigProvider.fromUnknown(env),
|
|
135
|
-
),
|
|
136
|
-
),
|
|
137
|
-
),
|
|
138
|
-
Layer.provideMerge(Layer.succeed(WorkerEnvironment, env)),
|
|
139
|
-
Layer.provideMerge(
|
|
140
|
-
Layer.succeed(MinimumLogLevel, env.DEBUG ? "Debug" : "Info"),
|
|
141
|
-
),
|
|
142
|
-
),
|
|
143
|
-
),
|
|
144
|
-
Effect.scoped,
|
|
145
|
-
);
|
|
146
|
-
|
|
147
|
-
// TODO(sam): we could kick this off during module init, but any I/O will break deploy
|
|
148
|
-
// let exportsPromise = Effect.runPromise(exportsEffect);
|
|
149
|
-
|
|
150
|
-
// for now, we delay initializing the worker until the first request
|
|
151
|
-
let exportsPromise;
|
|
152
|
-
|
|
153
|
-
// don't initialize the workerEffect during module init because Cloudflare does not allow I/O during module init
|
|
154
|
-
// we cache it synchronously (??=) to guarnatee only one initialization ever happens
|
|
155
|
-
const getExports = () => (exportsPromise ??= Effect.runPromise(exportsEffect))
|
|
156
|
-
const getExport = (name) => getExports().then(exports => exports[name]?.make)
|
|
157
|
-
const getDefault = () => getExports().then(exports => exports.default)
|
|
158
|
-
const getRpc = () => getExports().then(exports => exports.__rpc__ ?? {})
|
|
97
|
+
const meta = {
|
|
98
|
+
entrypoint,
|
|
99
|
+
stack: {
|
|
100
|
+
name: ${JSON.stringify(stack.name)},
|
|
101
|
+
stage: ${JSON.stringify(stack.stage)},
|
|
102
|
+
},
|
|
103
|
+
};
|
|
159
104
|
|
|
160
|
-
|
|
161
|
-
// subclass so Cloudflare service bindings can dispatch both the standard
|
|
162
|
-
// handler methods (fetch, scheduled, …) and any user-defined RPC methods.
|
|
163
|
-
// RPC method results are wire-encoded by \`runtimeContext.exports\`;
|
|
164
|
-
// consumers unwrap them with \`Cloudflare.toPromiseApi(env.X)\` (Promise
|
|
165
|
-
// API) or \`bindWorker(WorkerClass)\` (Effect API).
|
|
166
|
-
export default makeWorkerBridge(
|
|
167
|
-
WorkerEntrypoint,
|
|
168
|
-
ExportedHandlerMethods,
|
|
169
|
-
getDefault,
|
|
170
|
-
getRpc,
|
|
171
|
-
);
|
|
105
|
+
export default makeWorkerBridge(WorkerEntrypoint, meta);
|
|
172
106
|
|
|
173
107
|
// export class proxy stubs for Durable Objects and Workflows
|
|
174
108
|
${[
|
|
175
109
|
...(hasDoClasses
|
|
176
110
|
? [
|
|
177
|
-
"const DurableObjectBridge = makeDurableObjectBridge(DurableObject,
|
|
111
|
+
"const DurableObjectBridge = makeDurableObjectBridge(DurableObject, meta);",
|
|
178
112
|
...doClasses.map((id) => `export class ${id} extends DurableObjectBridge("${id}") {}`),
|
|
179
113
|
]
|
|
180
114
|
: []),
|
|
181
115
|
...(hasWfClasses
|
|
182
116
|
? [
|
|
183
|
-
"const WorkflowBridgeFn = makeWorkflowBridge(WorkflowEntrypoint,
|
|
117
|
+
"const WorkflowBridgeFn = makeWorkflowBridge(WorkflowEntrypoint, meta);",
|
|
184
118
|
...wfClasses.map((id) => `export class ${id} extends WorkflowBridgeFn("${id}") {}`),
|
|
185
119
|
]
|
|
186
120
|
: []),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerBundle.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBundle.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,6CAA6C,CAAC;AAC7E,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"WorkerBundle.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import type * as Serverless from "../../Serverless/index.ts";
|
|
3
|
+
export interface WorkerRuntimeContext extends Serverless.FunctionContext {
|
|
4
|
+
export(name: string, value: any): Effect.Effect<void>;
|
|
5
|
+
shape: () => Record<string, any>;
|
|
6
|
+
}
|
|
7
|
+
export declare const makeWorkerRuntimeContext: (id: string) => WorkerRuntimeContext;
|
|
8
|
+
//# sourceMappingURL=WorkerRuntimeContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerRuntimeContext.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerRuntimeContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,KAAK,UAAU,MAAM,2BAA2B,CAAC;AAS7D,MAAM,WAAW,oBAAqB,SAAQ,UAAU,CAAC,eAAe;IACtE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,KAAK,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,wBAAwB,GAAI,IAAI,MAAM,KAAG,oBA+IrD,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Option from "effect/Option";
|
|
3
|
+
import * as Redacted from "effect/Redacted";
|
|
4
|
+
import * as Output from "../../Output.js";
|
|
5
|
+
import { makeRequestHandler } from "./HttpServer.js";
|
|
6
|
+
import { ExportedHandlerMethods, WorkerEnvironment, WorkerTypeId, } from "./Worker.js";
|
|
7
|
+
export const makeWorkerRuntimeContext = (id) => {
|
|
8
|
+
const listeners = [];
|
|
9
|
+
const exports = {};
|
|
10
|
+
const env = {};
|
|
11
|
+
let userShape;
|
|
12
|
+
const ctx = {
|
|
13
|
+
Type: WorkerTypeId,
|
|
14
|
+
id,
|
|
15
|
+
env,
|
|
16
|
+
shape: () => userShape,
|
|
17
|
+
get: (key) => Effect.serviceOption(WorkerEnvironment).pipe(Effect.map(Option.getOrUndefined), Effect.flatMap((env) => env
|
|
18
|
+
? Effect.succeed(env[key])
|
|
19
|
+
: Effect.die("WorkerEnvironment not found")), Effect.flatMap((value) => value
|
|
20
|
+
? Effect.succeed(value)
|
|
21
|
+
: Effect.die(`Environment variable '${key}' not found`)), Effect.map((json) => {
|
|
22
|
+
try {
|
|
23
|
+
const value = JSON.parse(json);
|
|
24
|
+
// The `set` path serializes Redacted values as
|
|
25
|
+
// `{_tag: "Redacted", value: ...}`. After JSON.parse the
|
|
26
|
+
// result is a plain object — `Redacted.isRedacted` would
|
|
27
|
+
// always return `false` on it — so detect the marker shape
|
|
28
|
+
// and rebuild the Redacted wrapper. Plain values pass
|
|
29
|
+
// through unchanged.
|
|
30
|
+
if (value !== null &&
|
|
31
|
+
typeof value === "object" &&
|
|
32
|
+
value._tag === "Redacted" &&
|
|
33
|
+
"value" in value) {
|
|
34
|
+
return Redacted.make(value.value);
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return json;
|
|
40
|
+
}
|
|
41
|
+
})),
|
|
42
|
+
set: (id, output) => Effect.sync(() => {
|
|
43
|
+
const key = id.replaceAll(/[^a-zA-Z0-9]/g, "_");
|
|
44
|
+
// Preserve `Redacted`-ness across the Output → env → Cloudflare
|
|
45
|
+
// binding boundary so the put-worker loop can deploy secrets via
|
|
46
|
+
// `secret_text` instead of leaking them as `plain_text`. The JSON
|
|
47
|
+
// payload still carries the `{_tag: "Redacted", …}` marker so the
|
|
48
|
+
// runtime `get` accessor can rebuild the wrapper after Cloudflare
|
|
49
|
+
// hands the binding back as a plain string.
|
|
50
|
+
env[key] = output.pipe(Output.map((value) => Redacted.isRedacted(value)
|
|
51
|
+
? Redacted.make(JSON.stringify({
|
|
52
|
+
_tag: "Redacted",
|
|
53
|
+
value: Redacted.value(value),
|
|
54
|
+
}))
|
|
55
|
+
: JSON.stringify(value)));
|
|
56
|
+
return key;
|
|
57
|
+
}),
|
|
58
|
+
serve: (handler, options) => {
|
|
59
|
+
// Capture the user's full default-export shape so `exports` can
|
|
60
|
+
// expose any non-handler methods on it as RPC methods on the
|
|
61
|
+
// deployed `WorkerEntrypoint` subclass — see `__rpc__` below.
|
|
62
|
+
if (options?.shape)
|
|
63
|
+
userShape = options.shape;
|
|
64
|
+
return ctx.listen(makeRequestHandler(handler));
|
|
65
|
+
},
|
|
66
|
+
listen: ((handler) => Effect.sync(() => Effect.isEffect(handler)
|
|
67
|
+
? listeners.push(handler)
|
|
68
|
+
: listeners.push(Effect.succeed(handler)))),
|
|
69
|
+
export: (name, value) => Effect.sync(() => {
|
|
70
|
+
exports[name] = value;
|
|
71
|
+
}),
|
|
72
|
+
exports: Effect.gen(function* () {
|
|
73
|
+
const handlers = yield* Effect.all(listeners, {
|
|
74
|
+
concurrency: "unbounded",
|
|
75
|
+
});
|
|
76
|
+
const services = yield* Effect.context();
|
|
77
|
+
const dispatch = (type) => (request, env, context) => {
|
|
78
|
+
const event = {
|
|
79
|
+
kind: "Cloudflare.Workers.WorkerEvent",
|
|
80
|
+
type,
|
|
81
|
+
input: request,
|
|
82
|
+
env,
|
|
83
|
+
context,
|
|
84
|
+
};
|
|
85
|
+
for (const handler of handlers) {
|
|
86
|
+
const eff = handler(event);
|
|
87
|
+
if (Effect.isEffect(eff)) {
|
|
88
|
+
return [eff, services];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return [
|
|
92
|
+
Effect.die(new Error(`No event handler found for event type '${type}'`)),
|
|
93
|
+
services,
|
|
94
|
+
];
|
|
95
|
+
};
|
|
96
|
+
// RPC method dispatchers — one per non-handler method on the user's
|
|
97
|
+
// shape. Each dispatcher is invoked by the WorkerEntrypoint bridge
|
|
98
|
+
// as `dispatcher(args, ctx)`: `args` are the user-facing call args,
|
|
99
|
+
// `ctx` is the `this.ctx` that Cloudflare hands the bridge per RPC
|
|
100
|
+
// request. The dispatcher runs the user effect with the same runtime
|
|
101
|
+
// layer the fetch path uses, then envelope-encodes the result so
|
|
102
|
+
// `Effect.fail` round-trips as `RpcErrorEnvelope` and `Stream` as
|
|
103
|
+
// `RpcStreamEnvelope` (consumers wrap the binding with
|
|
104
|
+
// `toPromiseApi`/`bindWorker` to decode).
|
|
105
|
+
return {
|
|
106
|
+
...exports,
|
|
107
|
+
default: Object.fromEntries(ExportedHandlerMethods.map((method) => [method, dispatch(method)])),
|
|
108
|
+
};
|
|
109
|
+
}),
|
|
110
|
+
};
|
|
111
|
+
return ctx;
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=WorkerRuntimeContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerRuntimeContext.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerRuntimeContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { type WorkflowImpl } from "./Workflow.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Create a WorkflowBridge class that extends `WorkflowEntrypoint` and
|
|
5
|
+
* delegates the `run(event, step)` call to the Effect-native workflow body
|
|
6
|
+
* registered via `worker.export(...)`.
|
|
7
|
+
*
|
|
8
|
+
* The bridge provides `WorkflowEvent` and `WorkflowStep` as Effect
|
|
9
|
+
* services so the user writes `yield* WorkflowEvent` and `yield* task(...)`
|
|
10
|
+
* instead of receiving callback parameters.
|
|
11
|
+
*/
|
|
12
|
+
export declare const makeWorkflowBridge: (WorkflowEntrypoint: abstract new (ctx: unknown, env: unknown) => {
|
|
13
|
+
run(event: any, step: any): Promise<unknown>;
|
|
14
|
+
}, { entrypoint, stack, }: {
|
|
15
|
+
entrypoint: Effect.Effect<Record<string, any>>;
|
|
16
|
+
stack: {
|
|
17
|
+
name: string;
|
|
18
|
+
stage: string;
|
|
19
|
+
};
|
|
20
|
+
}) => (className: string) => {
|
|
21
|
+
new (ctx: unknown, env: unknown): {
|
|
22
|
+
readonly fn: Promise<WorkflowImpl<unknown, unknown>>;
|
|
23
|
+
run(event: any, step: any): Promise<unknown>;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=WorkflowBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowBridge.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkflowBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,eAAe,CAAC;AAGvB;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAE3B,oBAAoB,QAAQ,MAC1B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,OAAO,KACT;IAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,EACrD,wBAGG;IACD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC,MAEF,WAAW,MAAM;cAIG,OAAO,OAAO,OAAO;qBAFzB,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;mBAkBnC,GAAG,QAAQ,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;;CAYnD,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { WorkflowEvent as WorkflowEventService, WorkflowStep, } from "./Workflow.js";
|
|
3
|
+
import { getWorkerExport } from "./WorkerBridge.js";
|
|
4
|
+
/**
|
|
5
|
+
* Create a WorkflowBridge class that extends `WorkflowEntrypoint` and
|
|
6
|
+
* delegates the `run(event, step)` call to the Effect-native workflow body
|
|
7
|
+
* registered via `worker.export(...)`.
|
|
8
|
+
*
|
|
9
|
+
* The bridge provides `WorkflowEvent` and `WorkflowStep` as Effect
|
|
10
|
+
* services so the user writes `yield* WorkflowEvent` and `yield* task(...)`
|
|
11
|
+
* instead of receiving callback parameters.
|
|
12
|
+
*/
|
|
13
|
+
export const makeWorkflowBridge = (WorkflowEntrypoint, { entrypoint, stack, }) => (className) => class WorkflowBridge extends WorkflowEntrypoint {
|
|
14
|
+
fn;
|
|
15
|
+
constructor(ctx, env) {
|
|
16
|
+
super(ctx, env);
|
|
17
|
+
const { globalContext, exported } = getWorkerExport({
|
|
18
|
+
entrypoint,
|
|
19
|
+
stack,
|
|
20
|
+
exportName: className,
|
|
21
|
+
});
|
|
22
|
+
this.fn = exported.pipe(Effect.flatMap((wf) => wf.make(env)), Effect.provide(globalContext), Effect.runPromise);
|
|
23
|
+
}
|
|
24
|
+
async run(event, step) {
|
|
25
|
+
const fn = await this.fn;
|
|
26
|
+
return Effect.runPromise(fn(event.payload).pipe(Effect.provideService(WorkflowEventService, wrapWorkflowEvent(event)), Effect.provideService(WorkflowStep, wrapWorkflowStep(step))));
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const wrapWorkflowEvent = (event) => ({
|
|
30
|
+
payload: event.payload,
|
|
31
|
+
timestamp: event.timestamp instanceof Date
|
|
32
|
+
? event.timestamp
|
|
33
|
+
: new Date(event.timestamp),
|
|
34
|
+
instanceId: event.instanceId ?? "",
|
|
35
|
+
});
|
|
36
|
+
const wrapWorkflowStep = (step) => ({
|
|
37
|
+
do: (name, effect) => Effect.tryPromise(() => step.do(name, () => Effect.runPromise(effect))),
|
|
38
|
+
sleep: (name, duration) => Effect.tryPromise(() => step.sleep(name, duration)),
|
|
39
|
+
sleepUntil: (name, timestamp) => Effect.tryPromise(() => step.sleepUntil(name, timestamp instanceof Date ? timestamp.toISOString() : timestamp)),
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=WorkflowBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowBridge.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkflowBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,aAAa,IAAI,oBAAoB,EAGrC,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAC7B,CACE,kBAGqD,EACrD,EACE,UAAU,EACV,KAAK,GAIN,EACD,EAAE,CACJ,CAAC,SAAiB,EAAE,EAAE,CACpB,MAAM,cAAe,SAAQ,kBAAkB;IACpC,EAAE,CAA0C;IAErD,YAAY,GAAY,EAAE,GAAY;QACpC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEhB,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAiB;YAClE,UAAU;YACV,KAAK;YACL,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CACrB,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACpC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAC7B,MAAM,CAAC,UAAU,CACyB,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAU,EAAE,IAAS;QAC7B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,UAAU,CACtB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CACpB,MAAM,CAAC,cAAc,CACnB,oBAAoB,EACpB,iBAAiB,CAAC,KAAK,CAAC,CACzB,EACD,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAClC,CAC5B,CAAC;IACJ,CAAC;CACF,CAAC;AAEN,MAAM,iBAAiB,GAAG,CACxB,KAAU,EACiD,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,KAAK,CAAC,OAAO;IACtB,SAAS,EACP,KAAK,CAAC,SAAS,YAAY,IAAI;QAC7B,CAAC,CAAC,KAAK,CAAC,SAAS;QACjB,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC/B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;CACnC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,IAAS,EAA2B,EAAE,CAAC,CAAC;IAChE,EAAE,EAAE,CAAI,IAAY,EAAE,MAAwB,EAAoB,EAAE,CAClE,MAAM,CAAC,UAAU,CACf,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAe,CACnE;IACH,KAAK,EAAE,CAAC,IAAY,EAAE,QAAyB,EAAuB,EAAE,CACtE,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrD,UAAU,EAAE,CAAC,IAAY,EAAE,SAAwB,EAAuB,EAAE,CAC1E,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CACrB,IAAI,CAAC,UAAU,CACb,IAAI,EACJ,SAAS,YAAY,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAChE,CACF;CACJ,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from "./Assets.ts";
|
|
2
2
|
export * from "./ConfigProvider.ts";
|
|
3
3
|
export * from "./CronEventSource.ts";
|
|
4
|
+
export * from "./DurableObjectBridge.ts";
|
|
4
5
|
export * from "./DurableObjectNamespace.ts";
|
|
5
6
|
export * from "./DurableObjectState.ts";
|
|
6
7
|
export * from "./DurableObjectStorage.ts";
|
|
@@ -14,5 +15,8 @@ export * from "./Rpc.ts";
|
|
|
14
15
|
export * from "./ScheduledEvents.ts";
|
|
15
16
|
export * from "./WebSocket.ts";
|
|
16
17
|
export * from "./Worker.ts";
|
|
18
|
+
export * from "./WorkerBinding.ts";
|
|
19
|
+
export * from "./WorkerBridge.ts";
|
|
17
20
|
export * from "./Workflow.ts";
|
|
21
|
+
export * from "./WorkflowBridge.ts";
|
|
18
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from "./Assets.js";
|
|
2
2
|
export * from "./ConfigProvider.js";
|
|
3
3
|
export * from "./CronEventSource.js";
|
|
4
|
+
export * from "./DurableObjectBridge.js";
|
|
4
5
|
export * from "./DurableObjectNamespace.js";
|
|
5
6
|
export * from "./DurableObjectState.js";
|
|
6
7
|
export * from "./DurableObjectStorage.js";
|
|
@@ -14,5 +15,8 @@ export * from "./Rpc.js";
|
|
|
14
15
|
export * from "./ScheduledEvents.js";
|
|
15
16
|
export * from "./WebSocket.js";
|
|
16
17
|
export * from "./Worker.js";
|
|
18
|
+
export * from "./WorkerBinding.js";
|
|
19
|
+
export * from "./WorkerBridge.js";
|
|
17
20
|
export * from "./Workflow.js";
|
|
21
|
+
export * from "./WorkflowBridge.js";
|
|
18
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
export * from "./ApiToken/index.ts";
|
|
2
|
-
export * from "./Artifacts/index.ts";
|
|
3
1
|
export * from "./AiGateway/index.ts";
|
|
4
2
|
export * from "./AnalyticsEngine/index.ts";
|
|
3
|
+
export * from "./ApiToken/index.ts";
|
|
4
|
+
export * from "./Artifacts/index.ts";
|
|
5
5
|
export * from "./CloudflareEnvironment.ts";
|
|
6
6
|
export * from "./Container/index.ts";
|
|
7
7
|
export * from "./D1/index.ts";
|
|
8
8
|
export * from "./EdgeSession.ts";
|
|
9
|
+
export * from "./Fetcher.ts";
|
|
9
10
|
export * from "./Email/index.ts";
|
|
10
11
|
export * from "./Hyperdrive/index.ts";
|
|
11
12
|
export * from "./Images/index.ts";
|
|
@@ -19,4 +20,5 @@ export * from "./Tunnel/index.ts";
|
|
|
19
20
|
export * from "./VpcService/index.ts";
|
|
20
21
|
export * from "./Website/index.ts";
|
|
21
22
|
export * from "./Workers/index.ts";
|
|
23
|
+
export * from "./Workers/RpcAsync.ts";
|
|
22
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
|