@code-to-json/cli
Version:
55 lines • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var validators_1 = require("./validators");
var path = require("path");
var validation_1 = require("./errors/validation");
var utils_1 = require("@code-to-json/utils");
function validateEntries(entries) {
return utils_1.isHomogenousArray(entries, function (e) { return typeof e === 'string'; });
}
exports.validateEntries = validateEntries;
function isExistingFilePath(rawPath, errors) {
var pathErrors = [];
if (typeof rawPath !== 'string') {
pathErrors.push('path must be a string');
}
if (validators_1.isEmpty(rawPath)) {
pathErrors.push('path must not be empty');
}
if (!validators_1.isDirectoryThatExists(path.join(process.cwd(), rawPath))) {
console.error('----', path.join(process.cwd(), rawPath));
pathErrors.push('path must point to a folder that exists');
}
if (pathErrors.length > 0) {
errors.path = pathErrors;
}
}
function validateConfig(rawOptions) {
var validationErrors = {};
var configPath = rawOptions.config;
var out = rawOptions.out;
var entries = rawOptions.entries;
if (!validateEntries(entries)) {
validationErrors.entries = ['Invalid entries'];
}
if (typeof configPath === 'string') {
isExistingFilePath(configPath, validationErrors);
}
if (typeof out !== 'string') {
validationErrors.out = ["Invalid output path: \"" + out + "\""];
}
if (Object.keys(validationErrors).length === 0) {
return [
'ok',
{ entries: entries, configPath: configPath, out: out }
];
}
else {
return [
'error',
new validation_1.default('configuration is invalid', validationErrors)
];
}
}
exports.validateConfig = validateConfig;
//# sourceMappingURL=config.js.map