@riddance/env
Version:
48 lines • 6.89 kB
JavaScript
import { getSource, load } from '../lib/changes.js';
import { sync } from '../lib/chrono.js';
import { signaled } from '../lib/reporter.js';
import { isSpellingDictionaryFile, spelling } from '../lib/spelling.js';
import { watch } from './lib/compiler.js';
import { consoleReporter } from './lib/console-reporter.js';
let watcher;
let lastInput = [];
const cwd = process.cwd();
const changes = await load(cwd);
function start() {
watcher = watch(consoleReporter, cwd, async (success, inputFiles, outputFiles, signal) => {
if (inputFiles.includes('package.json') || inputFiles.includes('package-lock.json')) {
await installAndRestart();
return;
}
const reporter = signaled(consoleReporter, signal);
if (isSpellingDictionaryFile(inputFiles)) {
if (await spelling(reporter, cwd, getSource(lastInput), signal)) {
reporter.status('🚀 All good 👌');
await changes.stageComplete('spelling');
}
else {
reporter.status('⚠️ Issues found 👆');
}
reporter.done();
return;
}
lastInput = inputFiles;
if (await changes.postCompile(consoleReporter, cwd, inputFiles, Promise.resolve(success ? outputFiles : undefined), signal)) {
reporter.status('🚀 All good 👌');
}
else {
reporter.status('⚠️ Issues found 👆');
}
reporter.done();
});
}
async function installAndRestart() {
watcher.close();
await changes.clearStages();
await changes.preCompile(consoleReporter, cwd);
start();
}
await Promise.all([changes.preCompile(consoleReporter, cwd), sync()]);
start();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3YXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRTNELElBQUksT0FBOEIsQ0FBQTtBQUNsQyxJQUFJLFNBQVMsR0FBYSxFQUFFLENBQUE7QUFFNUIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFBO0FBRXpCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBRS9CLFNBQVMsS0FBSztJQUNWLE9BQU8sR0FBRyxLQUFLLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckYsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ2xGLE1BQU0saUJBQWlCLEVBQUUsQ0FBQTtZQUN6QixPQUFNO1FBQ1YsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDbEQsSUFBSSx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDOUQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO2dCQUNsQyxNQUFNLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDM0MsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLFFBQVEsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtZQUMxQyxDQUFDO1lBQ0QsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ2YsT0FBTTtRQUNWLENBQUM7UUFDRCxTQUFTLEdBQUcsVUFBVSxDQUFBO1FBQ3RCLElBQ0ksTUFBTSxPQUFPLENBQUMsV0FBVyxDQUNyQixlQUFlLEVBQ2YsR0FBRyxFQUNILFVBQVUsRUFDVixPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFDbEQsTUFBTSxDQUNULEVBQ0gsQ0FBQztZQUNDLFFBQVEsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNKLFFBQVEsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUMxQyxDQUFDO1FBQ0QsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ25CLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQztBQUVELEtBQUssVUFBVSxpQkFBaUI7SUFDNUIsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ2YsTUFBTSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDM0IsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUM5QyxLQUFLLEVBQUUsQ0FBQTtBQUNYLENBQUM7QUFFRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDckUsS0FBSyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5cbmltcG9ydCB7IGdldFNvdXJjZSwgbG9hZCB9IGZyb20gJy4uL2xpYi9jaGFuZ2VzLmpzJ1xuaW1wb3J0IHsgc3luYyB9IGZyb20gJy4uL2xpYi9jaHJvbm8uanMnXG5pbXBvcnQgeyBzaWduYWxlZCB9IGZyb20gJy4uL2xpYi9yZXBvcnRlci5qcydcbmltcG9ydCB7IGlzU3BlbGxpbmdEaWN0aW9uYXJ5RmlsZSwgc3BlbGxpbmcgfSBmcm9tICcuLi9saWIvc3BlbGxpbmcuanMnXG5pbXBvcnQgeyB3YXRjaCB9IGZyb20gJy4vbGliL2NvbXBpbGVyLmpzJ1xuaW1wb3J0IHsgY29uc29sZVJlcG9ydGVyIH0gZnJvbSAnLi9saWIvY29uc29sZS1yZXBvcnRlci5qcydcblxubGV0IHdhdGNoZXI6IHsgY2xvc2U6ICgpID0+IHZvaWQgfVxubGV0IGxhc3RJbnB1dDogc3RyaW5nW10gPSBbXVxuXG5jb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpXG5cbmNvbnN0IGNoYW5nZXMgPSBhd2FpdCBsb2FkKGN3ZClcblxuZnVuY3Rpb24gc3RhcnQoKSB7XG4gICAgd2F0Y2hlciA9IHdhdGNoKGNvbnNvbGVSZXBvcnRlciwgY3dkLCBhc3luYyAoc3VjY2VzcywgaW5wdXRGaWxlcywgb3V0cHV0RmlsZXMsIHNpZ25hbCkgPT4ge1xuICAgICAgICBpZiAoaW5wdXRGaWxlcy5pbmNsdWRlcygncGFja2FnZS5qc29uJykgfHwgaW5wdXRGaWxlcy5pbmNsdWRlcygncGFja2FnZS1sb2NrLmpzb24nKSkge1xuICAgICAgICAgICAgYXdhaXQgaW5zdGFsbEFuZFJlc3RhcnQoKVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVwb3J0ZXIgPSBzaWduYWxlZChjb25zb2xlUmVwb3J0ZXIsIHNpZ25hbClcbiAgICAgICAgaWYgKGlzU3BlbGxpbmdEaWN0aW9uYXJ5RmlsZShpbnB1dEZpbGVzKSkge1xuICAgICAgICAgICAgaWYgKGF3YWl0IHNwZWxsaW5nKHJlcG9ydGVyLCBjd2QsIGdldFNvdXJjZShsYXN0SW5wdXQpLCBzaWduYWwpKSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0ZXIuc3RhdHVzKCfwn5qAICBBbGwgZ29vZCDwn5GMJylcbiAgICAgICAgICAgICAgICBhd2FpdCBjaGFuZ2VzLnN0YWdlQ29tcGxldGUoJ3NwZWxsaW5nJylcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVwb3J0ZXIuc3RhdHVzKCfimqDvuI8gIElzc3VlcyBmb3VuZCDwn5GGJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcG9ydGVyLmRvbmUoKVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgbGFzdElucHV0ID0gaW5wdXRGaWxlc1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBhd2FpdCBjaGFuZ2VzLnBvc3RDb21waWxlKFxuICAgICAgICAgICAgICAgIGNvbnNvbGVSZXBvcnRlcixcbiAgICAgICAgICAgICAgICBjd2QsXG4gICAgICAgICAgICAgICAgaW5wdXRGaWxlcyxcbiAgICAgICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoc3VjY2VzcyA/IG91dHB1dEZpbGVzIDogdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICBzaWduYWwsXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmVwb3J0ZXIuc3RhdHVzKCfwn5qAICBBbGwgZ29vZCDwn5GMJylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcG9ydGVyLnN0YXR1cygn4pqg77iPICBJc3N1ZXMgZm91bmQg8J+RhicpXG4gICAgICAgIH1cbiAgICAgICAgcmVwb3J0ZXIuZG9uZSgpXG4gICAgfSlcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zdGFsbEFuZFJlc3RhcnQoKSB7XG4gICAgd2F0Y2hlci5jbG9zZSgpXG4gICAgYXdhaXQgY2hhbmdlcy5jbGVhclN0YWdlcygpXG4gICAgYXdhaXQgY2hhbmdlcy5wcmVDb21waWxlKGNvbnNvbGVSZXBvcnRlciwgY3dkKVxuICAgIHN0YXJ0KClcbn1cblxuYXdhaXQgUHJvbWlzZS5hbGwoW2NoYW5nZXMucHJlQ29tcGlsZShjb25zb2xlUmVwb3J0ZXIsIGN3ZCksIHN5bmMoKV0pXG5zdGFydCgpXG4iXX0=