20 lines
709 B
TypeScript
20 lines
709 B
TypeScript
import { Worker } from "node:worker_threads";
|
|
import chokidar from "chokidar";
|
|
|
|
const watch = (glob: string | string[], task: string) =>
|
|
chokidar.watch(glob).on("change", (path: string) => {
|
|
console.log("[change]", path, "->", task);
|
|
return new Promise<void>((resolve) => {
|
|
const worker = new Worker(new URL(import.meta.resolve("./build.ts")), { argv: [task] });
|
|
worker.on("exit", () => resolve());
|
|
});
|
|
});
|
|
|
|
watch(["lib/views/*.tsx", "articles/**/*.asciidoc"], "articles");
|
|
watch("src/*.css", "css");
|
|
watch("src/*.avif", "images");
|
|
watch("src/*.svg", "svg");
|
|
|
|
watch("dist/_assets/fonts.manifest", "css");
|
|
watch("dist/_assets/css.manifest", "articles");
|