| | |
| | | } |
| | | |
| | | const watcher = chokidar.watch(".", { |
| | | awaitWriteFinish: { stabilityThreshold: 250 }, |
| | | persistent: true, |
| | | cwd: argv.directory, |
| | | ignoreInitial: true, |
| | |
| | | const changes: ChangeEvent[] = [] |
| | | watcher |
| | | .on("add", (fp) => { |
| | | fp = toPosixPath(fp) |
| | | if (buildData.ignored(fp)) return |
| | | changes.push({ path: fp as FilePath, type: "add" }) |
| | | void rebuild(changes, clientRefresh, buildData) |
| | | }) |
| | | .on("change", (fp) => { |
| | | fp = toPosixPath(fp) |
| | | if (buildData.ignored(fp)) return |
| | | changes.push({ path: fp as FilePath, type: "change" }) |
| | | void rebuild(changes, clientRefresh, buildData) |
| | | }) |
| | | .on("unlink", (fp) => { |
| | | fp = toPosixPath(fp) |
| | | if (buildData.ignored(fp)) return |
| | | changes.push({ path: fp as FilePath, type: "delete" }) |
| | | void rebuild(changes, clientRefresh, buildData) |
| | |
| | | // update allFiles and then allSlugs with the consistent view of content map |
| | | ctx.allFiles = Array.from(contentMap.keys()) |
| | | ctx.allSlugs = ctx.allFiles.map((fp) => slugifyFilePath(fp as FilePath)) |
| | | const processedFiles = Array.from(contentMap.values()) |
| | | .filter((file) => file.type === "markdown") |
| | | .map((file) => file.content) |
| | | let processedFiles = filterContent( |
| | | ctx, |
| | | Array.from(contentMap.values()) |
| | | .filter((file) => file.type === "markdown") |
| | | .map((file) => file.content), |
| | | ) |
| | | |
| | | let emittedFiles = 0 |
| | | for (const emitter of cfg.plugins.emitters) { |