UNPKG

silvie

Version:

Typescript Back-end Framework

56 lines (55 loc) 2.34 kB
"use strict"; 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;