UNPKG

@the-goat/core

Version:

![npm version](https://badgen.net/npm/v/@the-goat/goat?icon=npm) ![npm downloads](https://badgen.net/npm/dt/@the-goat/goat?icon=npm) ![npm weekly downloads](https://badgen.net/npm/dw/@the-goat/goat?icon=npm) ![npm licence](https://badgen.net/npm/license/@

60 lines 1.82 kB
"use strict"; var __importDefault = (this && this.__importDefault) || 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