Skip to content

Commit

Permalink
chore: update configs
Browse files Browse the repository at this point in the history
  • Loading branch information
fisker committed Apr 20, 2019
1 parent f7b49fc commit bb40453
Show file tree
Hide file tree
Showing 7 changed files with 60 additions and 200 deletions.
4 changes: 2 additions & 2 deletions .eslintrc.js
Expand Up @@ -5,12 +5,12 @@
* document: https://eslint.org/docs/user-guide/configuring
*/

/* eslint-config-fisker https://git.io/fjJKy */
/* @fisker/eslint-config https://git.io/fjOeH */

module.exports = {
root: true,
parserOptions: {},
extends: ['fisker'],
extends: ['@fisker'],
settings: {},
rules: {},
plugins: [],
Expand Down
5 changes: 1 addition & 4 deletions commitlint.config.js
Expand Up @@ -5,9 +5,6 @@
* document: https://git.io/fhAJa
*/

// conventional commits https://www.conventionalcommits.org/en/v1.0.0-beta.2/
const COMMITLINT_CONFIG_CONVENTIONAL = '@commitlint/config-conventional'

module.exports = {
extends: [COMMITLINT_CONFIG_CONVENTIONAL],
extends: ['@fisker/commitlint-config'],
}
106 changes: 1 addition & 105 deletions lint-staged.config.js
Expand Up @@ -6,108 +6,4 @@
*
*/

const CMD_PRETTIER = 'prettier --write'
// eslint-disable-next-line no-unused-vars
const CMD_ESLINT = 'eslint'
const CMD_ESLINT_FIX = 'eslint --fix'
const CMD_STYLELINT_FIX = 'stylelint --fix'
const CMD_MARKDOWNLINT = 'markdownlint'
const CMD_GIT_ADD = 'git add'

const config = {
// markdown files
// first prettier then lint
'md,markdown': [CMD_PRETTIER, CMD_MARKDOWNLINT],

// js files
// eslint then prettier
'js,jsx,mjs': [CMD_ESLINT_FIX],

// vue files
// eslint then prettier
vue: [CMD_ESLINT_FIX, CMD_PRETTIER],

// typescript files
// tslint(eslint) then prettier
// 'ts,tsx': [CMD_ESLINT_FIX, CMD_PRETTIER],

// css files
// prettier
'scss,css,less': [CMD_STYLELINT_FIX],

// html files
// TODO: htmlhint
// prettier
'html,htm': CMD_PRETTIER,

// json files
// prettier
json: CMD_PRETTIER,

// json files
// prettier
json5: CMD_PRETTIER,

// json files
// prettier
'yaml,yml': CMD_PRETTIER,

// json files
// prettier
'gql,graphql': CMD_PRETTIER,
}

// export

function toArray(x) {
x = Array.isArray(x) ? x : x.split(',')
return x.map(s => s.trim())
}

function reduceByCommand(grouped, {exts, cmds}) {
if (!grouped[cmds]) {
grouped[cmds] = [cmds]
}
grouped[cmds] = grouped[cmds].concat(exts)

return grouped
}

function groupByCommand(config) {
return Object.keys(config)
.map(key => ({
exts: toArray(key),
cmds: toArray(config[key]),
}))
.reduce(reduceByCommand, {})
}

function reduceByGlob(config, {exts, cmds}) {
const glob = exts.length > 1 ? `*.{${exts}}` : `*.${exts}`

config[glob] = (Array.isArray(cmds) ? cmds : [cmds]).concat([CMD_GIT_ADD])

return config
}

function groupByGlob(grouped) {
return Object.keys(grouped)
.map(key => {
const [cmds, ...extensions] = grouped[key]

return {
cmds,
exts: extensions,
}
})
.reduce(reduceByGlob, {})
}

function parseConfig(config) {
const grouped = groupByCommand(config)
const globed = groupByGlob(grouped)

return globed
}

module.exports = parseConfig(config)
module.exports = require('@fisker/lint-staged-config')
21 changes: 12 additions & 9 deletions package.json
Expand Up @@ -9,7 +9,9 @@
"email": "lionkay@gmail.com",
"url": "https://www.fiskercheung.com/"
},
"files": ["index.js"],
"files": [
"index.js"
],
"keywords": [
"compress",
"image",
Expand All @@ -28,35 +30,36 @@
},
"scripts": {
"test": "ava",
"release": "run-s lint test dist",
"release": "run-s lint test prettier dist",
"lint": "run-p lint:*",
"lint:eslint": "eslint **/*.{js,mjs,vue} --fix",
"lint:markdown": "markdownlint **/*.md --ignore \"node_modules/**\"",
"lint:markdown": "markdownlint **/*.md --ignore \"**/node_modules/**\"",
"dist": "run-p dist:*",
"dist:npm": "np --yolo --no-yarn",
"prettier": "prettier **/*.{css,html,js,json,less,md,scss,ts,vue,yaml,yml} --write"
},
"devDependencies": {
"@commitlint/cli": "^7.5.2",
"@commitlint/config-conventional": "^7.5.0",
"@fisker/commitlint-config": "^1.0.2",
"@fisker/eslint-config": "^1.0.5",
"@fisker/lint-staged-config": "^1.0.1",
"@fisker/prettier-config": "^1.0.6",
"ava": "^1.4.1",
"cz-conventional-changelog-emoji": "^0.1.0",
"eslint": "^5.16.0",
"eslint-config-fisker": "^4.5.0",
"eslint-plugin-prettier": "^3.0.1",
"husky": "^1.3.1",
"lint-staged": "^8.1.5",
"markdownlint-cli": "^0.15.0",
"npm-run-all": "^4.1.5",
"prettier": "^1.17.0",
"prettier-config-fisker": "^1.0.3"
"prettier": "^1.17.0"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog-emoji"
}
},
"publishConfig": {
"registry": "https://registry.npmjs.org/"
"registry": "https://registry.npmjs.org/",
"access": "public"
}
}
2 changes: 1 addition & 1 deletion prettier.config.js
Expand Up @@ -5,4 +5,4 @@
* document: https://prettier.io/docs/en/options.html
*/

