Fork Horse repository, listed by its owner. Publisher snapshot.
packages/forkhorse-gatekeeper/text-modules.ts
Snapshot at 34e3175
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