silvie
Version:
Typescript Back-end Framework
80 lines (79 loc) • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _fs = _interopRequireDefault(require("fs"));
var _path = _interopRequireDefault(require("path"));
var _dotenv = _interopRequireDefault(require("dotenv"));
var _project_structure = require("../../helpers/project_structure");
var _log = _interopRequireDefault(require("../../../utils/log"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
var _default = async () => {
const root = process.rootPath;
const badDirs = [];
Object.keys(_project_structure.directories).forEach(dir => {
const dirPath = _path.default.resolve(root, dir);
if (!(_fs.default.existsSync(dirPath) && _fs.default.statSync(dirPath).isDirectory())) {
badDirs.push(dir);
}
});
const badFiles = [];
Object.keys(_project_structure.files).forEach(dir => {
const filePath = _path.default.resolve(root, dir);
if (!_fs.default.existsSync(filePath)) {
badFiles.push(dir);
}
});
if (badDirs.length > 0) {
_log.default.error('Missing Directories:');
badDirs.forEach(dir => (0, _log.default)(dir));
}
if (badFiles.length > 0) {
if (badDirs.length > 0) {
(0, _log.default)('');
}
_log.default.error('Missing Files:');
badFiles.forEach(file => (0, _log.default)(file));
}
let envOK = true;
if (!badFiles.includes('.env')) {
const {
parsed
} = _dotenv.default.config({
path: _path.default.resolve(root, '.env')
});
if (!parsed.APP_KEY) {
envOK = false;
_log.default.error('[Dotenv]', 'APP_KEY is not defined.');
}
if (!parsed.APP_PORT) {
envOK = false;
_log.default.error('[Dotenv]', 'APP_PORT is not defined.');
}
if (!parsed.DB_TYPE) {
envOK = false;
_log.default.error('[Dotenv]', 'DB_TYPE is not defined.');
}
if (!parsed.DB_HOST) {
envOK = false;
_log.default.error('[Dotenv]', 'DB_HOST is not defined.');
}
if (!parsed.DB_PORT) {
envOK = false;
_log.default.error('[Dotenv]', 'DB_PORT is not defined.');
}
if (!parsed.DB_DATABASE) {
envOK = false;
_log.default.error('[Dotenv]', 'DB_DATABASE is not defined.');
}
if (!parsed.DB_USERNAME) {
envOK = false;
_log.default.error('[Dotenv]', 'DB_USERNAME is not defined.');
}
}
if (badDirs.length === 0 && badFiles.length === 0 && envOK) {
_log.default.success('Directory structure is valid');
}
};
exports.default = _default;