silvie
Version:
Typescript Back-end Framework
40 lines (39 loc) • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _path = _interopRequireDefault(require("path"));
var _child_process = _interopRequireDefault(require("child_process"));
var _log = _interopRequireDefault(require("../../../utils/log"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
var _default = args => {
_log.default.info('[Silvie Dev]', 'Starting a development server');
const port = args.port || args.p;
const cp = _child_process.default.exec(`cross-env BABEL_DISABLE_CACHE=1 IS_SILVIE_CLI=0 NODE_ENV=development nodemon --exec babel-node --watch src src/bootstrap/index.ts -- -x ".ts,.js" --config-file ${_path.default.resolve(process.silviePath, 'assets/babel.config.js')} ${port ? `--port ${port}` : ''}`, {
encoding: 'utf8'
});
cp.stdout.on('data', data => {
if (data.includes('[nodemon]')) {
if (data.includes('[nodemon] app crashed')) {
_log.default.error('[Silvie Dev] App Crashed!', 'Waiting for changes...');
}
if (data.includes('[nodemon] restarting')) {
_log.default.warning('[Silvie Dev] Changes Detected!', 'Restarting...');
}
return;
}
(0, _log.default)(data);
});
cp.stderr.on('data', data => {
if (data.includes('EADDRINUSE')) {
const portNumber = /port: (\d+)/.exec(data)[1];
_log.default.error('[Silvie Dev] Address in use');
(0, _log.default)(`Port '${portNumber || 'unknown'}' is already used.`);
(0, _log.default)('Please use a different port number.');
return;
}
_log.default.error(data);
});
};
exports.default = _default;