33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
import path from 'path';
|
|
import chokidar from 'chokidar';
|
|
import { getStat } from 'recursive-readdir-files';
|
|
import { run, DOCS, createHTML, copyCSSFile, copyJSFile } from './index.mjs';
|
|
|
|
(async () => {
|
|
await run();
|
|
const homeMdPath = path.relative(process.cwd(), 'README.md');
|
|
const cssDirPath = path.relative(process.cwd(), 'scripts/style');
|
|
const jsDirPath = path.relative(process.cwd(), 'scripts/js');
|
|
const watcher = chokidar.watch([DOCS, homeMdPath, cssDirPath, jsDirPath], {
|
|
ignored: /(^|[\/\\])\../, // ignore dotfiles
|
|
persistent: true,
|
|
});
|
|
|
|
watcher
|
|
.on('change', async (filepath) => {
|
|
if (filepath.endsWith('.md')) {
|
|
const stats = await getStat(filepath);
|
|
createHTML([stats]);
|
|
}
|
|
if (filepath.endsWith('.css')) {
|
|
copyCSSFile(filepath);
|
|
console.log(`♻️ \x1b[32;1m ${path.relative(cssDirPath, filepath)} \x1b[0m`);
|
|
}
|
|
if (filepath.endsWith('.js')) {
|
|
copyJSFile(filepath);
|
|
console.log(`♻️ \x1b[32;1m ${path.relative(jsDirPath, filepath)} \x1b[0m`);
|
|
}
|
|
})
|
|
.on('error', (error) => console.log(`Watcher error: ${error}`));
|
|
})();
|