gplint
Version:
A Gherkin linter/validator written in Javascript.
30 lines • 1.24 kB
JavaScript
import fs from 'fs';
import stripJsonComments from 'strip-json-comments';
import * as verifyConfig from './config-verifier.js';
import * as logger from './logger.js';
export const defaultConfigFileName = '.gplintrc';
export async function getConfiguration(configPath = defaultConfigFileName, additionalRulesDirs) {
try {
const config = JSON.parse(stripJsonComments(await fs.promises.readFile(configPath, { encoding: 'utf8' })));
const errors = await verifyConfig.verifyConfigurationFile(config, additionalRulesDirs);
if (errors.length > 0) {
logger.boldError('Error(s) in configuration file:');
errors.forEach(error => {
logger.error(`- ${error}`);
});
process.exit(1);
}
return config;
}
catch (e) {
if (e.code === 'ENOENT') {
logger.boldError(`Could not find config file "${configPath}" in the working directory.
To use a custom name/path provide the config file using the "-c" arg.`);
}
else {
logger.boldError(`Unable to parse file, be sure its in JSON format. ${e.message}`);
}
return process.exit(1);
}
}
//# sourceMappingURL=config-parser.js.map