silvie
Version:
Typescript Back-end Framework
50 lines (49 loc) • 2.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _fs = _interopRequireDefault(require("fs"));
var _path = _interopRequireDefault(require("path"));
var _log = _interopRequireDefault(require("../../../utils/log"));
var _child_process = _interopRequireDefault(require("child_process"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
var _default = args => {
const buildPath = _path.default.resolve(process.rootPath, 'build');
if (!_fs.default.existsSync(buildPath)) {
_log.default.error('[Silvie] Build Not Found');
(0, _log.default)('You should build the application first.');
(0, _log.default)('Use', _log.default.str`silvie build`.underscore().bright(), 'command to build it.');
}
if (!_fs.default.statSync(buildPath).isDirectory()) {
_log.default.error('[Silvie] Invalid Build');
(0, _log.default)('Build directory is not a directory');
}
if (!_fs.default.existsSync(_path.default.resolve(buildPath, '.env'))) {
_log.default.error('[Silvie] Env File Not Found');
(0, _log.default)('.env file is not present in the build directory.');
}
if (!_fs.default.existsSync(_path.default.resolve(buildPath, 'bootstrap/index.js'))) {
_log.default.error('[Silvie] Bootstrap Not Found');
(0, _log.default)('Unable to find bootstrap file.');
}
_log.default.info('[Silvie]', 'Starting Application...');
const port = args.port || args.p;
const cp = _child_process.default.exec(`cross-env IS_SILVIE_CLI=0 node build/bootstrap/index.js${port ? ` --port ${port}` : ''}`, {
encoding: 'utf8'
});
cp.stdout.on('data', data => {
(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;