vite-plugin-husky-helper 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- 598e8bf4835b91bac265c547106ddd4fbf0edcc3eb22e4035dc4b6c01234744c198f3d5a55ed2700009230a06712a836b4d12b51c0b9c70d15bfc2d73b41e429ae6c6d2449873119a6a0c8977b388f4a
2
- ddab9797dbb1fb3d5e1625a5dd9666fd
1
+ 27b21f2785d465082560a1f16be27dce1ef40e857b77ea431640d3037877297d308581d07f9c04abb1897cc50214a44e5dd206d3ab14726ff0ecdee340550009615f84a0a346ace481a7e6f7f69429a9
2
+ 8fb7924504722c0fb8435811d72446c0
@@ -1,2 +1,2 @@
1
- 833102f104e1f586c472ada14b19cc6c340b38e0cd09037caf8ce75e2889e6d348880e30abb36ca7dcb85342812649d3f764979d02c32c943afc8bbd725925b6391ad7c9d2227aadf53554bfc766d598
2
- 53638861b41570885f90e4e06de54c0a
1
+ b40989dd7a5249ae7ab1d60d4abb20b86672a8e238d2c1f6a745088257d8e3cb6cde84d365497380bf339b85948a1ab5ea7017c66f9e58a63665155066f197b99ccc9a3cdde0fd4fcb399c9e88fd146c
2
+ 259506d971b8f1611a918948c1fd1785
@@ -1,2 +1,2 @@
1
- 985eab259ef7495b6f0f840a40bea0fc6923e6462c11db0f392f7344aed3f810852c5111fe53b2a064f424d0ab8ad420884f4db45c3720f7efc386a795875db85d619647ea04e9f6a862b475262d25d5691b781508322fa0260788a36e061d222eef0167cccd2e8973e295a0cc80c32fe30ad3a61f898565aee566a02a0b036e9faa57d8ac0bf03a96cbdf53dbd341df99fd7b04f20ab45081d6133747eefd989b0c2df6b1e867789d493be61383dccec9ad96651d1e8da7c66c0347db21cb15037b8b4eef7ad72a8cd3847c1111e6b21f5245c6d2be25d630e02ab7fa22ea22f36465d73c1bd65c854e100031b94c1363e72418c5291636776152004a8b04c7623940e72e7c5832822a7f77a285971e22fce4255f4fbd1f1739f612e7a46947ea8830553528708e3871d33a5d4fc8f0512760c285def353dc688be08b3f8f7970d59daa74c94e9fa19c682a97292c7cef39c1ccb32a0768390c04c8dbf2cd8982106cf61000b384993550dd37b1a045ae8470a96817d48e24a53c061c3d9e07c6bb4201abca7d59ea6bcbde0f3256d6c787798107fc8c32ee5ddceae78aa2d3f4d2c5e2bd010e33b1cf5d45f3fd95202ae5754868b296568a9bd282c4fa493cbd5ded8cc64ed6144a8944d306896d7e02f56f77b3c2a8993770bcbb1287e74a13c6da2d46004fd2c96f3f08f062a6e4b35e7759b1f2ddb174859d3402430131d23ee7b0a66b899da17a280a351070f46246b03a87c7bc4888d7d88400c1cac482a6d47dbdd4748ef60e11eca9d0b3e91ff72a1d3cfd28d539654dfb05e3941efd8506cdd31d71a7aa3236235fff70c5de2c84d3d36146337db4591d32f9c2fe21ff6d64c0bac8605109d652a8242d0b628ae62b388894f1b9fd6819ec144faa201f262d9c0676a7c63ef81489dfe5e214b1c94d6fa4bc678d24f8f240582e67492df458217105f31e43c1dad83b6e638e91dcfd43e51cea2539c8978d60338b3f3ac6a2cbc78752c76f6877daf386182c74fc1a2c968a0d6b8e70f99e3eccc5c5ed039ed144d41091920138bde5707eadc1429ecb903553abc8fefa7cbc88a19fc99da27393f82294c5d73bca185f58db406aef26d84dfc3de731230799acf7cb2cbe5f5a82fa1478a2aefe33bfba8d3e23bacaf584a62afdbbf1264aedd7219934786248fdb1640f2d2daafa0a9a745e1ed2f64ba396a71250d7b68a75b5b9df25126b9243963e09924eba0f1cea0510e0760d8a95c0009e255b246503fa5a222a9a844e6695182014925457bbb41f3dfce6199f09d39e18ff348dcdbde5fb292ebb79003f54d472bc14300bc4f975fb87e12b15658fb86d0db260a35e42fa3bf0230ebfd34cd5d478b0a3304569f98639e3d7b69d892105a319c817b1ec8ec25898d1ade2597a0eb84473a8c4945ecd569def5cc0ec9b6b60a70f849bf44e3fa9036d953b7ce7a134045c40f5dcc44b019e9eaff4824e263737fb9ff87a51b855691f89308b30e063f697477422ebe060e442f870650a354d31f278b8c050869ae56944a6a4f558b07a99266ff17507b601663e6d7b16c2396ccedf03d9e414e4662c9c572b9ec308e9f439e2d4897688b5194993118734be9213705bdff6622cacc8915f70bbcc2e77c28382202e90de44951c3407943f25edc7150c660fde2df3b8b1b5f781b826ad9c921b0921a4d723e83a115f319da9d4aa9d634a9c3321e6bbae5d105c41eb804bada192efca1a0adb2913b57ecd7c90dc640c55fe186a1177e3cb697d07e93e7257e54393244f54e4bbfc07de29dcd35a5728440049f687b2218e7ea5a3c16403e0fc80bd
2
- b9e2a503bb90e8f03b89f920eee04cc8
1
+ c5ed967f4c246ed2e024608ce5c45617be1623afd9eb22a31e15835199e408abdb3fbb255742def75e428cd0b8309d488daa446082bd0c98e7ca3d1d20595c746f5a84f9cf8cfea9b6f738e9ab9ffde16f836244cd08dd7080ffabb402ff6403bba2ddffa04d8d7edba63dc8567472cdd7e2aefce82c24b079c5a952d6d4dd00d8dd8beb2d2b12f7f0af30e451c8b450894e74e6ce3ad4522cccba760aa1cbbfe2a32ea5bf2998bdd6f7f210cb4495ca8372ebc6dd3dee3501ab55bbe842967d5566ac076340587034cbcc4f01496a910549c45d32758043a8c2e46caac3bac5e99859a9c9cae209373ae1a350cd773e5d965f2526cfc652f13b3565d25b661b3d2bfba66510cea30a33b56c864e062035f5b43c8392fbe9c9b01c3d5a1461169423cecf68a91ed4c2d8fb0353fb6c46bfd43569642b6eb840458101926f6271cb7dda832c92cd0da112c9f8b83a2a2f2f5b0fbf5c24137427ecf3f7a44b4ec3fcb2bb5a99cb31f2cbd5d00406fdd567f1f95f55346bb89aadd590599e803582aa8bdbd545ff1d6d96027e3c4c4f4e72d23eb7ca9d4bf222dfc4126ff99dcc7aeebc58dd720f603ab47fa77e09d5f0f3eddd1d8523b3b44cf8bf7117d64f7ee5407f810deef7cc6b2e0ddc1d06d522939c37940fb4c15f957b85b6abb1cb907edf50b7b78705329f8f3d9b5223bcb264a9505c9163e8dde221215c5ae3e33c19b23671a5bfd44c308c962cb25314e821e3d866a2ac631bb09d6fa590246f142b8073ba4359e2778529820c3ed30ae015139de1be07e0eb3a83f5e2c847b249153dd127adb6854f6744afa887a8c8f672dc05d861aba71b301e671863e5f5f65dc93dd60768197a12281268c62821aa7db337c751772c6d341922ced23ced7e645dd1e40ff51cf317b731bdc7e37b142c6af54bf2bec6309d1b3f4c56c051c2efebb3e777f73b59ba2bfcadef5b926545cc1adf030eda7ef0ad919e52531f01ffdb54cdca536d606022ba3038595ef8b9e155ae7bb78bc93e7ac5be4c3a7de70b3aae57da704a57f97a599e7ba04fa55936731563a40bec58c4aaf9e5674bd28f23e8d65c77a7c8c727c523c3d447f1c8b2e924cb4c0a553e56606b21a392385063318578028aa649d4f778c07900ff880319e62c48851e5c2c3a03d53e37ae40f7b76d477c3443a52dfa309fa093282a21308ab63f4ab5f8aedf615a85af655c0715be7ccf0b5d5ec3236a7bc2eddc07f85eeba8a63ac8901b17cb88ad5f49c3a134b7bbf62e6762e7d98953e91fca493f1e94ddee859c9d32221dddd5d3368fd4e7041e797b6cbfb90d4f2ad73fb11b382aab079e864720a2149c2f991990b309a8b48bb3c1788e3f0b91ac09cced819eca6d0fca21516d107c489cd275346859ae21be9352f5422926804c4b5d1819097bc85b20edc4b4a46642d5a5026053029d87494b15feac61afbdbc28d60b5ce8f860ee8e6b88b40d2d5901cb04b5d066bcc8c52ff658fda6bbe6b07e0c173753bb4939150543c6db7f6b6524f1f3a2d0a9ce4e5d5f628e15a523911b0f7e28cb14af9f8950b1ffe8e2b3a014eee508899b59feb9512657aa93458bee1d335c5f8c0f95444a52a49beccc4fa8180af9f15e5da035e758f98ddd05b16a08aac91c601222e80dbc0b7dda51de7312fd6bd7866742ec9f7e3918486ae9ff1638006c56f3c9e27a85f271ceb907f9c9ad0ca586eabf707e972afe338f5ea4688887e7b7d511f41d0eec2bd6835fb1cc7c11156fb1c021204bd1f9e10262044b61fed32cb307a58d7b586d55109f8522e7e7888dd9c57e14055a9ffdf086e51af75a
2
+ 7af4fd26e8bbf2733abf961942deab7f
@@ -1,2 +1,2 @@
1
- 3cb9e802fe39b116e2d334c18a2644e736e167f49711dbc10936d8a67e0cafd389f4ee1c192b3579dc745bf77facce3142a975f790a41dda56766307ff5dfe750f5558fa6ad02d90e501c6e26e4d622aaa9528c97dac83843aec56ac2483b83d5a9e340c3839e60fb9c27c40a83445a3f22eb18280cb05af1f76de0d6fb08d2714f3f196f30340ec154733a7560fdffc92cb0c4e7123ea7db7d37475aca516bc2387413ca7675155e78889eecca94c64da6866ae369a32a2b3b24f89390f775e492cd0daff3885eb3e106f2b3a1ef5743451937559971cfd83a8f38407c8f38ae916ff623297aad7892235ddae3e69e54a4ae9612835109bc866c39126faab3b4b49038eea5fe8e6204d6c7d267604b56c663e07e13a76f3fc22faa2a426eb857b67b455bcd2d806298a4312a1a85a6fdc5761061c43ab0441e198de593bad010753351dcfd2dbd4dcb17152c7fbe2d447b81bd85dddbe0747865a8a23e1b1b55ff2f1d5814d4380e25d5de8610c0fa414a4439a20d7068af3533fa418fa9b98cdbe72b5404bee58f2b8ea575735fcd2549bdc0ebeba4d7c7ee224bdeb35d725cee5442e50fe291ec3a0986ea3b830de6e1fee59c713c88654b1df94bac162eccb60cfb121b8492d771950ffaae453301cca653560ce16fc54d0a723bd4aa513f48b90a2246f7fa95618ee092537d18df8d7a96835b808a34aa350d8b002b69749f09fe080c10abef9771f3819224062fa95b188542d87f2d7ea71baa2e89a173a0de93e827a307027f6bb6d097544f2c7e747c9ab74376d273c09a7fb7b8d254e63a5fce65ccce06575a6cc8304a4af7cc3f2939a0e384de88d11066adb40ba29758f077463c47cc648e3fd8626d25c8b845766a9b2e62e160a587224e0582889f3db5e873b63a2e14d617dca273f253a9b7445481b125e307b44da2f7aeca0fc77877d3e51fb8c120c7f52a56bada6a70e54d14a09968d4cce9d740ae9cd4743a2ec0a00a70b75af1e281c83660753b95ec433b87c6a4c2abd86599ee6931d1bee27f54de56c82c0ea1877a8e922846520a78c5948a4732aa0cf865c28ab626ae56a467cb4f172116aa5a95ab5d06e96d8f619b28495af67df15ced123de84b70ff116ed0755076b6c0c2d0df954212d138617dd8b47ad9a356161f508a7745d1a6eb525872931bdd5e214d916205ae0bf70f1949269995504b0710082299973b5c4e1ee79fdacb97a78a8435b592a39c730441c1f0fff14c26f950059c810b23347c81555dd48d64582ac20cfc346cb8f4289ab734e9cc4e1e619f1ff11cad040c1c926fd57ad351553ae49cefda083861337b0cc02d66458ce157cde2813f975e85c7bc90de4ad2abea1cfe3fc3bd6a3a566ef12e2e886630c712356abbbc34c816a47c5c98448e69da35bf1473d726a15854bd9c484e0e332f2a054d2c1d57f1e24e4e9d49706b35470317a7e2f10bab32dd1263fe7ea6f343c0dfe86887070fc05c1dcb2d4b4dbe9f52b5d90c3a7cec45f1ec796254550a57b826d3ed21fbada51e4957faca0146ef098147a49b14422b2c564d31c67bf790ad00d7d1498a9e6a05510e406b1dcc604a547faec282ec9bbf1271a7399dfde97d1016d02c69eebad76dbe3fe62124ca4950914b153dc5257ac9c73459353e502f16e142295f77244002a423eb9a373521ffa2f2270ea872d64bcbb1fadbc8d0d4864dfa2
2
- 6819879aece58d31f93b90c2a40bbf0f
1
+ d2739c6c0ebf8cc7f3bf368f0c23e72a27f6428e059d6266522983655bc98ada2143eb0c2274eafafb0b5e02f572cf3d8c3a7866b000a960eaf45534653b916cdc7e1444a8ec0e35fa9474b4d6cca14897d42b7042d009748f41681cf99384668065c8543cdc6f8c43dd04464b1ab5605e39e33df8fd0ae1854e8ce6fee0e812e05de4a3b22fb26c513c1f7d9cb37d46a9b6e698ffc7786164f7276bd602cff26cc5d4109bbb26f52c1be873f903c63848a03c3a039f00693ae12419f0c013c34ffbc56430a58e0ffe204c9a19731cc05049d9d6b00b957815fbe153801470104eb6cb3ec27d7f5885b7ccb710f91b9e1a0accf4820343827788ddebf00364b0c268823779679dfa16afcb40e579a14feaadef5aed9f1201c248dbb5f110987d6a35ab6df655224f5b6b5ab78fae06233d0c6a2d2bf169c3ca0ec792a333ae45296111bd815c862ea00c395539df1ccdd1a8766dd2e0240b6b0cfd43dd7dc1640283c8882ae55b61b949d18341b76c8213acf648d1481df700873dac1a050ea124988d4ca3a7d16052688fb64369cbee495511cd550c830865b1ce3b1caaf3377544fad7a4c787a23184d334c3b24d5aa904472281e7e0d022a1b6dd6be2fdbdcfeff65a7cb95c225fb2b995f605f5f08ae01c937bec9238590b92a6cb09863e172edc04b8f65ecbe53920f5d2b2f358bf2e37fd80f926cc242fe5def4f44ee7f49bb6f2e0319ea0ec89dd20211178ad1234963f53f88411fd441ab0351792636a7ccfa468e237cc8dbec1c0e7830774010c0e71699ccfd14ce227525243dbc025b443210d757c50aa1efb239bf8b7c69b045a4be03d9b92ad4268835b7c9b8cbb96e5f50eecb5df35810b951c7b652eb9f693a9ac8025cebd3a4a121c641919115ace59628a0ad27161a3364e5d12eb396bab92b2bae8567df2b6a53b11d601959f2051c924c9386616655ff23bc69c2dae72da22edd184655c5da2338ce067e259466ab8bbfe93bd10d76185bf8cf168b1002ffffa11ca4916eb64c779beaf231feeebd8cae78015c5c6cd056a9cec4c376e298adab0ec28db586d24e25a0341828a693b83777982fa64c0fab1cbd64248deb05398c9b13ffd8aecd97ba9623ebbaf1d998e36111731082241c772cd367ccb1ac56a33a029d3f9b6684715e4afd2284eadbf1d82e726cc84f4874c6bad6b554b11bb1fbba28163a59c7312278111b710e18088c28a01a5de7064d41ead76e1f61b0edbf4921bd9344b0f122dd8f2e043c3fe1e65520f4c16d6eba4bdab70032445d79b06d8a70bd615d33a443d4f887b3c4613996e975694628e35ef6d1099a0f2351cfd4017ffe898c0a28c63fb796ef52ce5b13306a0c5d7679288299cb2ec00134903b04d40c79264a5b84878bae574e72e38435d228d489a0656e81cdf163de2f6237d360ac23e513f9feef1ddcaa82f542865066640f8b56a91747a703b1dec416962397b56ce0aebd82896a4de0b782ab85a7f1c2cc6e35bc08ae228e160f50574aa9780c5c53b2fcfc04128a52e81c00381280374baed400217638f44b472b30786b40413662783b66ca069e8fec82656f484581e3e00d9e5cac0a0a253051606a75d54ce9fe4d2b2e6ebd32c40fa02d571aeb607f72b8b83e05f34f9bb3295a7253a19fbdf5556efad73e4c1c284cda10c117b7e05666c2d7377477f80d06d46180bf19ba5c4b811
2
+ 89043e8686c7566f0b562dbcc976e989
@@ -1,2 +1,2 @@
1
- ff2a14c0b4a01445b27d6e7bc1e1ee904044a129f43f290900199cf6de9ecb22817e6c65b82b80fac82a885a5c07bf1d453f0d9fd08879b846379b3bc4ed8c5a9d7031491befdfcd4ef742e13588b840c81d0385e4c317f0e4cc2386d413d61a00a4303db9920dc4469c645ee3745a772781db97540dae0f71b855eded4d3cad
2
- 262bd7911ee6a7bb5ed225b558be7b7c
1
+ 74c99e1f74df5218a2cc19bbb8a82ca8269f3fce61d4c7ea6e73f9ec46d652b5364a1f120cbcfdd0a341f492d36dd659d9c964d387f2b4e62d01644b48e99559c84c5b29cefa78ba74b8bdfb90763b201aa8b3f05081da669c481d96119e6f35fc6afde84ebae126c6d343b4c06478f3a43e7adec00395fe22dc9b4a5024cfbd
2
+ acbb9c3afcd51fcdb0ebd48a05436371
@@ -1,2 +1,2 @@
1
- e7131ffa1e01798fcb573280ef115418
2
- 95610ab35969848eb3cf720c5fdaa026
1
+ e7bf2de6ed2ece17351f5c07df63b99d
2
+ fe0ff9cae5090dd238a0fc947ee05320
package/dist/esm/main.js CHANGED
@@ -1 +1 @@
1
- import*as e from"node:path";import*as s from"node:os";import{spawn as i,execSync as t}from"node:child_process";import n from"node:fs";import*as o from"node:crypto";async function r(e){try{return await n.promises.access(e),!0}catch{return!1}}async function c(e,s){return await new Promise((s,i)=>{let t="";n.createReadStream(e,{highWaterMark:1048576,encoding:"utf8"}).on("error",e=>i(e)).on("data",e=>t+=e).on("end",()=>{s(t)})})}async function l(e,s,i){return await new Promise((i,t)=>{n.createWriteStream(e,{encoding:"utf8",highWaterMark:1048576}).on("error",e=>t(e)).on("finish",()=>i()).on("open",function(){this.write(s),this.end()})})}function a(e){const s=e.split(/\r\n|\n|\r/).filter(Boolean),i={data:s[0],iv:s[1]},{iv:t,data:n}=i,r=o.scryptSync("unique password","Just fuck me!",32),c=o.createDecipheriv("aes-256-cbc",r,Buffer.from(t,"hex"));let l=c.update(n,"hex","utf8");return l+=c.final("utf8"),l}function p(e){t(`echo ${e}`,{stdio:"inherit",cwd:process.cwd()})}function u(n="pnpm"){return{name:"vite-plugin-husky-helper",async configResolved(o){if("serve"!==o.command)return;if(!await r(e.resolve(process.cwd(),".git")))return void p(" ➜ [vite-plugin-husky-helper] ❌ git 仓库未初始化,退出插件~~~");if(await async function(){return await r(e.resolve(process.cwd(),"./.husky"))}())return void p(" ➜ [vite-plugin-husky-helper] ❌ husky 配置已存在,退出插件~~~");const u=["husky","lint-staged","commitizen","cz-vinyl","@commitlint/cli","@commitlint/config-conventional"];try{i(n,["install",...u,"-D"],{detached:!0,stdio:"inherit",cwd:process.cwd(),shell:!0}).on("close",async i=>{if(0===i){if(!function(e,s){const i=e.map(e=>({key:e,regexp:new RegExp(`"devDependencies"\\s*:\\s*{\\s*([^}]*"(${e})"[^}]*)}`)}));for(const e of i){const{key:i,regexp:t}=e,n=t.exec(s);if(!n||n.length>=2&&n[2]!==i)return!1}return!0}(u,await c(e.resolve(process.cwd(),"./package.json"))))return void p(" ➜ [vite-plugin-husky-helper] ❌ 安装依赖库异常,退出插件~~~");if(p(" ➜ [vite-plugin-husky-helper] ✅ 相关依赖库安装成功~~~"),t("npx husky init",{stdio:"inherit",cwd:process.cwd()}),!await r(e.resolve(process.cwd(),"./.husky/pre-commit")))return void p(" ➜ [vite-plugin-husky-helper] ❌ husky 初始化失败,退出插件~~~");const i=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/pre-commit")),n=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/commit-msg")),o=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/commitlint.config.js"));if(await l(e.resolve(process.cwd(),"./.husky/pre-commit"),a(i)),await l(e.resolve(process.cwd(),"./.husky/commit-msg"),a(n)),p(" ➜ [vite-plugin-husky-helper] ✅ husky 初始化成功~~~"),await l(e.resolve(process.cwd(),"./commitlint.config.js"),a(o)),p(" ➜ [vite-plugin-husky-helper] ✅ commitlint.config.js 配置成功~~~"),await r(e.resolve(process.cwd(),"./eslint.config.ts"))){const s=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/eslint.config.ts"));await l(e.resolve(process.cwd(),"./eslint.config.ts"),a(s)),p(" ➜ [vite-plugin-husky-helper] ✅ eslint.config.ts 配置成功~~~")}if(await r(e.resolve(process.cwd(),"./.oxfmtrc.json"))){const s=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/oxfmtrc.json"));await l(e.resolve(process.cwd(),"./.oxfmtrc.json"),a(s)),p(" ➜ [vite-plugin-husky-helper] ✅ .oxfmtrc.json 配置成功~~~")}const d=await c(e.resolve(process.cwd(),"./package.json")),h=new RegExp(/\}\s*\}(?=\s*$)/),m='},\n "lint-staged": {\n "*.{js,ts,vue,jsx,tsx,cjs,mjs}": [\n "oxfmt",\n "oxlint --fix",\n "eslint --fix --cache"\n ]\n },\n "config": {\n "commitizen": {\n "path": "cz-vinyl"\n }\n }\n}';if(!h.exec(d))return void p(" ➜ [vite-plugin-husky-helper] ❌ package.json 内容异常,退出插件~~~");await l(e.resolve(process.cwd(),"./package.json"),d.replace(h,m)),p(" ➜ [vite-plugin-husky-helper] ✅ lint-staged 配置成功~~~");const w=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/czvinyl.config.ts"));await l(e.resolve(process.cwd(),"./czvinyl.config.ts"),a(w)),p(" ➜ [vite-plugin-husky-helper] ✅ czvinyl.config.ts 配置成功~~~");const f=process.ppid;p(" ➜ [vite-plugin-husky-helper] ✅ executed successfully! The window will be closed soon."),"win32"===s.platform()?t(`taskkill /PID ${f} /F`,{stdio:"ignore"}):t(`kill -9 ${f}`,{stdio:"ignore"})}else p(" ➜ [vite-plugin-husky-helper] ❌ 相关依赖库安装失败,退出插件~~~")})}catch(e){throw new Error(` ➜ [vite-plugin-husky-helper] ❌ 调用操作系统命令失败!${e.message}`)}}}}export{u as huskyHelper};
1
+ import*as e from"node:path";import{spawn as s,execSync as i}from"node:child_process";import t from"node:fs";import*as n from"node:crypto";async function o(e){try{return await t.promises.access(e),!0}catch{return!1}}async function r(e,s){return await new Promise((s,i)=>{let n="";t.createReadStream(e,{highWaterMark:1048576,encoding:"utf8"}).on("error",e=>i(e)).on("data",e=>n+=e).on("end",()=>{s(n)})})}async function c(e,s,i){return await new Promise((i,n)=>{t.createWriteStream(e,{encoding:"utf8",highWaterMark:1048576}).on("error",e=>n(e)).on("finish",()=>i()).on("open",function(){this.write(s),this.end()})})}function l(e){const s=e.split(/\r\n|\n|\r/).filter(Boolean),i={data:s[0],iv:s[1]},{iv:t,data:o}=i,r=n.scryptSync("unique password","Just fuck me!",32),c=n.createDecipheriv("aes-256-cbc",r,Buffer.from(t,"hex"));let l=c.update(o,"hex","utf8");return l+=c.final("utf8"),l}function a(e){i(`echo ${e}`,{stdio:"inherit",cwd:process.cwd()})}function p(t="pnpm"){return{name:"vite-plugin-husky-helper",async configResolved(n){if("serve"!==n.command)return;if(!await o(e.resolve(process.cwd(),".git")))return void a(" ➜ [vite-plugin-husky-helper] ❌ git 仓库未初始化,退出插件~~~");if(await async function(){return await o(e.resolve(process.cwd(),"./.husky"))}())return void a(" ➜ [vite-plugin-husky-helper] ❌ husky 配置已存在,退出插件~~~");const p=["husky","lint-staged","commitizen","cz-vinyl","@commitlint/cli","@commitlint/config-conventional"];try{s(t,["install",...p,"-D"],{detached:!0,stdio:"inherit",cwd:process.cwd(),shell:!0}).on("close",async s=>{if(0===s){if(!function(e,s){const i=e.map(e=>({key:e,regexp:new RegExp(`"devDependencies"\\s*:\\s*{\\s*([^}]*"(${e})"[^}]*)}`)}));for(const e of i){const{key:i,regexp:t}=e,n=t.exec(s);if(!n||n.length>=2&&n[2]!==i)return!1}return!0}(p,await r(e.resolve(process.cwd(),"./package.json"))))return void a(" ➜ [vite-plugin-husky-helper] ❌ 安装依赖库异常,退出插件~~~");if(a(" ➜ [vite-plugin-husky-helper] ✅ 相关依赖库安装成功~~~"),i("npx husky init",{stdio:"inherit",cwd:process.cwd()}),!await o(e.resolve(process.cwd(),"./.husky/pre-commit")))return void a(" ➜ [vite-plugin-husky-helper] ❌ husky 初始化失败,退出插件~~~");const s=await r(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/pre-commit")),t=await r(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/commit-msg")),n=await r(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/commitlint.config.js"));if(await c(e.resolve(process.cwd(),"./.husky/pre-commit"),l(s)),await c(e.resolve(process.cwd(),"./.husky/commit-msg"),l(t)),a(" ➜ [vite-plugin-husky-helper] ✅ husky 初始化成功~~~"),await c(e.resolve(process.cwd(),"./commitlint.config.js"),l(n)),a(" ➜ [vite-plugin-husky-helper] ✅ commitlint.config.js 配置成功~~~"),await o(e.resolve(process.cwd(),"./eslint.config.ts"))){const s=await r(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/eslint.config.ts"));await c(e.resolve(process.cwd(),"./eslint.config.ts"),l(s)),a(" ➜ [vite-plugin-husky-helper] ✅ eslint.config.ts 配置成功~~~")}if(await o(e.resolve(process.cwd(),"./.oxfmtrc.json"))){const s=await r(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/oxfmtrc.json"));await c(e.resolve(process.cwd(),"./.oxfmtrc.json"),l(s)),a(" ➜ [vite-plugin-husky-helper] ✅ .oxfmtrc.json 配置成功~~~")}const u=await r(e.resolve(process.cwd(),"./package.json")),d=new RegExp(/\}\s*\}(?=\s*$)/),h='},\n "lint-staged": {\n "*.{js,ts,vue,jsx,tsx,cjs,mjs}": [\n "oxfmt",\n "oxlint --fix",\n "eslint --fix --cache"\n ]\n },\n "config": {\n "commitizen": {\n "path": "cz-vinyl"\n }\n }\n}';if(!d.exec(u))return void a(" ➜ [vite-plugin-husky-helper] ❌ package.json 内容异常,退出插件~~~");await c(e.resolve(process.cwd(),"./package.json"),u.replace(d,h)),a(" ➜ [vite-plugin-husky-helper] ✅ lint-staged 配置成功~~~");const m=await r(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/czvinyl.config.ts"));await c(e.resolve(process.cwd(),"./czvinyl.config.ts"),l(m)),a(" ➜ [vite-plugin-husky-helper] ✅ czvinyl.config.ts 配置成功~~~");process.ppid;a(" ➜ [vite-plugin-husky-helper] ✅ executed successfully! The window will be closed soon."),process.exit()}else a(" ➜ [vite-plugin-husky-helper] ❌ 相关依赖库安装失败,退出插件~~~")})}catch(e){throw new Error(` ➜ [vite-plugin-husky-helper] ❌ 调用操作系统命令失败!${e.message}`)}}}}export{p as huskyHelper};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-husky-helper",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "private": false,
5
5
  "description": "用于前端项目 git 规范配置的插件",
6
6
  "keywords": [