module.exports = require('prettier-config-fisker')
module.exports = require('@fisker/prettier-config')
4 changes: 3 additions & 1 deletion renovate.json
@@ -1,3 +1,5 @@
{
"extends": ["fisker"]
"extends": [
"@fisker"
]
}
118 changes: 40 additions & 78 deletions yarn.lock
Expand Up @@ -463,6 +463,43 @@
dependencies:
arrify "^1.0.1"

"@fisker/commitlint-config@^1.0.2":
version "1.0.2"
resolved "http://registry.npm.taobao.org/@fisker/commitlint-config/download/@fisker/commitlint-config-1.0.2.tgz#1d9b0a945b3db7f7f3d0d85d6838a514b9f8bdc5"
integrity sha1-HZsKlFs9t/fz0NhdaDilFLn4vcU=
dependencies:
"@commitlint/config-conventional" "^7.5.0"
"@fisker/eslint-config" "^1.0.5"

"@fisker/eslint-config@^1.0.5":
version "1.0.5"
resolved "http://registry.npm.taobao.org/@fisker/eslint-config/download/@fisker/eslint-config-1.0.5.tgz#e3307eaf3c700f05ad53c6ad37667ee9db220f73"
integrity sha1-4zB+rzxwDwWtU8atN2Z+6dsiD3M=
dependencies:
eslint-config-airbnb-base "^13.1.0"
eslint-config-prettier "^4.1.0"
eslint-plugin-eslint-comments "^3.1.1"
eslint-plugin-html "^5.0.3"
eslint-plugin-import "^2.17.2"
eslint-plugin-node "^8.0.1"
eslint-plugin-prettier "^3.0.1"
eslint-plugin-promise "^4.1.1"
eslint-plugin-unicorn "^8.0.2"

"@fisker/lint-staged-config@^1.0.1":
version "1.0.1"
resolved "http://registry.npm.taobao.org/@fisker/lint-staged-config/download/@fisker/lint-staged-config-1.0.1.tgz#957e240ba4cb77402adc63cf94cf76d689bba67a"
integrity sha1-lX4kC6TLd0Aq3GPPlM921om7pno=
dependencies:
"@fisker/eslint-config" "^1.0.5"

"@fisker/prettier-config@^1.0.6":
version "1.0.6"
resolved "http://registry.npm.taobao.org/@fisker/prettier-config/download/@fisker/prettier-config-1.0.6.tgz#3bff2eae629fdfc75175b0b8f74e82691daca3a7"
integrity sha1-O/8urmKf38dRdbC4906CaR2so6c=
dependencies:
"@fisker/eslint-config" "^1.0.5"

"@marionebl/sander@^0.6.0":
version "0.6.1"
resolved "https://registry.yarnpkg.com/@marionebl/sander/-/sander-0.6.1.tgz#1958965874f24bc51be48875feb50d642fc41f7b"
Expand Down Expand Up @@ -497,7 +534,7 @@ acorn-jsx@^5.0.0:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e"
integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==

acorn@^6.0.2, acorn@^6.0.7:
acorn@^6.0.7:
version "6.1.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f"
integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==
Expand Down Expand Up @@ -1639,26 +1676,6 @@ eslint-config-airbnb-base@^13.1.0:
object.assign "^4.1.0"
object.entries "^1.0.4"

