From c29faaea10cac367dae8a4448a9efc867cb37fa1 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 27 Oct 2024 13:05:03 +0900 Subject: [PATCH] chore: typing --- packages/workerd/src/plugin.ts | 6 ++---- packages/workerd/src/shared.ts | 5 +++++ packages/workerd/src/worker.ts | 10 +++++++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/workerd/src/plugin.ts b/packages/workerd/src/plugin.ts index 5a2ccc37..ba86c9c9 100644 --- a/packages/workerd/src/plugin.ts +++ b/packages/workerd/src/plugin.ts @@ -17,8 +17,7 @@ import { type ResolvedConfig, } from "vite"; import type { SourcelessWorkerOptions } from "wrangler"; -import { type FetchMetadata } from "./shared"; -import type { RunnerObject } from "./worker"; +import { type FetchMetadata, type RunnerRpc } from "./shared"; interface WorkerdPluginOptions extends WorkerdEnvironmentOptions { entry?: string; @@ -149,8 +148,7 @@ export async function createWorkerdDevEnvironment( // get durable object singleton const ns = await miniflare.getDurableObjectNamespace("__viteRunner"); - const runnerObject = ns.get(ns.idFromName("")) as any as Fetcher & - Pick; + const runnerObject = ns.get(ns.idFromName("")) as any as Fetcher & RunnerRpc; // init via rpc await runnerObject.__viteInit(); diff --git a/packages/workerd/src/shared.ts b/packages/workerd/src/shared.ts index 014cfff4..9a416327 100644 --- a/packages/workerd/src/shared.ts +++ b/packages/workerd/src/shared.ts @@ -14,6 +14,11 @@ export type RunnerEnv = { __viteRunner: DurableObject; }; +export type RunnerRpc = { + __viteInit: () => Promise; + __viteServerSend: (payload: unknown) => Promise; +}; + export type FetchMetadata = { entry: string; }; diff --git a/packages/workerd/src/worker.ts b/packages/workerd/src/worker.ts index f0e6f32d..ece2b970 100644 --- a/packages/workerd/src/worker.ts +++ b/packages/workerd/src/worker.ts @@ -6,9 +6,14 @@ import { ssrImportMetaKey, ssrModuleExportsKey, } from "vite/module-runner"; -import { ANY_URL, type FetchMetadata, type RunnerEnv } from "./shared"; +import { + ANY_URL, + type FetchMetadata, + type RunnerEnv, + type RunnerRpc, +} from "./shared"; -export class RunnerObject extends DurableObject { +export class RunnerObject extends DurableObject implements RunnerRpc { #env: RunnerEnv; #runner?: ModuleRunner; #viteServerSend!: (payload: HotPayload) => void; @@ -85,7 +90,6 @@ export class RunnerObject extends DurableObject { }, }, ); - return { ok: true }; } async __viteServerSend(payload: any) {