Skip to content
This repository was archived by the owner on Apr 5, 2024. It is now read-only.

Commit 09850e7

Browse files
committed
feat: add lint-staged
1 parent efa69b0 commit 09850e7

File tree

4 files changed

+140
-4
lines changed

4 files changed

+140
-4
lines changed

.husky/pre-commit

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/sh
2+
. "$(dirname "$0")/_/husky.sh"
3+
4+
yarn lint-staged
5+
git add -A

lint-staged.config.js

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const path = require("path");
2+
3+
const buildEslintCommand = filenames =>
4+
`next lint --fix --file ${filenames
5+
.map(f => path.relative(process.cwd(), f))
6+
.join(" --file ")}`;
7+
8+
module.exports = {
9+
"**/*.ts?(x)": () => "tsc -p tsconfig.json --noEmit",
10+
"*.{js,ts,tsx,jsx}": ["jest --bail --findRelatedTests", buildEslintCommand],
11+
};

package.json

+4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
"build": "next build",
99
"start": "next start",
1010
"lint": "next lint",
11+
"prepare": "husky install",
12+
"lint-staged": "lint-staged",
1113
"export": "next export",
1214
"build:export": "npm run build && npm run export",
1315
"e2e": "cypress open",
@@ -51,7 +53,9 @@
5153
"eslint-config-next": "12.1.0",
5254
"eslint-plugin-storybook": "^0.5.7",
5355
"gh-pages": "^3.2.3",
56+
"husky": "^7.0.4",
5457
"jest": "^27.5.1",
58+
"lint-staged": "^12.3.7",
5559
"start-server-and-test": "^1.14.0",
5660
"typescript": "4.6.2"
5761
}

yarn.lock

+120-4
Original file line numberDiff line numberDiff line change
@@ -3661,6 +3661,11 @@ ansi-regex@^5.0.1:
36613661
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
36623662
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
36633663

3664+
ansi-regex@^6.0.1:
3665+
version "6.0.1"
3666+
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
3667+
integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
3668+
36643669
ansi-styles@^3.2.1:
36653670
version "3.2.1"
36663671
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
@@ -3680,6 +3685,11 @@ ansi-styles@^5.0.0:
36803685
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
36813686
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
36823687

3688+
ansi-styles@^6.0.0:
3689+
version "6.1.0"
3690+
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3"
3691+
integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==
3692+
36833693
ansi-to-html@^0.6.11:
36843694
version "0.6.15"
36853695
resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.15.tgz#ac6ad4798a00f6aa045535d7f6a9cb9294eebea7"
@@ -4783,6 +4793,14 @@ cli-truncate@^2.1.0:
47834793
slice-ansi "^3.0.0"
47844794
string-width "^4.2.0"
47854795

4796+
cli-truncate@^3.1.0:
4797+
version "3.1.0"
4798+
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389"
4799+
integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==
4800+
dependencies:
4801+
slice-ansi "^5.0.0"
4802+
string-width "^5.0.0"
4803+
47864804
cliui@^7.0.2:
47874805
version "7.0.4"
47884806
resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
@@ -4905,6 +4923,11 @@ commander@^6.2.1:
49054923
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
49064924
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
49074925

4926+
commander@^8.3.0:
4927+
version "8.3.0"
4928+
resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
4929+
integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
4930+
49084931
common-path-prefix@^3.0.0:
49094932
version "3.0.0"
49104933
resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0"
@@ -5616,6 +5639,11 @@ duplexify@^3.4.2, duplexify@^3.6.0:
56165639
readable-stream "^2.0.0"
56175640
stream-shift "^1.0.0"
56185641

5642+
eastasianwidth@^0.2.0:
5643+
version "0.2.0"
5644+
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
5645+
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
5646+
56195647
ecc-jsbn@~0.1.1:
56205648
version "0.1.2"
56215649
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
@@ -6160,7 +6188,7 @@ [email protected]:
61606188
signal-exit "^3.0.2"
61616189
strip-final-newline "^2.0.0"
61626190

6163-
[email protected], execa@^5.0.0:
6191+
[email protected], execa@^5.0.0, execa@^5.1.1:
61646192
version "5.1.1"
61656193
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
61666194
integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
@@ -7372,6 +7400,11 @@ human-signals@^2.1.0:
73727400
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
73737401
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
73747402

7403+
husky@^7.0.4:
7404+
version "7.0.4"
7405+
resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535"
7406+
integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==
7407+
73757408
73767409
version "0.4.24"
73777410
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -7702,6 +7735,11 @@ is-fullwidth-code-point@^3.0.0:
77027735
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
77037736
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
77047737

7738+
is-fullwidth-code-point@^4.0.0:
7739+
version "4.0.0"
7740+
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88"
7741+
integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
7742+
77057743
is-function@^1.0.2:
77067744
version "1.0.2"
77077745
resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08"
@@ -8714,11 +8752,36 @@ [email protected]:
87148752
dependencies:
87158753
immediate "~3.0.5"
87168754

8755+
8756+
version "2.0.4"
8757+
resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082"
8758+
integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==
8759+
87178760
lines-and-columns@^1.1.6:
87188761
version "1.2.4"
87198762
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
87208763
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
87218764

