Skip to content

Commit

Permalink
Don't run prettier by eslint if run by prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
philschonholzer committed Mar 23, 2019
1 parent 9cdd15e commit bef1eda
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 27 deletions.
6 changes: 2 additions & 4 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@
"es6": true,
"node": true
},
"extends": ["airbnb-base", "plugin:prettier/recommended"],
"extends": ["airbnb-base", "prettier"],
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {
"ecmaVersion": 2018
},
"rules": {
"prettier/prettier": "error"
}
"rules": {}
}
21 changes: 12 additions & 9 deletions lib/add-prettier-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,27 @@ const {
// fileOptions,
} = require('./prettier-questions')

const addPrettierToExtends = eslintObj => {
const addPrettierToExtends = (eslintObj, prettierExtensionStr) => {
return Array.isArray(eslintObj.extends)
? [...eslintObj.extends, 'plugin:prettier/recommended']
? [...eslintObj.extends, prettierExtensionStr]
: eslintObj.extends
? [eslintObj.extends, 'plugin:prettier/recommended']
: 'plugin:prettier/recommended'
? [eslintObj.extends, prettierExtensionStr]
: prettierExtensionStr
}

const addPrettierToRules = (prettierObj, eslintObj) => ({
...eslintObj.rules,
'prettier/prettier': prettierObj ? ['error', prettierObj] : 'error',
})

const extendESLintConfig = (eslintObj, prettierObj) => ({
...eslintObj,
extends: addPrettierToExtends(eslintObj),
rules: addPrettierToRules(prettierObj, eslintObj),
})
const extendESLintConfig = (eslintObj, prettierObj) =>
prettierObj
? {
...eslintObj,
extends: addPrettierToExtends(eslintObj, 'plugin:prettier/recommended'),
rules: addPrettierToRules(prettierObj, eslintObj),
}
: { ...eslintObj, extends: addPrettierToExtends(eslintObj, 'prettier') }

const prettierQuestions = () =>
inquirer
Expand Down
32 changes: 29 additions & 3 deletions lib/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,38 @@ test('extendESLintConfig has already rules', t => {
t.deepEqual(eslintObj, expected)
})

test('extendESLintConfig no prettier', t => {
test('extendESLintConfig turn off eslint formating rules', t => {
const eslintObj = extendESLintConfig({})

const expected = {
extends: 'plugin:prettier/recommended',
rules: { 'prettier/prettier': 'error' },
extends: 'prettier',
}

t.deepEqual(eslintObj, expected)
})

test('extendESLintConfig turn off eslint formating rules with existing eslint rules', t => {
const eslintObj = extendESLintConfig({
rules: { 'no-underscore-dangle': 'off' },
})

const expected = {
extends: 'prettier',
rules: { 'no-underscore-dangle': 'off' },
}

t.deepEqual(eslintObj, expected)
})

test('extendESLintConfig turn off eslint formating rules with existing eslint rules and extensions', t => {
const eslintObj = extendESLintConfig({
extends: ['other-extention'],
rules: { 'no-underscore-dangle': 'off' },
})

const expected = {
extends: ['other-extention', 'prettier'],
rules: { 'no-underscore-dangle': 'off' },
}

t.deepEqual(eslintObj, expected)
Expand Down
20 changes: 10 additions & 10 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
},
"devDependencies": {
"ava": "^1.2.1",
"eslint": "^5.15.1",
"eslint": "^5.15.3",
"eslint-config-airbnb-base": "^13.1.0",
"eslint-config-prettier": "^4.1.0",
"eslint-plugin-import": "^2.16.0",
Expand Down

0 comments on commit bef1eda

Please sign in to comment.