grind-cli
Version:
CLI provider for Grind
43 lines (32 loc) • 3.83 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Runner = void 0;
const path = require('path');
class Runner {
constructor(bootstrapper) {
this.app = null;
this.bootstrapper = null;
this.bootstrapper = bootstrapper;
}
run() {
const app = this.bootstrapper();
this.app = app;
return app.start();
}
async watch(command, option, restartHandler) {
// Build the dirs to watch
const dirs = command.option(option).split(/,/).map(dir => {
if (dir[0] === '/') {
return dir;
}
return path.join(process.cwd(), dir);
}); // Strip the option from `argv` to avoid infinite loops
process.argv = process.argv.filter(arg => !arg.startsWith(`--${option}=`)); // Kick off the watcher
const Watcher = require('./Runner/Watcher').Watcher;
return new Watcher(this, dirs, restartHandler).watch();
}
}
exports.Runner = Runner;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9SdW5uZXIuanMiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJSdW5uZXIiLCJjb25zdHJ1Y3RvciIsImJvb3RzdHJhcHBlciIsImFwcCIsInJ1biIsInN0YXJ0Iiwid2F0Y2giLCJjb21tYW5kIiwib3B0aW9uIiwicmVzdGFydEhhbmRsZXIiLCJkaXJzIiwic3BsaXQiLCJtYXAiLCJkaXIiLCJqb2luIiwicHJvY2VzcyIsImN3ZCIsImFyZ3YiLCJmaWx0ZXIiLCJhcmciLCJzdGFydHNXaXRoIiwiV2F0Y2hlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBRU8sTUFBTUMsTUFBTixDQUFhO0FBSW5CQyxFQUFBQSxXQUFXLENBQUNDLFlBQUQsRUFBZTtBQUFBLFNBSDFCQyxHQUcwQixHQUhwQixJQUdvQjtBQUFBLFNBRjFCRCxZQUUwQixHQUZYLElBRVc7QUFDekIsU0FBS0EsWUFBTCxHQUFvQkEsWUFBcEI7QUFDQTs7QUFFREUsRUFBQUEsR0FBRyxHQUFHO0FBQ0wsVUFBTUQsR0FBRyxHQUFHLEtBQUtELFlBQUwsRUFBWjtBQUNBLFNBQUtDLEdBQUwsR0FBV0EsR0FBWDtBQUVBLFdBQU9BLEdBQUcsQ0FBQ0UsS0FBSixFQUFQO0FBQ0E7O0FBRUQsUUFBTUMsS0FBTixDQUFZQyxPQUFaLEVBQXFCQyxNQUFyQixFQUE2QkMsY0FBN0IsRUFBNkM7QUFDNUM7QUFDQSxVQUFNQyxJQUFJLEdBQUdILE9BQU8sQ0FDbEJDLE1BRFcsQ0FDSkEsTUFESSxFQUVYRyxLQUZXLENBRUwsR0FGSyxFQUdYQyxHQUhXLENBR1BDLEdBQUcsSUFBSTtBQUNYLFVBQUlBLEdBQUcsQ0FBQyxDQUFELENBQUgsS0FBVyxHQUFmLEVBQW9CO0FBQ25CLGVBQU9BLEdBQVA7QUFDQTs7QUFFRCxhQUFPZixJQUFJLENBQUNnQixJQUFMLENBQVVDLE9BQU8sQ0FBQ0MsR0FBUixFQUFWLEVBQXlCSCxHQUF6QixDQUFQO0FBQ0EsS0FUVyxDQUFiLENBRjRDLENBYTVDOztBQUNBRSxJQUFBQSxPQUFPLENBQUNFLElBQVIsR0FBZUYsT0FBTyxDQUFDRSxJQUFSLENBQWFDLE1BQWIsQ0FBb0JDLEdBQUcsSUFBSSxDQUFDQSxHQUFHLENBQUNDLFVBQUosQ0FBZ0IsS0FBSVosTUFBTyxHQUEzQixDQUE1QixDQUFmLENBZDRDLENBZ0I1Qzs7QUFDQSxVQUFNYSxPQUFPLEdBQUd0QixPQUFPLENBQUMsa0JBQUQsQ0FBUCxDQUE0QnNCLE9BQTVDOztBQUNBLFdBQU8sSUFBSUEsT0FBSixDQUFZLElBQVosRUFBa0JYLElBQWxCLEVBQXdCRCxjQUF4QixFQUF3Q0gsS0FBeEMsRUFBUDtBQUNBOztBQWxDa0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpXG5cbmV4cG9ydCBjbGFzcyBSdW5uZXIge1xuXHRhcHAgPSBudWxsXG5cdGJvb3RzdHJhcHBlciA9IG51bGxcblxuXHRjb25zdHJ1Y3Rvcihib290c3RyYXBwZXIpIHtcblx0XHR0aGlzLmJvb3RzdHJhcHBlciA9IGJvb3RzdHJhcHBlclxuXHR9XG5cblx0cnVuKCkge1xuXHRcdGNvbnN0IGFwcCA9IHRoaXMuYm9vdHN0cmFwcGVyKClcblx0XHR0aGlzLmFwcCA9IGFwcFxuXG5cdFx0cmV0dXJuIGFwcC5zdGFydCgpXG5cdH1cblxuXHRhc3luYyB3YXRjaChjb21tYW5kLCBvcHRpb24sIHJlc3RhcnRIYW5kbGVyKSB7XG5cdFx0Ly8gQnVpbGQgdGhlIGRpcnMgdG8gd2F0Y2hcblx0XHRjb25zdCBkaXJzID0gY29tbWFuZFxuXHRcdFx0Lm9wdGlvbihvcHRpb24pXG5cdFx0XHQuc3BsaXQoLywvKVxuXHRcdFx0Lm1hcChkaXIgPT4ge1xuXHRcdFx0XHRpZiAoZGlyWzBdID09PSAnLycpIHtcblx0XHRcdFx0XHRyZXR1cm4gZGlyXG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGRpcilcblx0XHRcdH0pXG5cblx0XHQvLyBTdHJpcCB0aGUgb3B0aW9uIGZyb20gYGFyZ3ZgIHRvIGF2b2lkIGluZmluaXRlIGxvb3BzXG5cdFx0cHJvY2Vzcy5hcmd2ID0gcHJvY2Vzcy5hcmd2LmZpbHRlcihhcmcgPT4gIWFyZy5zdGFydHNXaXRoKGAtLSR7b3B0aW9ufT1gKSlcblxuXHRcdC8vIEtpY2sgb2ZmIHRoZSB3YXRjaGVyXG5cdFx0Y29uc3QgV2F0Y2hlciA9IHJlcXVpcmUoJy4vUnVubmVyL1dhdGNoZXInKS5XYXRjaGVyXG5cdFx0cmV0dXJuIG5ldyBXYXRjaGVyKHRoaXMsIGRpcnMsIHJlc3RhcnRIYW5kbGVyKS53YXRjaCgpXG5cdH1cbn1cbiJdfQ==
;