eslint-config-fisker@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/eslint-config-fisker/-/eslint-config-fisker-4.5.0.tgz#0a7f64f20d783106f9b07aacf998030b17164ea7"
integrity sha512-kwUUxCzbx0nxb/fFIE3egfou9Wd5Tc7NruZyPI/8otYduN+voqGxv4BqZ7f5GlwFMvGNP/olKLMiykjWk7QwOw==
dependencies:
eslint-config-airbnb-base "^13.1.0"
eslint-config-prettier "^4.1.0"
eslint-plugin-es "^1.4.0"
eslint-plugin-eslint-comments "^3.1.1"
eslint-plugin-html "^5.0.3"
eslint-plugin-import "^2.17.2"
eslint-plugin-jasmine "^2.10.1"
eslint-plugin-jest "^22.4.1"
eslint-plugin-mocha "^5.3.0"
eslint-plugin-node "^8.0.1"
eslint-plugin-prettier "^3.0.1"
eslint-plugin-promise "^4.1.1"
eslint-plugin-unicorn "^8.0.2"
eslint-plugin-vue "^5.2.2"

eslint-config-prettier@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.1.0.tgz#181364895899fff9fd3605fecb5c4f20e7d5f395"
Expand All @@ -1682,7 +1699,7 @@ eslint-module-utils@^2.4.0:
debug "^2.6.8"
pkg-dir "^2.0.0"

eslint-plugin-es@^1.3.1, eslint-plugin-es@^1.4.0:
eslint-plugin-es@^1.3.1:
version "1.4.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6"
integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==
Expand Down Expand Up @@ -1722,23 +1739,6 @@ eslint-plugin-import@^2.17.2:
read-pkg-up "^2.0.0"
resolve "^1.10.0"

eslint-plugin-jasmine@^2.10.1:
version "2.10.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-jasmine/-/eslint-plugin-jasmine-2.10.1.tgz#5733b709e751f4bc40e31e1c16989bd2cdfbec97"
integrity sha1-VzO3CedR9LxA4x4cFpib0s377Jc=

eslint-plugin-jest@^22.4.1:
version "22.4.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.4.1.tgz#a5fd6f7a2a41388d16f527073b778013c5189a9c"
integrity sha512-gcLfn6P2PrFAVx3AobaOzlIEevpAEf9chTpFZz7bYfc7pz8XRv7vuKTIE4hxPKZSha6XWKKplDQ0x9Pq8xX2mg==

eslint-plugin-mocha@^5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-5.3.0.tgz#cf3eb18ae0e44e433aef7159637095a7cb19b15b"
integrity sha512-3uwlJVLijjEmBeNyH60nzqgA1gacUWLUmcKV8PIGNvj1kwP/CTgAWQHn2ayyJVwziX+KETkr9opNwT1qD/RZ5A==
dependencies:
ramda "^0.26.1"

eslint-plugin-node@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz#55ae3560022863d141fa7a11799532340a685964"
Expand Down Expand Up @@ -1780,19 +1780,12 @@ eslint-plugin-unicorn@^8.0.2:
reserved-words "^0.1.2"
safe-regex "^2.0.1"

eslint-plugin-vue@^5.2.2:
version "5.2.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-5.2.2.tgz#86601823b7721b70bc92d54f1728cfc03b36283c"
integrity sha512-CtGWH7IB0DA6BZOwcV9w9q3Ri6Yuo8qMjx05SmOGJ6X6E0Yo3y9E/gQ5tuNxg2dEt30tRnBoFTbvtmW9iEoyHA==
dependencies:
vue-eslint-parser "^5.0.0"

eslint-restricted-globals@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7"
integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=

eslint-scope@^4.0.0, eslint-scope@^4.0.3:
eslint-scope@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
Expand Down Expand Up @@ -1867,15 +1860,6 @@ espower-location-detector@^1.0.0:
source-map "^0.5.0"
xtend "^4.0.0"

espree@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f"
integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==
dependencies:
acorn "^6.0.2"
acorn-jsx "^5.0.0"
eslint-visitor-keys "^1.0.0"

espree@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a"
Expand Down Expand Up @@ -3958,11 +3942,6 @@ prepend-http@^1.0.1:
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=

prettier-config-fisker@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/prettier-config-fisker/-/prettier-config-fisker-1.0.3.tgz#8115210d9d95b44d0dcf371dd70b64f5bf1e34fa"
integrity sha512-r366OKbMc4kn37wrpl3IP0MTvTGJedse4+AQIVrG9SZ0CC61M+p8OdO78Epjx3GCWyzzItbuZNqiAk/UMUNMXg==

prettier-linter-helpers@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
Expand Down Expand Up @@ -4025,11 +4004,6 @@ quick-lru@^1.0.0:
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8"
integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=

ramda@^0.26.1:
version "0.26.1"
resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06"
integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==

rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@~1.2.7:
version "1.2.8"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
Expand Down Expand Up @@ -5031,18 +5005,6 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"

vue-eslint-parser@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz#00f4e4da94ec974b821a26ff0ed0f7a78402b8a1"
integrity sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g==
dependencies:
debug "^4.1.0"
eslint-scope "^4.0.0"
eslint-visitor-keys "^1.0.0"
espree "^4.1.0"
esquery "^1.0.1"
lodash "^4.17.11"

wcwidth@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
Expand Down

0 comments on commit bb40453

Please sign in to comment.