From 0bf1155077882cf49c5664d4be65a570c30fc20a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Grzegorzewski?= <4864089+spamshaker@users.noreply.github.com> Date: Sat, 23 Nov 2024 18:05:25 +0100 Subject: [PATCH] feat: added support for ignore pattern to cli (#329) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: added support for ignore pattern to cli - defaults to node_modules resolves #328 * feat: added support for ignore pattern to cli - CR Fixes resolves #328 * feat: added support for ignore pattern to cli - Fix snapshots resolves #328 * feat: added support for ignore pattern to cli - Little fix for ordering of parameters resolves #328 --------- Co-authored-by: Michał Grzegorzewski --- README.md | 2 ++ cli.js | 26 +++++++++++++++++++++----- tests/cli.js | 5 +++++ tests/snapshots/cli.js.md | 22 ++++++++++++++++++++++ tests/snapshots/cli.js.snap | Bin 3992 -> 4121 bytes tests/snapshots/eslint.js.snap | Bin 853 -> 833 bytes tests/snapshots/fields.js.snap | Bin 414 -> 414 bytes tests/snapshots/main.js.snap | Bin 1415 -> 1408 bytes tests/snapshots/prettier.js.snap | Bin 485 -> 493 bytes 9 files changed, 50 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2ffc0b80..ed7703e6 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,8 @@ CLI also supports multi file paths or [`glob`](https://github.com/sindresorhus/g $ sort-package-json "my-package/package.json" "other-package/package.json" $ sort-package-json "package.json" "packages/*/package.json" + +$ sort-package-json "package.json" "packages/*/package.json" --ignore "packages/one-package" ``` #### `--check` flag diff --git a/cli.js b/cli.js index 91e63d62..ef3c9b10 100755 --- a/cli.js +++ b/cli.js @@ -23,6 +23,7 @@ If file/glob is omitted, './package.json' file will be processed. -c, --check Check if files are sorted -q, --quiet Don't output success messages -h, --help Display this help + -i, --ignore An array of glob patterns to ignore -v, --version Display the package version --stdin Read package.json from stdin `, @@ -43,8 +44,8 @@ function sortPackageJsonFile(file, reporter, isCheck) { reporter.reportChanged(file) } -function sortPackageJsonFiles(patterns, options) { - const files = globSync(patterns) +function sortPackageJsonFiles(patterns, { ignore, ...options }) { + const files = globSync(patterns, { ignore }) const reporter = new Reporter(files, options) const { isCheck } = options @@ -55,7 +56,6 @@ function sortPackageJsonFiles(patterns, options) { reporter.reportFailed(file, error) } } - reporter.printSummary() } @@ -64,7 +64,10 @@ async function sortPackageJsonFromStdin() { } function run() { - const cliArguments = process.argv.slice(2) + const cliArguments = process.argv + .slice(2) + .map((arg) => arg.split('=')) + .flat() if ( cliArguments.some((argument) => argument === '--help' || argument === '-h') @@ -85,14 +88,23 @@ function run() { } const patterns = [] + const ignore = [] let isCheck = false let shouldBeQuiet = false + let lastArg for (const argument of cliArguments) { + if (lastArg === '--ignore' || lastArg === '-i') { + ignore.push(argument) + lastArg = undefined + continue + } if (argument === '--check' || argument === '-c') { isCheck = true } else if (argument === '--quiet' || argument === '-q') { shouldBeQuiet = true + } else if (argument === '--ignore' || argument === '-i') { + lastArg = argument } else { patterns.push(argument) } @@ -102,7 +114,11 @@ function run() { patterns[0] = 'package.json' } - sortPackageJsonFiles(patterns, { isCheck, shouldBeQuiet }) + if (!ignore.length) { + ignore[0] = 'node_modules' + } + + sortPackageJsonFiles(patterns, { ignore, isCheck, shouldBeQuiet }) } run() diff --git a/tests/cli.js b/tests/cli.js index d68ee298..a4234d1a 100644 --- a/tests/cli.js +++ b/tests/cli.js @@ -500,3 +500,8 @@ test('run `cli --stdin` with input from stdin with \\r\\n', macro.testCLI, { message: 'The line feed should be CRLF in output', stdin: `{\r\n "description": "Description",\r\n "name": "Name"\r\n}\r\n`, }) + +test('run `cli --ignore=abc`', macro.testCLI, { + args: ['--ignore=abc'], + message: 'Should not fail on adding ignore pattern', +}) diff --git a/tests/snapshots/cli.js.md b/tests/snapshots/cli.js.md index 8fcaed19..160f1778 100644 --- a/tests/snapshots/cli.js.md +++ b/tests/snapshots/cli.js.md @@ -24,6 +24,7 @@ Generated by [AVA](https://avajs.dev). -c, --check Check if files are sorted␊ -q, --quiet Don't output success messages␊ -h, --help Display this help␊ + -i, --ignore An array of glob patterns to ignore␊ -v, --version Display the package version␊ --stdin Read package.json from stdin␊ ␊ @@ -52,6 +53,7 @@ Generated by [AVA](https://avajs.dev). -c, --check Check if files are sorted␊ -q, --quiet Don't output success messages␊ -h, --help Display this help␊ + -i, --ignore An array of glob patterns to ignore␊ -v, --version Display the package version␊ --stdin Read package.json from stdin␊ ␊ @@ -79,6 +81,7 @@ Generated by [AVA](https://avajs.dev). -c, --check Check if files are sorted␊ -q, --quiet Don't output success messages␊ -h, --help Display this help␊ + -i, --ignore An array of glob patterns to ignore␊ -v, --version Display the package version␊ --stdin Read package.json from stdin␊ ␊ @@ -107,6 +110,7 @@ Generated by [AVA](https://avajs.dev). -c, --check Check if files are sorted␊ -q, --quiet Don't output success messages␊ -h, --help Display this help␊ + -i, --ignore An array of glob patterns to ignore␊ -v, --version Display the package version␊ --stdin Read package.json from stdin␊ ␊ @@ -205,6 +209,7 @@ Generated by [AVA](https://avajs.dev). -c, --check Check if files are sorted␊ -q, --quiet Don't output success messages␊ -h, --help Display this help␊ + -i, --ignore An array of glob patterns to ignore␊ -v, --version Display the package version␊ --stdin Read package.json from stdin␊ ␊ @@ -1409,3 +1414,20 @@ Generated by [AVA](https://avajs.dev). `, }, } + +## run `cli --ignore=abc` + +> Should not fail on adding ignore pattern + + { + args: [ + '--ignore=abc', + ], + fixtures: [], + result: { + errorCode: 2, + stderr: `No matching files.␊ + `, + stdout: '', + }, + } diff --git a/tests/snapshots/cli.js.snap b/tests/snapshots/cli.js.snap index 87200f1f73316f2f0bb08f4cb3182fd580383e0c..077c58d9b20aae025717ddba8f76f34ae3e78092 100644 GIT binary patch literal 4121 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 X)ohl1jdzNEhr<5>yV2WPdYb?M9%bGg literal 3992 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 diff --git a/tests/snapshots/eslint.js.snap b/tests/snapshots/eslint.js.snap index 4d7a8989250c4879d01e285957cc18c281dcb2c7..4ecd6584e4d735f7087e277bf2c716fbc1a60b8f 100644 GIT binary patch literal 833 zcmV-H1HSx0RzV{3kHe*)tY~xf-x%S9N+Dh3 z1jsx?(jSWm00000000B+R!?u!Fci15wnLMqZ5k&|RwOR4tb*gj0f`BT(+-FOnkMEX zudP?lj%;UJK|3J60B3IO#*Od57vYN_p*T*`rfIgRNaL^`>i5@j-uwCY{CyB|8IARq zD=^G(;Gj7Z=9Lr!He_1RM31D=pReMW8v4HTXa%jJ?1vxV?jAzuB|>P!Ln!bN`m=)2 zHtucV-a&W*k-@kWH#avCUPrit@CMq(-b1{CaCZxLnMhLOH18+=v_^Q*ny`*=5n1_oZ`ZO zh^?m(okyh{tUVW;Ri1%TEY3ZZ;=DsHL&~kM5Q`Hi8G+U^|GZLhULoHI&IFVdt6PdQ zK_ZoTCsGaZKGQVhu+J1khMl>ywg$LeXckHRH9{`eE^F;vm3dXIzPeuX_GD^q+U@)P z-f@3-W^P?$w|j{KV6# zem9Yh@(}v!A@r-WBEif$FoU3&fBE(O{Sjck`i!)R|Lb1A(5; zL=_X~@Th@Bf0QiRMO)stP76q<$Jn7OM*-LjYRt{PC%Y$Az3jNOHH=?Z0nStptWWp0 z34ik`f8C^SpZ4t&fAQ3xE7{!SC#}<;T>Anbw|E7RfA$ivJAKHa&4_8D9XJi+oPJ8$A*aCJ+-(9E=A;h)mnJ zyTcAM&CC>74F}^F@a#=)-uw=J5x1?Rz3aWKkz$yYJ91ljh5$y>iNCm zdE0(>%kLgWrw~iuFQ%KDo1VY!`EAeNP?*+3f5r1VTYd-AG?UJ1{qR4o1wn82486TT z`;_;CnyOzr)&hF2Z9O$_9Bb+y&*rd(xmV$9YC5EKEqeEep_GLi)9{4zM1E$&HxM8J$3>^iyOv+-S% z${Nx6RVO-J3CKzly14i|VvZKHu&e0@{5g`$Z z$Dt~I#tptcP^_D<#E{C2h1ZY=1MlY(%l)dez;i&c>?c^HMEx;}&cIT7&Rbb=DlWq@ zOs3%6F@3K>(KO4K*0sMQROz}ck>uMJvA!5pTK_-Axw~tz^wnNKs9NcK+9;h?8fygf zqJ+vj&e3s=iheItwBv2HzP1;TbheEhxpd@&)l|c-_dVG?o#xB5OOwOo)fC`dRbaKd zThi5c_?g%ZUEUxUbb7l}Q@3}o(9rQqx3|>w=TbJ;`3<76`@0Lb;0wSYZuu49F4sT! z5->Zx*JwGyA`p(85)%?c5Xcb(1I&dC)PD_UKxNOZy4ty?%spkAC?gC97m9!i+vp64mDZ3VaDk93M+~U3 zLc@KMXp=-AFWPwFcj0RMmj@!0)?{Ct$OD*qE7T%I{S@48%UZ{f?0)8Cnt&ikZqU{m zuN3Mm*@}{r00000000BslEF&DKoEx8iU_^=21CwGbMHwIym%2jh?HVB$s}2`$%dUt zk(M6xP3(L420oO#X(cV~MFkP}urNFS3^V_JuW6)oT+quJS+YVE>xzwx8rFs+RidU` zGd-`9M6kH;zn}EZdhYa3d*_3<{&EQ5?bdh`nA$ghWqaFfB}%lf-Ze_j;Zm9cl{fm# zVkx9@>8dU-3MYwM#W>dErs#ByX;nFMJqdyXVbCcboQ`uzU`KCM0>n}&h!8kONTneL zR9IrgU6F7_qKg+UUU+S|8vW&k2(A6e7dNu^Y`8)tB2-WQ?Y6Bp4B_r)PG=zqg75}) zt?){sO2REDX(W;ik03Hg_Yk=ow1{lfhj1iFv5_@PUAg((2!1W%LS*PalCB_XWV^B8 zhK`y?);%_2F3FFj^{(7_DawX|gLYkq++g~x7Gs)czX;p^Ht5Ij&iB~eP-dz900Rus I)7Jz50DDNlL;wH) diff --git a/tests/snapshots/main.js.snap b/tests/snapshots/main.js.snap index 99888a068177e3e01a8fcba32275ab1a308c7d6b..6d8165db0c83995b3ed793379f1a128f1df5200a 100644 GIT binary patch literal 1408 zcmV-`1%LWMRzVd{Gi1+0BV3ADI7VrYOwNLqYQaJBU4d zNWVvWk&SjbxSCC~H1^%yVYh?_YlQAbFU$zx31e_%cb7Z<8c>{3J=fev%~r ze32wC(v#=u$=lTxWHwD(^YrvINuMU^CrSD&d66D{o<2y@&I{N$ZACJz? z&c8C*21<5**_q!so@JKrnB_{o-hs5nIgB{+GzPp*7O}P6D2*&x#P0A;Za}e>KKtuaHMulIrEP^cQgjSY0d ztz_Otia^BP6tLI9RQwP1i z8$QV)MSfgEX4?lBLa&=ju>CKr1kyW*I>>@ccxN@w@Y(io;9)w^|1uc&241z#zJ~*k z9}B58bRHg)#|y3^DE1?JzpfyXUzru z4jIG=hR+N~VrrRliI1Z(kuR7Kp!eS~DJgRM1o~`L2^A}Fy{%13ZMGQHWFW^g`fzY0 zrfi=`VXlKl*;ONK>%A?8o&iH%`wXRhMp$KnuN^}Mak#%RF$~QpPgjuck)PfhCRssY zG+@XJKo9RQ;-a3-jveLc3R#ut;YMOKT+n%he1{r!4f+S6R!n%k!;Ocv+^?pw8)e7g z+6!oU-X$?WJekDTE5XgC`w03(=;LqK0@U71T)Z0)YhanZkj(NO-mHhchX7{0NT%mq zq;wPMVee5X!>yw1CO}>_O4RO~FeG;nb<<^0Cd{7<&*AlY4Vl*h=yi99Tol}1Y?Ru1 zrvXQvs@54U%v;1Z$5C(&q1gmR2T0q2pcmyWWG$;4F8PiZE;C=&bny1ny z8Xqo;Mnx0(y3E^cxwT1=)fQh78OZJEHyzuU#4ADJK?ZWyN^ecYGMa9HP`y!(y;0|n z{v4$84=Lmg;)hQM>WQlD@=SlcyUyi2Q!AW`thrq6aPB&N?oFTg<6Qi3#7yNKQ|IO| z*5lRA+*vuFK_A+0=Av~R7gHI|R4zC^{o@fi9Us%#PAqcbr+<7enah@@s=WDK`M!6L z*sgc?yggoR4=dkc7B*Mq#Ip0ldsDo&o;q2URPS^3=JJk2EZ<*#b{)=04p-81`Se`g z8n48cWV18fi&&p!wxiLWKQo!ueN?gwv*iCNXTN)9b|{}2cE9eovW(SJ!>Xd+Ga6=6 zv6^Epmt4}*S=fnL-23@2E0o*UShwxl-L5ORq_=XHp3S)TvaC9s>}JjO!D9LEeCMKH z!45l$3+lrKRo%E36z@SV=|W9aozs1gUQIm8^iOcB-6K4D2Ey&%`rSs=BFBFooUJ*C O-24lN%n?Rm7ytmH;=(il literal 1415 zcmV;21$g>FRzVK}^;00000000BMS>JEuG!Wk0(H7ltx*j0GV|C&MiN2#gA>f2S9EVg1iAQhZ z&ARK@IosLZ3h}_70?+(=ykpNy66e<@tqPTPJ>U0DcI|A&o|*o+SxcSn>>qz|C!FMO zGrnP!bQe||_r_%02&-6Wx7vB1EMt!S`ss&{S7)p6m%N{xT>0@U|9bktYW2B){qxCc z^-*&AA~}7tzTv4$lEyqgKVK!!R>^y-wS5J>^Ws+GdJNJoqw zRgM!2BQYwI{99gfm2s5{TGfz^yt8rlZ0MhU8D#&Ch&i5XLl;E|Rb3SRxf2TJ9wAcI zM&zh~RkO~Bb>-+IBiPlo={f|A9%TiB9{^{)rDcOP#msB&SlqXxVIe~dDvE@Pv$oK0^c&q@7}o3z2;|@?mE6efX_xq z{2VlplML<|jL7(hT`0I6wF!LAq~zxCHB$;Bw@ZM}Ru{ZvIjpy_QK{?>f*K9rM2Zg% zjK~zt9jQ&=Z#YIgj16;nQz_B#gj&@)hQC>aP_-GCVh@XGY*LiJZ&wAwT`Y#6@A%kQJw)n%5ERKIUcu~go}t!4(Cf*xvj~>+FOESUL(=Jj#^3BR zeM=hZ1UYwi$Hw?H@&w9rmy_Ey2-!vNTDpD$f1pD*p<%Q~1mBxjaH zG>H$9(oUp<$)nU(_;c!jdV@%{T2|qiuqd|>blYZ8HqM`{$oQ+x#vg#FMUeDxh+O8v zU2e7BkyDRDPhFW57Dg7b^>GxPLtxf{(E`-=T;dN!7O;+$feHiSLkT`GHjJ$)8*#t* zZK}R2U845!Cr+(`34B##&9>aws3;%EK!X9?9zQd%wTZlz7#?T<=Qr`4^+AZ!jS#5s zbYT7aliz!({27M41$_3br=IG{Ezk6ayX#!eGqu90$ePR5j_0n^=ic;*Kg`9CN6b{- zF?DYCV|~2ZnL8`zGw5Uc&0Mq&<6POm!Dn7Gm_(# z^jtnYm$!~r;!CpGneN3{pJleA(VRasnbt#8vJ121|0!p`e`aTt4~HQNUp z%YWxP7u^cB-%(spA1y}z(>!y4Ewja-s(zb V@Xv#bjo>n~{{n~15k_Gc00307)EfW* diff --git a/tests/snapshots/prettier.js.snap b/tests/snapshots/prettier.js.snap index 4561efa0b35ef74d8a295a6c45c988b6ceeff990..7ae48bc4cfad40a6cb973684f2160b4dd617b248 100644 GIT binary patch literal 493 zcmVdDbuGclYz2ShJyI zo)NRAOuJOgU1Hh&xQ}DS>OwpmKojyud=&Kv0KNjiGXT5*z%K!CC>lM{I30hZ2@6qv zcDr2=Z4e(obl_0bj>G|odQa4KI$v;6-Q2YhWiehxnAeEXUQ?Fon4FAoF#PgYE@)CxYZ(ruiaiSf%;E%O2$O++8XO58!%_!xt{@XacGS$Wpkegy4 zms?qH$RW-kl%4%NIhxosrvL8BzXRQ!082=N;V1xH9#;|Uhrw@1oW^cqB_E3j00000000BEQ%z0+F&J$@217!C=+Z@g2C@FZTqPVG$i83{3QlBV;$*XDcQd+F<-CsqGeKhFULN(e_WAPR_u zj`&E23iZ=G2srXf`c@=ml6-WRmRe>%G3(Q;FSA}KA$!zoQ17gF1AU}4`>ogOgjNaN zA+%=B6!vM6&{BhzL^K*>THQZZ81vKiev2iwLDU_@u?RpLsNFgK0Ws!6is<@O4Tszi zexxGs9jRd`3^w3WgM+5YnQ3~!-r&9|W|i5BsInTNP?5HExw^u7YK&WGb`5^lvr+%D z*yZ_iHG5XUgDnd+kh}+Sa(Eu9u?(12F|ux|vCFt-%Er=kkz>j=vsUd+PW)jOe~B~- zmvo!FEW{jT>8oTo425Re=|dqU!w}dOh$7(#?@{B=7mG7!=>@E1XsTq0$*06RM! zkTKh7($H5?0ROJa?k?Sp0cIh!J6#vxrfa;G