Skip to content

VersionMetadata

Source: src/Cloudflare/Workers/VersionMetadata.ts

A Cloudflare Workers Version Metadata binding — a Worker-only binding with no backing cloud resource. Cloudflare provides the deployed Worker version at runtime (id, tag, timestamp).

VersionMetadata is a single value that is at once the Binding.Service tag, the callable that produces a VersionMetadataBinding, and the type. Declare it on a Worker’s env (it flows through InferEnvWorkerVersionMetadata) or yield* it inside an Effect-native Worker to attach the binding and obtain a deferred VersionMetadataAccessor.

import * as Effect from "effect/Effect";
Cloudflare.Worker(
"VersionWorker",
{ main: import.meta.url },
Effect.gen(function* () {
// Attaches the binding to this Worker AND returns a deferred accessor.
const versionMetadata = yield* Cloudflare.Workers.VersionMetadata();
return {
fetch: Effect.gen(function* () {
const { id, tag, timestamp } = yield* versionMetadata;
return Response.json({ id, tag, timestamp });
}),
};
}).pipe(Effect.provide(Cloudflare.Workers.VersionMetadataBinding)),
);
export const Worker = Cloudflare.Worker("Worker", {
main: "./src/worker.ts",
env: { CF_VERSION_METADATA: Cloudflare.Workers.VersionMetadata() },
});
export type WorkerEnv = Cloudflare.InferEnv<typeof Worker>;
// { CF_VERSION_METADATA: WorkerVersionMetadata }