silvie
Version:
Typescript Back-end Framework
56 lines (55 loc) • 2.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _fs = _interopRequireDefault(require("fs"));
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 = async () => {
const rootDir = process.rootPath;
const buildDir = _path.default.resolve(rootDir, 'build');
_log.default.info('[Silvie Builder]', 'Checking Requirements...');
let hasErrors = false;
if (!_fs.default.existsSync(_path.default.resolve(rootDir, 'src/assets'))) {
_log.default.error('[Silvie Builder]', 'Assets directory not found');
hasErrors = true;
}
if (!_fs.default.existsSync(_path.default.resolve(rootDir, '.env'))) {
_log.default.error('[Silvie Builder]', '.env file not found');
hasErrors = true;
}
if (!hasErrors) {
_log.default.success('[Silvie Builder]', "Everything's good.");
} else {
return;
}
if (!_fs.default.existsSync(buildDir)) {
_log.default.info('[Silvie Builder]', 'Creating build directory...');
_fs.default.mkdirSync(buildDir);
} else {
_log.default.info('[Silvie Builder]', 'Cleaning build directory...');
_fs.default.readdirSync(buildDir).forEach(file => {
if (file !== '.silvie') {
const filePath = _path.default.resolve(buildDir, file);
if (_fs.default.lstatSync(filePath).isDirectory()) {
_fs.default.rmdirSync(filePath, {
recursive: true
});
} else {
_fs.default.unlinkSync(filePath);
}
}
});
}
_log.default.info('[Silvie Builder]', 'Copying .env file...');
_fs.default.copyFileSync(_path.default.resolve(rootDir, '.env'), _path.default.resolve(buildDir, '.env'));
_log.default.info('[Silvie Builder]', 'Building your application...');
_child_process.default.execSync(`cross-env NODE_ENV=production IS_SILVIE_CLI=0 babel src -d build -x ".js,.ts" --copy-files --config-file ${_path.default.resolve(process.silviePath, 'assets/babel.config.js')}`, {
encoding: 'utf8'
});
_log.default.success('[Silvie Builder]', 'Successfully finished building.');
};
exports.default = _default;