import type { QueryMeta } from "convex/server"; import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; export type { DeploymentMetadata, FunctionMetadata } from "convex/server"; const make = ( meta: Pick, ) => ({ getFunction: Effect.fn("ExecutionMetadata.getFunction")(() => Effect.promise(() => meta.getFunctionMetadata()), ), getDeployment: Effect.fn("ExecutionMetadata.getDeployment")(() => Effect.promise(() => meta.getDeploymentMetadata()), ), }); export class ExecutionMetadata extends Context.Service< ExecutionMetadata, ReturnType >()("@confect/server/ExecutionMetadata") {} export const layer = ( meta: Pick, ) => Layer.succeed(ExecutionMetadata, make(meta));