UNPKG

@bconnorwhite/bob

Version:

Bob is a toolkit for TypeScript projects

80 lines (63 loc) 2.33 kB
"use strict"; 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;