From af54e919885417cfa0e5fbc969b29b860f065873 Mon Sep 17 00:00:00 2001 From: samsternatretool <156857765+samsternatretool@users.noreply.github.com> Date: Tue, 26 Mar 2024 09:34:21 -0700 Subject: [PATCH] feat: add pnpm (#313) * feat: add pnpm * chore: clean up test cases --- README.md | 2 ++ defaultRules.md | 1 + index.js | 1 + tests/fields.js | 54 +++++++++++++++++++++++++++++++ tests/snapshots/cli.js.snap | Bin 4028 -> 3992 bytes tests/snapshots/deps.js.snap | Bin 431 -> 429 bytes tests/snapshots/eslint.js.snap | Bin 833 -> 853 bytes tests/snapshots/fields.js.snap | Bin 414 -> 414 bytes tests/snapshots/main.js.md | 4 ++- tests/snapshots/main.js.snap | Bin 1400 -> 1415 bytes tests/snapshots/prettier.js.snap | Bin 493 -> 485 bytes 11 files changed, 61 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b82b415f..e5750f85 100644 --- a/README.md +++ b/README.md @@ -211,6 +211,7 @@ console.log(Object.keys(sorted)) - [node-pre-gyp](https://github.com/mapbox/node-pre-gyp) - [npm-package-json-lint](https://npmpackagejsonlint.org/) - [oclif](https://oclif.io/) +- [pnpm](https://pnpm.io/) - [Prettier](https://prettier.io/) - [remark](https://remark.js.org/) - [semantic-release](https://github.com/semantic-release/semantic-release) @@ -409,6 +410,7 @@ The default order is exported as a `sortOrder` object. 1. `galleryBanner` 1. `preview` 1. `markdown` +1. `pnpm` diff --git a/defaultRules.md b/defaultRules.md index 234be5da..970a7dfc 100644 --- a/defaultRules.md +++ b/defaultRules.md @@ -106,6 +106,7 @@ _Note: when a specific key order is used, any other keys will be sorted in the e | galleryBanner | Key sort | | preview | | | markdown | | +| pnpm | Key sort (deep) | ## Special Rules diff --git a/index.js b/index.js index 0aa2a9f5..2558022b 100755 --- a/index.js +++ b/index.js @@ -312,6 +312,7 @@ const fields = [ /* vscode */ { key: 'galleryBanner', over: sortObject }, /* vscode */ { key: 'preview' }, /* vscode */ { key: 'markdown' }, + { key: 'pnpm', over: sortObjectBy(undefined, true) }, ] const defaultSortOrder = fields.map(({ key }) => key) diff --git a/tests/fields.js b/tests/fields.js index c9d569ff..bc6bc1b6 100644 --- a/tests/fields.js +++ b/tests/fields.js @@ -258,3 +258,57 @@ test('badges', (t) => { 'Should sort `badges[]`', ) }) + +test('pnpm', macro.sortObject, { + path: 'pnpm', + value: { + overrides: { + 'aws-sdk@1.2345.0': '1.123.0', + 'react-native-notifications@^3.4.5': '3.4.5', + 'antd@^2.23.4': '2.23.4', + }, + patchedDependencies: { + 'esbuild-sass-plugin@1.20.0': 'foo.patch', + 'domino@4.5.6': 'bar.patch', + 'es5-ext@0.12.3': 'baz.patch', + }, + packageExtensions: { + '@rjsf/core': { + dependencies: { + tslib: '*', + }, + }, + 'follow-redirects': { + dependencies: { + debug: '4.3.4', + }, + }, + }, + allowNonAppliedPatches: true, + }, + expect: { + allowNonAppliedPatches: true, + overrides: { + 'antd@^2.23.4': '2.23.4', + 'aws-sdk@1.2345.0': '1.123.0', + 'react-native-notifications@^3.4.5': '3.4.5', + }, + packageExtensions: { + '@rjsf/core': { + dependencies: { + tslib: '*', + }, + }, + 'follow-redirects': { + dependencies: { + debug: '4.3.4', + }, + }, + }, + patchedDependencies: { + 'domino@4.5.6': 'bar.patch', + 'es5-ext@0.12.3': 'baz.patch', + 'esbuild-sass-plugin@1.20.0': 'foo.patch', + }, + }, +}) diff --git a/tests/snapshots/cli.js.snap b/tests/snapshots/cli.js.snap index 04336704b21912ff538f0706b454ada51ba9be8a..87200f1f73316f2f0bb08f4cb3182fd580383e0c 100644 GIT binary patch literal 3992 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 literal 4028 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 diff --git a/tests/snapshots/deps.js.snap b/tests/snapshots/deps.js.snap index 366d86143642b176218fb32fafa887cd1ade5c38..4d621cf5dd1d162151f02d9f006f3942ec320a75 100644 GIT binary patch literal 429 zcmV;e0aE@!RzVMmg%541gq6-1x2YP zC6!<<6Mt$>Vp3{Og>G<0erZmMLUDdki9!N4s}d9vixu+00j38F@k7``{4t0R4DF>9 zhB#9T1Cc=vVWNjWN(=x40x4FA(?D^=5$6LG2cbkGN<<=jP(`!`n#DgPV-}`azKaiH~ytS)vZn9|r&c>~yNl literal 431 zcmV;g0Z{%yRzV3AZ0S4kKSqd15D%D6}dm=VPQ-#=gce zDc^7IxF3rM00000000BcQ!z`!Kp1^rYf~wdwkWtB*@WukltCO^#lgv~*XE?rkUM%; z&`LpyKf*x=3;qR%j{Xq`e}^DRt(tJqNGLSJagUG7d-vYG=ZkJAdslig6(%sDFiMEQ zu}~uNMbry~J`sioI^s(ArO}hA?{mY?>7a}%;*U0|;sH1U@CaZAV26M$a$4k^b}vQG z5dCbM%_gW0+5k1MMWt;jgDNem1d$q=1v3V9yu+aZ?pcV5@2lnCzX5$3I~_(1}QKU7gPDmOWC$Pkp}>;02)P0=_USVWvslA%V-OhaW@r4mc~}Zna$;Q0G|M!iWcz> ZIc#3r5-wH076r_o`4?HD4$&V6000}}#s~la diff --git a/tests/snapshots/eslint.js.snap b/tests/snapshots/eslint.js.snap index 4ecd6584e4d735f7087e277bf2c716fbc1a60b8f..4d7a8989250c4879d01e285957cc18c281dcb2c7 100644 GIT binary patch literal 853 zcmV-b1FHN%RzVJ8$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?g{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+oPr00000000BslEF&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) literal 414 zcmV;P0b%|@RzVC97m9!i+vp64mDZ3VaDk93M+~U3 zLc@KMXp=-AFWPwFcj0RMmj@!0)?{Ct$OD*qE7T%I{S@48%UZ{f?0)8Cnt&ikZqU{m zuN3Mm*@}{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* literal 1400 zcmV-;1&8`URzVHvnO%!Yt zx_7S%ydR4Q00000000BMS;21HHV~DZ+Afj?agYMO8b*)xJ@Bb$8x$>?rhtJ0J#wX4 zExlY)A*o$2iXQSCy)}Q-AL+fff-{svNz_U<-1?$3Eh|zGapx`DP2!8s{+J$kQ0`I$6Y4cBM43WD&c?C%Fsa1zUh{ z3>luw3ot~YMJ!kg`X99nILJYVhu$)Qj+f*Tv? zgvp~SXkhN@8JP?C7D|vg$c+104cWjukGtnX|LnDsv)3Lm3x(4DrT~$uHXCjQmpJwS zc~vfXK?+(mYc*d~*8gMxySma{2Zza{tWYQ`!g+6M`Cv{V^A;@Ydm-mN4ZeD=BssOv z>)ZZH_9^n?8Zz4~TnN2xO2PI&u?>*kLexPPT*8gjJj1o^;K0MQqW@(u?hSm?tbGRu z9^V&IX=pt>CXYL|DFun%40&Vs9g(p2D3zv2s!h*ZkcKPSU%j}{z2|3^tvkL*pwE&E z`W-Te6Aaf3uf$X`=MtBrHjyuw5TN&8Gbt%@y9D~I)CNjc;CvgKl*+6zsL4Q%XY}FV zm6%PlBDIP9El|YcwPCJqE6E$)qgFMR(K`zesU`=(w>XK$_KJi%d%a<_i-i#NHSBjv z=QzN|Mny1LRIGsdBkf@F;2B6mqBlJ+adZXbq_q(BdNA!MoMjo8KtUfuulpMsf4$Dt z&Xe9IMP(}ta56lXSMJ@MVYXy=4sVuA$h;Onue&4Ts^Io&rPSIx^*HiW zmCkTt-XgX>e1cO4%{mNPK-v}ry(n)XYgy?icOkql(Fd;$V`|C-+%KR_y((Rz_TjRq zRWy;WHhHrNH#RAIVjO8<9ncwiNk4NNqe2nKdvB-&^_3^!ADmNOd>85w($KE|+yWYdI z^muLEuXFo3*Hldt%f%1xP4P;4>|~i!t4~#z^ZO66?0){)bvPqATsKc;&r?}yyzZWp zyH4~fVqKNV{zY^COk`S*QMb;_iT|ez{o$F}p?s#_>w4TeGFCnHYlv=#sGmv2DvYUI za!vW^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;GdDbuGclYz2ShJyI 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@1o