vite-plugin-husky-helper 0.0.3 → 0.0.4

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
- d32e06b9f8d9c1f75e6b7847dd5327d6bd587501c2a899a6e5d09f50adc3b4bea5469d19dbc8da1492b691e087fb7d740d4c780090c9747d19e57ffebdbec4788c863151047de6f6887f961790764dda
2
- a39e2fbac6480201df0e45d7faae6f6d
1
+ d24a9aee128a8a8d45eccfe53a4b98c41b223dba2ca675c5378f22823d71cbcf37781bd4a87de8b9d07ead8bc5ec50e336aea38b238acf3cbd3d016921c6653f17967a453136c68f90cd836b46f4a094
2
+ 6e8fcbb98fbcd086f6870f7c927b89ad
@@ -1,2 +1,2 @@
1
- 6e0ce4647078ca1d5f6e1c59ba8c79f787a1ff7f0c7fc240a9fb900e7c0db105a946a97144b2f6e4c9a80fea3e7d61f6d9e702cd64ccbe39a039e48a2dece4dd1e2c3082522927ac9358a211d80bdd10
2
- 11af9905eb16a98eae6653a65d9d740b
1
+ 6960739ab89c9f9bd9d0c3885baea02992913ae0f34b6087b568b0f9b7fdcdf043d3b304c505ce3dba3f402d6a27f6666e5fd631362b49ea169d89984360a75bdd2547276b5b3374531a30c563411392
2
+ 4a3afb4af0a7272716e1cdb5c54ad732
@@ -1,2 +1,2 @@
1
- ace23dea1e79747dca80d454b93951cca8bea75941042a32517cfaea657e06a05d344aa0d9fe9fc09e48666e6312c9d2e1bfd30ca0b6cfbdc89bf443bd830d091db6260d16af554b84df55474a6029e7c12a178e07025343a9f11f90c8bd6d6f5e07a93fbf4dd58c27d92dcb7f7421e7e8607ef809ed9cbf1393ffa6aace42379d39f28f0bb285693907daacc33bffb016735df090dafc0165b043eb50b25e67e32583c4ddbfd3fc08f25c0ff7c432b86e24cef86d2dacb7a0883be5c9c31b55f02283ed3795c438ef5bc1bcf98b624567829809dd642c4409376d7a2ef80a637d1199bcba5b051ca6c4347708649315de8b7c0708d565dd747cbfea2c544092f5a22851f0b46354e2923796ffce411977693db8e35187e0c894c44627c4790e303241fdf9d97070b731ff70a56e41a428889c3fcb679e26c18b5fc77c826a330443634719d05f17a10da721b9da0260a9b2600b61ccb3d9fe92bc6983f9cff64ccd6ffecd632d4f43901b04f3c941894b71f8a8a45d6aa00ae411a27e123eaa205624347c211705894ce159f429fb38cb000833314ab77fae0841316aead953238845b14de7e789544d71e36ee6e2a94c28eeb8efb437372866924c0d439cc7ea379178a0bceeeeef344d9dbd5edd9e26e9e29a2889f882857764ad9f5bff9e5a07c9a8afe5288a904c4897996b213af15fae93bf75cf57dcb433500bd94a581452f97eac67c49db9e50fe477036278943bfc76f89487b40d1bb2bb10967c4c0159ed190123fd21c413b8fff1e272331a2dc55e3611572223469d941269ffb5a2f6c23fb03d4686351097fc8c264dc2c64a3f72514bca64b907d3d432b4cf1c97b67cb61d9e733d5bbfd847b872db3ff47ed1dd5da32ee0a86ccc04cfd014d5869ce082d0318a06379dbd2ac9d44998c9c5014f4cc3891f0a0a87307a1350ae43637d75259b0f445509666f106eca92fee2b3e334aa87b2626ce0511a9612ff46c44dec3a1a1c15043dc675b8c1b0649271252e3a6cd970ae52731adbca758ba9b3c3fb42d29552a8b49e2eacaa509a9089bc0cca7dd486e11c6732631e8c865fcc11611e98fcc6157453e619c0d3d789ec1212492d40374d4ec0817a8e7493e28bb14aafc4d34019019e9b7efeeb7417cbe30e16f5409c76254c8bc854d43942b051557539e8a5d8f60ae7a42084cdd19bad2146747b1a0eb0c2cb8ec6280acbeb7974bb4d4d38addd85933649a447226bb9e0e1ff1e4cabc419ed0fe7af050e3c112e74773e38c59906dfd383db9ce185b00430861afcb46dd1928f2c7be790bf86f32c5ea6a6d272f3dabc5970ad149d6948152297a2f6f5f0ee8bc19e29ce0fcee204a3a46b5486380863eff7b15da1ad10e698a27dd99c5518161f9f4cb984b93e0ae8e8116255efeab35beafe642ef5c35766d5e64b972b32cc32653ab67f1fb2fcd08d59eecdec18872f067cc48f0f223b7967d0633b766ebab3ade7b5c7ad19898ba10a1eeead7f6dbeaf27bae219f733bb06b8c4b98e9e43eb5df995b176ce8b63a9ac0320ad07bc47e8daa07558561ee47b2a76f088bda20dd01b7593c4a5cf4f8cc1b88a67592252e143d6da095d4447532d37503543924004d8e70e90b6fc5ec3562323cd48731ffd9e24d0515786a9645f5e227befb78298a0ae37e237caecfa0b81b53507fff0539c95af93baef4ea67d938cb83f47631f83acf02d317eef3f02e7b0df244f3bcb0108c1809d27f003bcd50e9ce1d3bf83e061fda982a32f211a5504d51192b9c6cd4c6cd98da4b7610909404e66029878119bc174e43118635cd9866a892f723f43
2
- 92cf07ceb917ad540294807365700003
1
+ c87c6e2228183b64d5d89c06cd925a667023d6571879ee6c49a0a87db5767c0bcf99e50d071fac9580b8746fcb1f60e390b9166900270dac2f5ea3c515d3531226d98a2aeb4cbe7ae56f1fc1b7a6f31847de87ae726966a0986a013b05008d08c45ff62ece704caacff8959cb1bad84d3ee7e9c5347469613ddf985d3b5243efccd92d53a25e3ec82db62dbe45a0fbbc969e7ef1cba2c5ca136bd1c99a939b914177f02b37a97909062a87e6e85c1d88b1b5108972f5d118121210e22c369dc0a1ccaff874e7e117177aea558c71ab81335b614b4bd9601766b59ff0f8bad86daef2bbf80d8825be6791ae9ef561efd5ee5de02d8a96a98143d24b408340ac10a183512f0728714e681e610974dd25ace2dca846eb48a3a5996b30ad82040626fa68e9ba02d3f0396fd9da2fab195d4ba24895e4c4a0932a170f52f1b1a3a59c4eb982e6486e8c172f899ec4ed68067f73ce98c1a84aae73cb2a5bf8dd618987c384422214bf21520f4e92954e0c2bffe884e115a0886bdf48de96cff993a0c2c5c59c0733a3a12217a1591fb0da7c46235fff68a2f67ee087162be47523ad108c162e4fc026c43ff5b4e81fb5e27a140c5f269e9e857e7f1258567a7709022520978a1d3b1d9bf88f51d2529889374cfcc228d524169982174e144a3b9a00279cc43465922509782a0e1fee985ba06b0cfcfdbacb8d6a3217db1af884efefbc65f2e5f52702c8c72b9aff6995c8aca4d83b8836a49e24fef7aa1b706091c4aff9088e3af8380d3dbda433a56db207987c2b2c9e5d3ef741a7cb8df8254fce726add39995a04ddddc7b1d48e1237700ef6dea18912077fa71382aecb5e14348fe7aa27a5d95ede8f877b93c9a925b2d86e187e4f1b422a1ca4a7c08f9ce6c7cdeff7bf6a7f65445a532c2e6687827d434beb19828bd298562f474d4be04dde229f583bb1396ce8b325d82e2d12f75a194b7f42f2b705c5f34a9a95cd7fd67b7d0ec90ad66cff27a32762708fba7c4da1da289febfbd1306910ca07741b708bdf5694d83ac2aa1d0a4fa54e9ed14af9e3260be25e258ad3d5793615a3474c9be029a28a8bd8f3ae2f62b4a0fb1d019b755f49a903ab04850ada4c3401dbcbbf7dcc07fc4f20b1c619c44a74265bdad0e3e3fb71699a2b1f41d03b9a4d674d440687db1e2b6a048f21662501601df10b254f97b923841bf15b6883c33e5238b4b4c093254a786b1809993cd6670f5fc47ca6080094a30ecea4d5eb14ec6115b470762c02fe2b1e1e2e374e913fb39ade6dce8095bb7a591a6d484e858b9fe7f3c9ffeca2eede3415eaf8403426a142087b3d2ffefebc8f5e1ce233a7c0b6b217e78353a1d006307c17e19551e88bf0d6247d9592a4483e5aff511c4a242e8b72a8d15559fbacc472d38c71a46a814c8f8a17f356e8c43b079cf1ff7c157fe750ed9ba0ef266ea8be612191b52bdb4012f61ba073d56a1b6b08c25f716f70a37b250f207fc9173e04bcfd4968e3459b624836cac8a7afdc3caa5d21ef23039860b41eee0d5bcfbc2bd04b91d26237c13d3ed1a09617d0d1156467bb832046d5519acef6157d3a7b8befc1fbd455b257f23c9ece6d9caf2ce52b684cde496fa0176e5159dcd769991e4e50d16f5a991a2d1e2c326d73033fc6c9d3fd056e38b0ab9d38bd81f3580efbe6411f2c8d52dad0ffe6dc4cccc190d3ee1971e0675eb635cc7c958ddb0bdc06676e0552d7f32cc770ce57ccab097bba81b56352dca34eaf57caca4947bbae6556fc54e4565f68035ba0a038c76705a54d954cf7e0681673d44f20f3fcf36fa18ce13e861a96eed458
2
+ e462fdac41843d3224ecac5d1051cc41
@@ -1,2 +1,2 @@
1
- a856eb0ca27954117c7c02aa391dcfdf33a8e81196f95030194c160521902735d9df10c3a6113ef748352369538b0f1cb15dd86e0704027b2f6bb7d2c94cee465e08ab0c2dab6647ddfe6ef65457a9d7a8548bf35804697a01b9c501957d0d265c56b7b1a8272db1f4284c23a9372a04bcba70785d1980dc8f3fa6bc22bbd357ffb1b701f7ae443a034bd936e64b35e283362d4483db2baf3aa59a9e97ea687f9f25b0f7a44eeb073309b2bd1433083e4070f5d2d03048efaf70390fedbed9954d2e5f37593bca9ca196672872074f8129d9bd64899c23f1f6d9b0c2dc703351b733f23c861e891da56502f3b6ca7099d0f78fdf9286a46a12e5adc76fdb8270a348488814da62b386d519189449d365b246d3bebe3a325dc68cf2426738c08bb73d292c842802281c736c92ed09d6572d12819d17681881163398437f6d314a159e61100647bbc5e520e2390b240f86c7e04f19623753457015c4c6f1f2dd85f5bdb37a6afe41a330aa257a6149db2173020b781b553a592fa854873cc71cbbf5c30d2b803d86f16a396cf29bd37e4b03d3ca102f7454d581227423d360ca9060b97df405d7be63a6d92f7e33054a28ec3eb246a06ad861678fef30552bb97f35240c74c3fb5d369a41b8dd7733d23d157684ea08b8a6a75e7913c0dca8803cafc579030553f080d16f99a823541425b092d35ad2f6e2b7f518cabc4477bf621a3f291fee27e4d23422acbeef85a2f4d05763a857d7a08e72f8de4e693d6334484dd0fc7d31ab27b4a89145c74bf5aa3f70f91b3f3c5fd36ae0c6032983e68f7416396abf28582657eed93fba4c59a5377abcdc03753a9bee72fcaa9f27bd13f463369169750bbf2e4d5cb9ce7645e75486d3e838fc30f1a34d82fe19aff14d42b03f259c7c9559d03d7e3758b0532a9da4d374251e79a15f11f4dbf80042a25124a9e75fdaa02117b1cf66b86d9370ec41134e66946db5e24876845075ab5073dac707ae3d10bd41003d58cb65867503a721e761096551c493c745037e22cdceb08c70f6d164aeb1df619fb85808a053c5fa135df3f6a6fd86dd554c9d0ade947140654d6f2a5e3fbb3aa9ff6bceda2c4fb26a7b134d3aaadcf3c4c8ff9357eb7b5263b03bef3f06c540aa0c72bde28b036418099d09288059a1f02cbbc1e9833891a0cc7bb710aec5ca7afd2a3cffeef58eec52781cc2df42306866fee75b27dbd2780c86b02bc6d026eae57f672ba8392aa8f14ae5a26912c968b51a57bc9c2e88b70af00f6ad569e5fb62d350a02fbce5255fa5ae7c7d6c6f2a5df0ae7203ebbcc5cffcaf2141b79e8674119e7cd09eb934b2c92bab8f05941c7b0358ea448c7bbf785110832999b45743491d5c93f7b8a1addb88af101558734aebd1e8ed52fc77743f8e8bcb3d360264a08ac290998f8cc7a9468ab7dd0aed94dda6716e60df31750b19b985ae7891fd16a21cbb5c69645c11674759e5ac115fc37b5fa269d82edf91a6f96e66208f9f61b4e3c776a7015c0890881a2ff3333d99be9b14e569c2bc67a44762492676e283309df28747ddab8bbb3e286d6abff6998a3b454c7c4f2886f8ef15b6d2ee4ff0e5e46d594559335489b90428c4bdc3b9cd62b2e1873eef0d72c712bd75d08992831971d87f11c0dbe0fd234ffeeb9f3a5a1423cde2620668e4d43de514924e8c1e0fda804a1409a2e4d467b1e1260c04a858
2
- 8732a0eb1a2ef27fb54643b62364ba53
1
+ 40eb7e3beadcabef0a888a35994408f8bceab8fa72de227c5474cdecd224cb249582a8eb7681d98487851e6961bf2f68bf211264caea1dde91d6f5f87d87283176509954524ceb01ff1b9bb41b05db84ad1e30779ebdb7f90788281e01035103d6d5ea6715cd655f2623755009f0d75043c2eaccbf6ac629225d438c4065c1c52215092cca0a93f5b1d556d53e9b3d2c0e8678467dca4ab6e0a8b889f6ecbf144b380a8bdce051c4c2b4811e818689d218c0aba4f0a86e37aaad77e54b408bf98d122906ee5defc19167b5ce7d785b36abc659fb6dc3652ffea60b53aa4038941ffe693ff7a73cf9eeb184bf1fd14468c1dc68ddaa69f8204f63aac36fcf25202a5122aa98d8c5092ce3b1d817f1a6a8ff4d56117a4b8d79297aa78330a08a53f476b96f5074c7572adfd4e721a966c10621147d5d851fceabe9736784838a89a03a7ab64ae2c780b9e28038bc5397ce0ebdf7940be52ba07da95f59522bd6ea57d2a86fcdfceb05288edb40a19a79483b3172e0ed0fd4a593e1d2fe763dcd5ebd996b78e1a84a41de82e52fc8b04c0dd5ae3a8063a560b5fbfc7ecfabc695d8875c37f77a0b2f3dbe83e2aa05b4e848f4dff20ec806f62412902101d872f5aa977799d59c14822720dd60a92c9cc214c2a8dbb88211dca7b7d56c4ffd1c3966b6d1cbba31ea2e3f6d50c40e3b97a29e7a5bb10520c9ec47c1e22d0504d69b912a16af47fa3fa92ab3e5f4e07bf20e76f9634419c4d65ab59dda065a1b4abcc6aa8ef3c6c0cd9ef49e6b869d77bd61dbc047dc50280abc3ca5a93ff5fa2153739720b27cea979a75a70500e94622ca7d94dabde732ae5d13aebfaaa5af512f155e154456fc4eece92a3a394b9780a963a827159e0bee45dfb76dedebb91ce9a046e46b818c7a47e11c6d16f083da01e1e978dde40b3a64b824b2e65e96d64c776e49a972dce4c60013809678d544508390b34a54a681055ccd194b385f3f912e316e2bfb801807b5ba1eaafac1a0229024863b02049322909481a6f9bfc64fa9819247dd6103c00ae9b6a4f5eeacf39fd463c1741572361ded87837f85232d0f4f97b5947b63a7272f7068b509b08e2313a6e4137a768e501a5f5579c457168b489af71bfa5d1cb813df1ca28de96e48c9150f2f868d610c6b53d82f79f58f757b9efe209ad44964b3feee4c0468b4455db8c2c6dde282d5a4ed81199d173b5bfcebcf0fc6cc9dc2e84c983fdc8c79dd0f7e80ba4b0e0e1c3c91a46ed711f76bb6d5aa59062867780cb3dc2756e5c86ebb9bcd72dfad4d6bc14e2e694cf4c363e91a69f21e6d2cbde5edc844c08973b43e94e7c79cf84612afb1716365cfb1858b748c1b300339d90e9416a9f2e4ea84160792aafa3073ea961dd45fea310b0073a7db074f4a717e79a174ab7f0b30c8a8d0a2c3221a5aa3ef0c84da02c444b95e481331ce42fecf5cc24d52a15b427fa669b4d9b9c626e53569142c645fafa7fd2c8d0ef9b14bfcb87856caf6b06a634d889eae7fe281f5c6a79dfc8d7f25b63b1a4f9b0665d589567af7c0fb666c9a7dd9c7e14b84858ab1cb750d85f2a9f13353cbbf96ed039798ebf3e60ab132c418eb5f7382d4ac8f1685daad3828cbc4302a0ec3f2a6b2f906bb229f9781322da4319fbce6ef5da4a2daa832acd31bd261dd1edc771fba189e8baa1ef1e317d924ad33dfb64c021d5b9d169f36293174
2
+ fb5d28966d108be46e70286bdfafcda1
@@ -1,2 +1,2 @@
1
- 48cfc8b9ec02788d4c0c0a1138eb2d53
2
- ed3b04ed1ac183f56c87af01ef7abcbf
1
+ b81400b0a0bea6b9412ac17ef6bd9f25
2
+ 8a0d8bcd5998c9d65e34fca50e12b9ef
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 o from"node:fs";import*as n from"node:crypto";async function r(e){try{return await o.promises.access(e),!0}catch{return!1}}async function c(e,s){return await new Promise((s,i)=>{let t="";o.createReadStream(e,{highWaterMark:1048576,encoding:"utf8"}).on("error",e=>i(e)).on("data",e=>t+=e).on("end",()=>{s(t)})})}async function a(e,s,i){return await new Promise((i,t)=>{o.createWriteStream(e,{encoding:"utf8",highWaterMark:1048576}).on("error",e=>t(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 a=c.update(o,"hex","utf8");return a+=c.final("utf8"),a}function p(e){t(`echo ${e}`,{stdio:"inherit",cwd:process.cwd()})}function u(o="pnpm"){return{name:"vite-plugin-husky-helper",async configResolved(n){if("serve"!==n.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(o,["install",...u,"-D"],{detached:!0,stdio:"inherit",cwd:process.cwd()}).on("close",async i=>{if(0===i){if(p("[vite-plugin-husky-helper]✅ 相关依赖库安装成功~~~"),!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,o=t.exec(s);if(!o||o.length>=2&&o[2]!==i)return!1}return!0}(u,await c(e.resolve(process.cwd(),"./package.json"))))return void p("[vite-plugin-husky-helper] 安装依赖库异常,退出插件~~~");if(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")),o=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/commit-msg")),n=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/commitlint.config.js"));if(await a(e.resolve(process.cwd(),"./.husky/pre-commit"),l(i)),await a(e.resolve(process.cwd(),"./.husky/commit-msg"),l(o)),await a(e.resolve(process.cwd(),"./commitlint.config.js"),l(n)),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 a(e.resolve(process.cwd(),"./eslint.config.ts"),l(s))}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 a(e.resolve(process.cwd(),"./.oxfmtrc.json"),l(s))}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 a(e.resolve(process.cwd(),"./.package.json"),d.replace(h,m));const w=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/czvinyl.config.ts"));await a(e.resolve(process.cwd(),"./czvinyl.config.ts"),l(w));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] 调用操作系统命令失败!")}}}}export{u as huskyHelper};
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 o from"node:fs";import*as n from"node:crypto";async function r(e){try{return await o.promises.access(e),!0}catch{return!1}}async function c(e,s){return await new Promise((s,i)=>{let t="";o.createReadStream(e,{highWaterMark:1048576,encoding:"utf8"}).on("error",e=>i(e)).on("data",e=>t+=e).on("end",()=>{s(t)})})}async function a(e,s,i){return await new Promise((i,t)=>{o.createWriteStream(e,{encoding:"utf8",highWaterMark:1048576}).on("error",e=>t(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 a=c.update(o,"hex","utf8");return a+=c.final("utf8"),a}function p(e){t(`echo ${e}`,{stdio:"inherit",cwd:process.cwd()})}function u(o="pnpm"){return{name:"vite-plugin-husky-helper",async configResolved(n){if("serve"!==n.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(o,["install",...u,"-D"],{detached:!0,stdio:"inherit",cwd:process.cwd(),shell:!0}).on("close",async i=>{if(0===i){if(p("[vite-plugin-husky-helper]✅ 相关依赖库安装成功~~~"),!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,o=t.exec(s);if(!o||o.length>=2&&o[2]!==i)return!1}return!0}(u,await c(e.resolve(process.cwd(),"./package.json"))))return void p("[vite-plugin-husky-helper] 安装依赖库异常,退出插件~~~");if(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")),o=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/commit-msg")),n=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/commitlint.config.js"));if(await a(e.resolve(process.cwd(),"./.husky/pre-commit"),l(i)),await a(e.resolve(process.cwd(),"./.husky/commit-msg"),l(o)),await a(e.resolve(process.cwd(),"./commitlint.config.js"),l(n)),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 a(e.resolve(process.cwd(),"./eslint.config.ts"),l(s))}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 a(e.resolve(process.cwd(),"./.oxfmtrc.json"),l(s))}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 a(e.resolve(process.cwd(),"./.package.json"),d.replace(h,m));const w=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/czvinyl.config.ts"));await a(e.resolve(process.cwd(),"./czvinyl.config.ts"),l(w));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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-husky-helper",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "private": false,
5
5
  "description": "用于前端项目 git 规范配置的插件",
6
6
  "keywords": [