@the-goat/core
Version:
    || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateConfig = exports.getConfig = void 0;
var fs_1 = require("fs");
var path_1 = require("path");
var notifier_1 = __importDefault(require("../notifier"));
var schema_1 = __importDefault(require("../schemas/schema"));
var schema_2 = __importDefault(require("../validators/schema"));
var version_1 = __importDefault(require("../validators/version"));
var configPath = path_1.resolve('./goat.config.json');
/**
* Parse configuration object
* @returns
*/
function parseConfig(config) {
try {
return JSON.parse(config);
}
catch (error) {
notifier_1.default.error('Your config file is not valid JSON, please check your config file');
process.exit();
return null;
}
}
/**
* Get configuration object
*/
function getConfig() {
if (!fs_1.existsSync(configPath)) {
notifier_1.default.error("No config file could be found, please check your path or create a 'goat.config.json' file");
return null;
}
// Read config
return parseConfig(fs_1.readFileSync(configPath, 'utf-8'));
}
exports.getConfig = getConfig;
/**
* Validate configuration object
* @returns
*/
function validateConfig(config) {
if (!version_1.default(config.version)) {
throw new Error('Invalid Goat-version');
}
var isValid = true;
// Validate used config
if (!schema_2.default(config, schema_1.default)) {
isValid = false;
}
// Validate config version
if (!config.version) {
isValid = false;
}
return isValid;
}
exports.validateConfig = validateConfig;
//# sourceMappingURL=config.js.map