export function virtualFiles( map: Record, ) { return { name: "clover vfs", setup(b) { b.onResolve( { filter: new RegExp( // TODO: Proper Escape `\\$`, ), }, ({ path }) => { console.log({ path }); return ({ path, namespace: "vfs" }); }, ); b.onLoad( { filter: /./, namespace: "vfs" }, ({ path }) => { const entry = map[path]; return ({ resolveDir: ".", loader: "ts", ...typeof entry === "string" ? { contents: entry } : entry, }); }, ); }, } satisfies esbuild.Plugin; } export function banFiles( files: string[], ) { return { name: "clover vfs", setup(b) { b.onResolve( { filter: new RegExp( "^(?:" + files.map((file) => string.escapeRegExp(file)).join("|") + ")$", ), }, ({ path, importer }) => { throw new Error( `Loading ${path} (from ${importer}) is banned!`, ); }, ); }, } satisfies esbuild.Plugin; } import * as esbuild from "esbuild"; import * as string from "#sitegen/string";