Fork Horse repository, listed by its owner. Publisher snapshot.

packages/forkhorse-gatekeeper/text-modules.ts

Snapshot at 34e3175

Containing directory

654 bytes · typescriptView raw
1import { readFileSync } from "node:fs";
2import { dirname, resolve } from "node:path";
3import type { Plugin } from "vite";
4
5/** The Worker embeds built frames and self-contained API types as text, matching Wrangler. */
6export function textModules(): Plugin {
7  return {
8    name: "worker-text-modules", enforce: "pre",
9    resolveId(source, importer) {
10      if (importer && /\.(html|txt)$/.test(source)) return `\0worker-text:${resolve(dirname(importer), source)}?module`;
11    },
12    load(id) {
13      if (id.startsWith("\0worker-text:")) {
14        return `export default ${JSON.stringify(readFileSync(id.slice(13, -7), "utf8"))};`;
15      }
16    },
17  };
18}
19