8765+
lint-staged@^12.3.7:
8766+
version "12.3.7"
8767+
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.3.7.tgz#ad0e2014302f704f9cf2c0ebdb97ac63d0f17be0"
8768+
integrity sha512-/S4D726e2GIsDVWIk1XGvheCaDm1SJRQp8efamZFWJxQMVEbOwSysp7xb49Oo73KYCdy97mIWinhlxcoNqIfIQ==
8769+
dependencies:
8770+
cli-truncate "^3.1.0"
8771+
colorette "^2.0.16"
8772+
commander "^8.3.0"
8773+
debug "^4.3.3"
8774+
execa "^5.1.1"
8775+
lilconfig "2.0.4"
8776+
listr2 "^4.0.1"
8777+
micromatch "^4.0.4"
8778+
normalize-path "^3.0.0"
8779+
object-inspect "^1.12.0"
8780+
pidtree "^0.5.0"
8781+
string-argv "^0.3.1"
8782+
supports-color "^9.2.1"
8783+
yaml "^1.10.2"
8784+
87228785
listr2@^3.8.3:
87238786
version "3.14.0"
87248787
resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e"
@@ -8733,6 +8796,20 @@ listr2@^3.8.3:
87338796
through "^2.3.8"
87348797
wrap-ansi "^7.0.0"
87358798

8799+
listr2@^4.0.1:
8800+
version "4.0.5"
8801+
resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5"
8802+
integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==
8803+
dependencies:
8804+
cli-truncate "^2.1.0"
8805+
colorette "^2.0.16"
8806+
log-update "^4.0.0"
8807+
p-map "^4.0.0"
8808+
rfdc "^1.3.0"
8809+
rxjs "^7.5.5"
8810+
through "^2.3.8"
8811+
wrap-ansi "^7.0.0"
8812+
87368813
loader-runner@^2.4.0:
87378814
version "2.4.0"
87388815
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
@@ -9495,7 +9572,7 @@ object-copy@^0.1.0:
94959572
define-property "^0.2.5"
94969573
kind-of "^3.0.3"
94979574

9498-
object-inspect@^1.11.0, object-inspect@^1.9.0:
9575+
object-inspect@^1.11.0, object-inspect@^1.12.0, object-inspect@^1.9.0:
94999576
version "1.12.0"
95009577
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0"
95019578
integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==
@@ -9947,6 +10024,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.0:
994710024
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
994810025
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
994910026

10027+
pidtree@^0.5.0:
10028+
version "0.5.0"
10029+
resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1"
10030+
integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==
10031+
995010032
pify@^2.0.0, pify@^2.2.0:
995110033
version "2.3.0"
995210034
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -10913,7 +10995,7 @@ run-queue@^1.0.0, run-queue@^1.0.3:
1091310995
dependencies:
1091410996
aproba "^1.1.1"
1091510997

10916-
rxjs@^7.1.0, rxjs@^7.5.1:
10998+
rxjs@^7.1.0, rxjs@^7.5.1, rxjs@^7.5.5:
1091710999
version "7.5.5"
1091811000
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f"
1091911001
integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==
@@ -11205,6 +11287,14 @@ slice-ansi@^4.0.0:
1120511287
astral-regex "^2.0.0"
1120611288
is-fullwidth-code-point "^3.0.0"
1120711289

11290+
slice-ansi@^5.0.0:
11291+
version "5.0.0"
11292+
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a"
11293+
integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==
11294+
dependencies:
11295+
ansi-styles "^6.0.0"
11296+
is-fullwidth-code-point "^4.0.0"
11297+
1120811298
snapdragon-node@^2.0.1:
1120911299
version "2.1.1"
1121011300
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -11463,6 +11553,11 @@ stream-shift@^1.0.0:
1146311553
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
1146411554
integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
1146511555

11556+
string-argv@^0.3.1:
11557+
version "0.3.1"
11558+
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
11559+
integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
11560+
1146611561
string-length@^4.0.1:
1146711562
version "4.0.2"
1146811563
resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
@@ -11489,6 +11584,15 @@ string-width@^1.0.1:
1148911584
is-fullwidth-code-point "^3.0.0"
1149011585
strip-ansi "^6.0.1"
1149111586

11587+
string-width@^5.0.0:
11588+
version "5.1.2"
11589+
resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
11590+
integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
11591+
dependencies:
11592+
eastasianwidth "^0.2.0"
11593+
emoji-regex "^9.2.2"
11594+
strip-ansi "^7.0.1"
11595+
1149211596
"string.prototype.matchall@^4.0.0 || ^3.0.1", string.prototype.matchall@^4.0.6:
1149311597
version "4.0.6"
1149411598
resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa"
@@ -11565,6 +11669,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1156511669
dependencies:
1156611670
ansi-regex "^5.0.1"
1156711671

11672+
strip-ansi@^7.0.1:
11673+
version "7.0.1"
11674+
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2"
11675+
integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==
11676+
dependencies:
11677+
ansi-regex "^6.0.1"
11678+
1156811679
strip-bom@^3.0.0:
1156911680
version "3.0.0"
1157011681
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -11652,6 +11763,11 @@ supports-color@^8.0.0, supports-color@^8.1.1:
1165211763
dependencies:
1165311764
has-flag "^4.0.0"
1165411765

11766+
supports-color@^9.2.1:
11767+
version "9.2.1"
11768+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.1.tgz#599dc9d45acf74c6176e0d880bab1d7d718fe891"
11769+
integrity sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==
11770+
1165511771
supports-hyperlinks@^2.0.0:
1165611772
version "2.2.0"
1165711773
resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb"
@@ -12740,7 +12856,7 @@ yallist@^4.0.0:
1274012856
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
1274112857
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1274212858

12743-
yaml@^1.10.0, yaml@^1.7.2:
12859+
yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2:
1274412860
version "1.10.2"
1274512861
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
1274612862
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==

0 commit comments

Comments
 (0)