diff --git a/src/cloudflare/internal/workers.d.ts b/src/cloudflare/internal/workers.d.ts index 2cac08728dc..e3cccf1d3bc 100644 --- a/src/cloudflare/internal/workers.d.ts +++ b/src/cloudflare/internal/workers.d.ts @@ -12,7 +12,7 @@ export class WorkerEntrypoint { public env: unknown; } -export class Workflow { +export class WorkflowEntrypoint { public constructor(ctx: unknown, env: unknown); public ctx: unknown; diff --git a/src/cloudflare/workers.ts b/src/cloudflare/workers.ts index 4956c4a7840..b13c96e1ecf 100644 --- a/src/cloudflare/workers.ts +++ b/src/cloudflare/workers.ts @@ -11,4 +11,4 @@ export const WorkerEntrypoint = entrypoints.WorkerEntrypoint; export const DurableObject = entrypoints.DurableObject; export const RpcStub = entrypoints.RpcStub; export const RpcTarget = entrypoints.RpcTarget; -export const Workflow = entrypoints.Workflow; +export const WorkflowEntrypoint = entrypoints.WorkflowEntrypoint; diff --git a/src/node/internal/workers.d.ts b/src/node/internal/workers.d.ts index 6c2541a07cb..496f32f2837 100644 --- a/src/node/internal/workers.d.ts +++ b/src/node/internal/workers.d.ts @@ -1,6 +1,6 @@ declare namespace _default { class WorkerEntrypoint {} - class Workflow {} + class WorkflowEntrypoint {} class DurableObject {} class RpcPromise {} class RpcProperty {} diff --git a/src/workerd/api/worker-rpc.c++ b/src/workerd/api/worker-rpc.c++ index 9d3f9311b5b..b9a41ea256d 100644 --- a/src/workerd/api/worker-rpc.c++ +++ b/src/workerd/api/worker-rpc.c++ @@ -1829,7 +1829,7 @@ jsg::Ref DurableObjectBase::constructor( return jsg::alloc(); } -jsg::Ref Workflow::constructor(const v8::FunctionCallbackInfo& args, +jsg::Ref WorkflowEntrypoint::constructor(const v8::FunctionCallbackInfo& args, jsg::Ref ctx, jsg::JsObject env) { // HACK: We take `FunctionCallbackInfo` mostly so that we can set properties directly on @@ -1840,7 +1840,7 @@ jsg::Ref Workflow::constructor(const v8::FunctionCallbackInfo(); + return jsg::alloc(); } }; // namespace workerd::api diff --git a/src/workerd/api/worker-rpc.h b/src/workerd/api/worker-rpc.h index fd0749cdee1..0a9f1c666fb 100644 --- a/src/workerd/api/worker-rpc.h +++ b/src/workerd/api/worker-rpc.h @@ -497,23 +497,23 @@ class DurableObjectBase: public jsg::Object { // When the worker's top-level module exports a class that extends this class, it means that it // is a Workflow. // -// import {Workflow} from "cloudflare:workers"; -// export class MyWorkflow extends Workflow { +// import { WorkflowEntrypoint } from "cloudflare:workers"; +// export class MyWorkflow extends WorkflowEntrypoint { // async run(batch, fns) { ... } // } // // `env` and `ctx` are automatically available as `this.env` and `this.ctx`, without the need to // define a constructor. -class Workflow: public jsg::Object { +class WorkflowEntrypoint: public jsg::Object { public: static jsg::Ref constructor(const v8::FunctionCallbackInfo& args, jsg::Ref ctx, jsg::JsObject env); - JSG_RESOURCE_TYPE(Workflow) {} + JSG_RESOURCE_TYPE(WorkflowEntrypoint) {} }; -// The "cloudflare:workers" module, which exposes the WorkerEntrypoint and DurableObject types +// The "cloudflare:workers" module, which exposes the WorkerEntrypoint, WorkflowEntrypoint and DurableObject types // for extending. class EntrypointsModule: public jsg::Object { public: @@ -522,7 +522,7 @@ class EntrypointsModule: public jsg::Object { JSG_RESOURCE_TYPE(EntrypointsModule) { JSG_NESTED_TYPE(WorkerEntrypoint); - JSG_NESTED_TYPE(Workflow); + JSG_NESTED_TYPE(WorkflowEntrypoint); JSG_NESTED_TYPE_NAMED(DurableObjectBase, DurableObject); JSG_NESTED_TYPE_NAMED(JsRpcPromise, RpcPromise); JSG_NESTED_TYPE_NAMED(JsRpcProperty, RpcProperty); @@ -533,7 +533,7 @@ class EntrypointsModule: public jsg::Object { #define EW_WORKER_RPC_ISOLATE_TYPES \ api::JsRpcPromise, api::JsRpcProperty, api::JsRpcStub, api::JsRpcTarget, api::WorkerEntrypoint, \ - api::Workflow, api::DurableObjectBase, api::EntrypointsModule + api::WorkflowEntrypoint, api::DurableObjectBase, api::EntrypointsModule template void registerRpcModules(Registry& registry, CompatibilityFlags::Reader flags) { diff --git a/src/workerd/io/worker.c++ b/src/workerd/io/worker.c++ index 214ba67098c..a676b5d68f5 100644 --- a/src/workerd/io/worker.c++ +++ b/src/workerd/io/worker.c++ @@ -1681,7 +1681,7 @@ Worker::Worker(kj::Own scriptParam, } else if (handle == entrypointClasses.workerEntrypoint) { impl->statelessClasses.insert(kj::mv(handler.name), kj::mv(cls)); return; - } else if (handle == entrypointClasses.workflow) { + } else if (handle == entrypointClasses.workflowEntrypoint) { if (features.getWorkerdExperimental()) { impl->statelessClasses.insert(kj::mv(handler.name), kj::mv(cls)); } diff --git a/src/workerd/server/workerd-api.c++ b/src/workerd/server/workerd-api.c++ index 2bf145bdf38..2db3728035c 100644 --- a/src/workerd/server/workerd-api.c++ +++ b/src/workerd/server/workerd-api.c++ @@ -247,7 +247,7 @@ WorkerdApi::EntrypointClasses WorkerdApi::getEntrypointClasses(jsg::Lock& lock) return { .workerEntrypoint = typedLock.getConstructor(lock.v8Context()), .durableObject = typedLock.getConstructor(lock.v8Context()), - .workflow = typedLock.getConstructor(lock.v8Context()), + .workflowEntrypoint = typedLock.getConstructor(lock.v8Context()), }; } const jsg::TypeHandler& WorkerdApi::getErrorInterfaceTypeHandler( diff --git a/types/defines/rpc.d.ts b/types/defines/rpc.d.ts index 9049970ef85..f7695ed4e1d 100644 --- a/types/defines/rpc.d.ts +++ b/types/defines/rpc.d.ts @@ -10,7 +10,7 @@ declare namespace Rpc { export const __RPC_TARGET_BRAND: "__RPC_TARGET_BRAND"; export const __WORKER_ENTRYPOINT_BRAND: "__WORKER_ENTRYPOINT_BRAND"; export const __DURABLE_OBJECT_BRAND: "__DURABLE_OBJECT_BRAND"; - export const __WORKFLOW_BRAND: "__WORKFLOW_BRAND"; + export const __WORKFLOW_ENTRYPOINT_BRAND: "__WORKFLOW_ENTRYPOINT_BRAND"; export interface RpcTargetBranded { [__RPC_TARGET_BRAND]: never; } @@ -20,13 +20,13 @@ declare namespace Rpc { export interface DurableObjectBranded { [__DURABLE_OBJECT_BRAND]: never; } - export interface WorkflowBranded { - [__WORKFLOW_BRAND]: never; + export interface WorkflowEntrypointBranded { + [__WORKFLOW_ENTRYPOINT_BRAND]: never; } export type EntrypointBranded = | WorkerEntrypointBranded | DurableObjectBranded - | WorkflowBranded; + | WorkflowEntrypointBranded; // Types that can be used through `Stub`s export type Stubable = RpcTargetBranded | ((...args: any[]) => any); @@ -236,12 +236,12 @@ declare module "cloudflare:workers" { ) => void | Promise; }; - export abstract class Workflow< + export abstract class WorkflowEntrypoint< Env = unknown, T extends Rpc.Serializable | unknown = unknown, - > implements Rpc.WorkflowBranded + > implements Rpc.WorkflowEntrypointBranded { - [Rpc.__WORKFLOW_BRAND]: never; + [Rpc.__WORKFLOW_ENTRYPOINT_BRAND]: never; protected ctx: ExecutionContext; protected env: Env;