UNPKG

gplint

Version:

A Gherkin linter/validator written in Javascript.

30 lines 1.24 kB
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