Skip to content

Commit f8b5350

Browse files
committed
build(husky): add format & lint pre-commit
1 parent cb97c2c commit f8b5350

File tree

3 files changed

+125
-4
lines changed

3 files changed

+125
-4
lines changed

.husky/pre-commit

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
yarn format
2+
yarn build:lint

package.json

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,13 @@
2828
"test": "mocha tests --recursive ./dist/tests/",
2929
"lint": "eslint .",
3030
"lint:eslint-docs": "update:eslint-docs --check",
31-
"format": "prettier . --write",
31+
"format": "pretty-quick",
32+
"format:all": "prettier . --write",
3233
"update:eslint-docs": "eslint-doc-generator",
33-
"publish": "yarn build; npm publish"
34+
"publish": "yarn build; npm publish",
35+
"postinstall": "husky",
36+
"prepack": "pinst --disable",
37+
"postpack": "pinst --enable"
3438
},
3539
"dependencies": {
3640
"requireindex": "^1.2.0"
@@ -46,10 +50,13 @@
4650
"eslint-doc-generator": "^1.0.0",
4751
"eslint-plugin-eslint-plugin": "^5.0.0",
4852
"eslint-plugin-node": "^11.1.0",
53+
"husky": "^9.0.11",
4954
"mocha": "^10.0.0",
5055
"nodemon": "^2.0.22",
5156
"npm-run-all": "^4.1.5",
57+
"pinst": "^3.0.0",
5258
"prettier": "3.3.2",
59+
"pretty-quick": "^4.0.0",
5360
"typescript": "^5.0.4"
5461
},
5562
"engines": {

yarn.lock

Lines changed: 114 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ cross-spawn@^6.0.5:
444444
shebang-command "^1.2.0"
445445
which "^1.2.9"
446446

447-
cross-spawn@^7.0.2:
447+
cross-spawn@^7.0.2, cross-spawn@^7.0.3:
448448
version "7.0.3"
449449
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
450450
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -786,6 +786,21 @@ esutils@^2.0.2:
786786
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
787787
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
788788

789+
execa@^5.1.1:
790+
version "5.1.1"
791+
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
792+
integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
793+
dependencies:
794+
cross-spawn "^7.0.3"
795+
get-stream "^6.0.0"
796+
human-signals "^2.1.0"
797+
is-stream "^2.0.0"
798+
merge-stream "^2.0.0"
799+
npm-run-path "^4.0.1"
800+
onetime "^5.1.2"
801+
signal-exit "^3.0.3"
802+
strip-final-newline "^2.0.0"
803+
789804
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
790805
version "3.1.3"
791806
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@@ -910,6 +925,11 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@
910925
has "^1.0.3"
911926
has-symbols "^1.0.3"
912927

928+
get-stream@^6.0.0:
929+
version "6.0.1"
930+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
931+
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
932+
913933
get-symbol-description@^1.0.0:
914934
version "1.0.0"
915935
resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
@@ -1055,6 +1075,16 @@ hosted-git-info@^2.1.4:
10551075
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
10561076
integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
10571077

1078+
human-signals@^2.1.0:
1079+
version "2.1.0"
1080+
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
1081+
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
1082+
1083+
husky@^9.0.11:
1084+
version "9.0.11"
1085+
resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.11.tgz#fc91df4c756050de41b3e478b2158b87c1e79af9"
1086+
integrity sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==
1087+
10581088
ignore-by-default@^1.0.1:
10591089
version "1.0.1"
10601090
resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
@@ -1065,6 +1095,11 @@ ignore@^5.1.1, ignore@^5.2.0:
10651095
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
10661096
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
10671097

1098+
ignore@^5.3.0:
1099+
version "5.3.1"
1100+
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
1101+
integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
1102+
10681103
import-fresh@^3.0.0, import-fresh@^3.2.1:
10691104
version "3.3.0"
10701105
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
@@ -1214,6 +1249,11 @@ is-shared-array-buffer@^1.0.2:
12141249
dependencies:
12151250
call-bind "^1.0.2"
12161251

1252+
is-stream@^2.0.0:
1253+
version "2.0.1"
1254+
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
1255+
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
1256+
12171257
is-string@^1.0.5, is-string@^1.0.7:
12181258
version "1.0.7"
12191259
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
@@ -1380,6 +1420,11 @@ memorystream@^0.3.1:
13801420
resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
13811421
integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==
13821422

1423+
merge-stream@^2.0.0:
1424+
version "2.0.0"
1425+
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
1426+
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
1427+
13831428
merge2@^1.3.0, merge2@^1.4.1:
13841429
version "1.4.1"
13851430
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
@@ -1393,6 +1438,11 @@ micromatch@^4.0.4:
13931438
braces "^3.0.2"
13941439
picomatch "^2.3.1"
13951440

1441+
mimic-fn@^2.1.0:
1442+
version "2.1.0"
1443+
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
1444+
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
1445+
13961446
minimatch@5.0.1:
13971447
version "5.0.1"
13981448
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b"
@@ -1434,6 +1484,11 @@ mocha@^10.0.0:
14341484
yargs-parser "20.2.4"
14351485
yargs-unparser "2.0.0"
14361486

1487+
mri@^1.2.0:
1488+
version "1.2.0"
1489+
resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b"
1490+
integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==
1491+
14371492
ms@2.1.2:
14381493
version "2.1.2"
14391494
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
@@ -1520,6 +1575,13 @@ npm-run-all@^4.1.5:
15201575
shell-quote "^1.6.1"
15211576
string.prototype.padend "^3.0.0"
15221577

1578+
npm-run-path@^4.0.1:
1579+
version "4.0.1"
1580+
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
1581+
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
1582+
dependencies:
1583+
path-key "^3.0.0"
1584+
15231585
object-inspect@^1.12.3, object-inspect@^1.9.0:
15241586
version "1.12.3"
15251587
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
@@ -1547,6 +1609,13 @@ once@^1.3.0:
15471609
dependencies:
15481610
wrappy "1"
15491611

1612+
onetime@^5.1.2:
1613+
version "5.1.2"
1614+
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
1615+
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
1616+
dependencies:
1617+
mimic-fn "^2.1.0"
1618+
15501619
optionator@^0.9.1:
15511620
version "0.9.1"
15521621
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
@@ -1613,7 +1682,7 @@ path-key@^2.0.1:
16131682
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
16141683
integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
16151684

1616-
path-key@^3.1.0:
1685+
path-key@^3.0.0, path-key@^3.1.0:
16171686
version "3.1.1"
16181687
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
16191688
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
@@ -1635,11 +1704,21 @@ path-type@^4.0.0:
16351704
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
16361705
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
16371706

1707+
picocolors@^1.0.0:
1708+
version "1.0.1"
1709+
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
1710+
integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
1711+
16381712
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
16391713
version "2.3.1"
16401714
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
16411715
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
16421716

1717+
picomatch@^3.0.1:
1718+
version "3.0.1"
1719+
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516"
1720+
integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==
1721+
16431722
pidtree@^0.3.0:
16441723
version "0.3.1"
16451724
resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a"
@@ -1650,6 +1729,11 @@ pify@^3.0.0:
16501729
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
16511730
integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==
16521731

1732+
pinst@^3.0.0:
1733+
version "3.0.0"
1734+
resolved "https://registry.yarnpkg.com/pinst/-/pinst-3.0.0.tgz#80dec0a85f1f993c6084172020f3dbf512897eec"
1735+
integrity sha512-cengSmBxtCyaJqtRSvJorIIZXMXg+lJ3sIljGmtBGUVonMnMsVJbnzl6jGN1HkOWwxNuJynCJ2hXxxqCQrFDdw==
1736+
16531737
prelude-ls@^1.2.1:
16541738
version "1.2.1"
16551739
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -1669,6 +1753,19 @@ pretty-format@^29.5.0:
16691753
ansi-styles "^5.0.0"
16701754
react-is "^18.0.0"
16711755

1756+
pretty-quick@^4.0.0:
1757+
version "4.0.0"
1758+
resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-4.0.0.tgz#ea5cce85a5804bfbec7327b0e064509155d03f39"
1759+
integrity sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==
1760+
dependencies:
1761+
execa "^5.1.1"
1762+
find-up "^5.0.0"
1763+
ignore "^5.3.0"
1764+
mri "^1.2.0"
1765+
picocolors "^1.0.0"
1766+
picomatch "^3.0.1"
1767+
tslib "^2.6.2"
1768+
16721769
pstree.remy@^1.1.8:
16731770
version "1.1.8"
16741771
resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a"
@@ -1855,6 +1952,11 @@ side-channel@^1.0.4:
18551952
get-intrinsic "^1.0.2"
18561953
object-inspect "^1.9.0"
18571954

1955+
signal-exit@^3.0.3:
1956+
version "3.0.7"
1957+
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
1958+
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
1959+
18581960
simple-update-notifier@^1.0.7:
18591961
version "1.1.0"
18601962
resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82"
@@ -1950,6 +2052,11 @@ strip-bom@^3.0.0:
19502052
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
19512053
integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
19522054

2055+
strip-final-newline@^2.0.0:
2056+
version "2.0.0"
2057+
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
2058+
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
2059+
19532060
strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
19542061
version "3.1.1"
19552062
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
@@ -2010,6 +2117,11 @@ tslib@^2.0.3:
20102117
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
20112118
integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
20122119

2120+
tslib@^2.6.2:
2121+
version "2.6.3"
2122+
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0"
2123+
integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==
2124+
20132125
tsutils@^3.21.0:
20142126
version "3.21.0"
20152127
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"

0 commit comments

Comments
 (0)