export function runRule(code, eslint) { // Run the ESLint rule on the AST of the provided code. // Reference: http://eslint.org/docs/developer-guide/nodejs-api eslint.defineParser('babel-eslint', { parse(code) { return parseNoPatch(code, { sourceType: 'module' }); }, }); const results = eslint.verifyAndFix(code, { env: {es6: true}, parser: 'babel-eslint', parserOptions: { ecmaVersion: 8, sourceType: 'module', ecmaFeatures: {experimentalObjectRestSpread: true}, }, rules: { astExplorerRule: 2, }, }); let output = formatResults(results.messages); output += ` // Fixed output follows: // ${ '-'.repeat(80) } `; return output + results.output; }
export function runRule(code, eslint, sourceCode) { // Run the ESLint rule on the AST of the provided code. // Reference: http://eslint.org/docs/developer-guide/nodejs-api const ast = parseNoPatch(code, { sourceType: 'module', }); const results = eslint.verify(new sourceCode(code, ast), { env: {es6: true}, parserOptions: { ecmaVersion: 8, sourceType: 'module', ecmaFeatures: {experimentalObjectRestSpread: true}, }, rules: { astExplorerRule: 2, }, }); return formatResults(results); }