diff --git a/packages/eslint-config-airbnb-base/whitespace-async.js b/packages/eslint-config-airbnb-base/whitespace-async.js index 06f4f89075..7d05d727fb 100755 --- a/packages/eslint-config-airbnb-base/whitespace-async.js +++ b/packages/eslint-config-airbnb-base/whitespace-async.js @@ -46,4 +46,9 @@ async function onlyErrorOnRules(rulesToError, config) { return errorsOnly; } -onlyErrorOnRules(whitespaceRules, baseConfig).then((config) => console.log(JSON.stringify(config))); +onlyErrorOnRules(whitespaceRules, baseConfig) + .then((config) => console.log(JSON.stringify(config))) + .catch((err) => { + console.error(err); + process.exitCode = 1; + }); diff --git a/packages/eslint-config-airbnb-base/whitespace.js b/packages/eslint-config-airbnb-base/whitespace.js index 01e5198671..d140453d46 100644 --- a/packages/eslint-config-airbnb-base/whitespace.js +++ b/packages/eslint-config-airbnb-base/whitespace.js @@ -52,10 +52,16 @@ if (CLIEngine) { const { execSync } = require('child_process'); // NOTE: ESLint adds runtime statistics to the output (so it's no longer JSON) if TIMING is set - module.exports = JSON.parse(String(execSync(path.join(__dirname, 'whitespace-async.js'), { - env: { - ...process.env, - TIMING: undefined, - } - }))); + try { + const stdout = execSync(path.join(__dirname, 'whitespace-async.js'), { + env: { + ...process.env, + TIMING: undefined, + }, + encoding: 'utf8', + }); + module.exports = JSON.parse(stdout); + } catch (err) { + throw new Error(`Failed to load whitespace rules from whitespace-async.js: ${err.message}`, { cause: err }); + } } diff --git a/packages/eslint-config-airbnb/whitespace-async.js b/packages/eslint-config-airbnb/whitespace-async.js index 06f4f89075..7d05d727fb 100755 --- a/packages/eslint-config-airbnb/whitespace-async.js +++ b/packages/eslint-config-airbnb/whitespace-async.js @@ -46,4 +46,9 @@ async function onlyErrorOnRules(rulesToError, config) { return errorsOnly; } -onlyErrorOnRules(whitespaceRules, baseConfig).then((config) => console.log(JSON.stringify(config))); +onlyErrorOnRules(whitespaceRules, baseConfig) + .then((config) => console.log(JSON.stringify(config))) + .catch((err) => { + console.error(err); + process.exitCode = 1; + }); diff --git a/packages/eslint-config-airbnb/whitespace.js b/packages/eslint-config-airbnb/whitespace.js index 01e5198671..d140453d46 100644 --- a/packages/eslint-config-airbnb/whitespace.js +++ b/packages/eslint-config-airbnb/whitespace.js @@ -52,10 +52,16 @@ if (CLIEngine) { const { execSync } = require('child_process'); // NOTE: ESLint adds runtime statistics to the output (so it's no longer JSON) if TIMING is set - module.exports = JSON.parse(String(execSync(path.join(__dirname, 'whitespace-async.js'), { - env: { - ...process.env, - TIMING: undefined, - } - }))); + try { + const stdout = execSync(path.join(__dirname, 'whitespace-async.js'), { + env: { + ...process.env, + TIMING: undefined, + }, + encoding: 'utf8', + }); + module.exports = JSON.parse(stdout); + } catch (err) { + throw new Error(`Failed to load whitespace rules from whitespace-async.js: ${err.message}`, { cause: err }); + } }