@bconnorwhite/bob
Version:
Bob is a toolkit for TypeScript projects
80 lines (63 loc) • 2.33 kB
JavaScript
;
exports.__esModule = true;
exports.start = start;
exports.startAction = startAction;
exports["default"] = void 0;
var _nodemon = _interopRequireDefault(require("nodemon"));
var _waitOn = _interopRequireDefault(require("wait-on"));
var _dotenv = _interopRequireDefault(require("dotenv"));
var _commanderVersion = require("commander-version");
var _package = require("@bconnorwhite/package");
var _exec = require("@bconnorwhite/exec");
var _structure = require("../structure");
var _watch = require("./watch");
var _utils = require("../utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function start(_ref) {
var dev = _ref.dev,
_ref$ignore = _ref.ignore,
ignore = _ref$ignore === void 0 ? [] : _ref$ignore;
var main = (0, _package.getMain)();
var promises = [];
if (dev) {
promises.push((0, _waitOn["default"])({
// wait for babel to remove main
resources: [main.path],
interval: 10,
reverse: true
}).then(function () {
// wait for babel to create main
(0, _waitOn["default"])({
resources: [main.path]
}).then(function () {
(0, _nodemon["default"])({
script: main.path,
watch: [(0, _structure.getBuildDir)().relative],
ignore: ignore,
ext: "js json",
env: _dotenv["default"].config().parsed,
stdout: false
}).on("stdout", function (stdout) {
console.info(stdout.toString());
}).on("stderr", function (stderr) {
console.error(stderr.toString());
}).on("quit", function () {
process.kill(process.pid, "SIGKILL");
});
});
}));
promises.push((0, _watch.watch)());
} else {
promises.push((0, _exec.exec)({
command: "node",
args: main.path,
env: (0, _utils.getEnv)()
}));
}
return Promise.all(promises);
}
function startAction(args) {
start(args);
}
var _default = (0, _commanderVersion.createCommand)("start").description("start the script defined in the main field of package.json").option("-d --dev", "set NODE_ENV to 'development' and watch for changes").option("-i --ignore [ignore...]", "files or directories to ignore for restart").action(startAction);
exports["default"] = _default;