vite-plugin-fflate-zip
Version:
Vite plugin for packaging build folder into zip file via fflate
2 lines • 2.4 kB
JavaScript
;var g=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var $=(n,i)=>{for(var t in i)g(n,t,{get:i[t],enumerable:!0})},h=(n,i,t,c)=>{if(i&&typeof i=="object"||typeof i=="function")for(let r of S(i))!E.call(n,r)&&r!==t&&g(n,r,{get:()=>i[r],enumerable:!(c=O(i,r))||c.enumerable});return n};var w=n=>h(g({},"__esModule",{value:!0}),n);var N={};$(N,{default:()=>x});module.exports=w(N);var o=require("fs"),f=require("path"),z=require("process"),e=require("@heybrostudio/utils"),D=require("fflate"),v=(0,z.cwd)(),F=["zip","gz","png","jpg","jpeg","pdf","doc","docx","ppt","pptx","xls","xlsx","heic","heif","7z","bz2","rar","gif","webp","webm","mp4","mov","mp3","aifc"];function b(n,i=[]){let t=(0,f.join)(v,n),c=new Map;function r(s){let u=(0,o.readdirSync)(s);for(let a of u){if(i?.includes(a))continue;let l=(0,f.join)(s,a);if((0,o.statSync)(l).isDirectory())r(l);else{let d=a.slice(a.lastIndexOf(".")+1).toLowerCase();c.set(l.replace(t,"").slice(1),[(0,o.readFileSync)(l),{level:F.includes(d)?0:6}])}}}return r(t),c}var p={inDir:"",outDir:"dist-zip",zipName:"",excludedFiles:[],onArchived:()=>{},onError:()=>{}};function x(n={}){return{name:"vite-plugin-fflate-zip",apply:"build",enforce:"post",configResolved(i){try{let{root:t,build:c}=i;if(Object.assign(p,{inDir:c.outDir},{...n}),!p?.zipName){let r=(0,o.readFileSync)((0,f.join)(t,"package.json")),s=JSON.parse(r.toString());p.zipName=`${s.name}-${s.version}`}}catch(t){t&&(0,e.red)(t),p.onError(t)}},closeBundle(){try{let i="fflate",t=(0,e.getRootByPackageName)(i),c=JSON.parse((0,o.readFileSync)((0,f.join)(t,"package.json")).toString()).version;console.log((0,e.cyan)(`\u26A1\uFE0F${i} v${c}`),(0,e.green)("zipping for production..."));let{inDir:r,outDir:s,zipName:u}=p;if(!(0,o.existsSync)(r))throw new Error(`"${r}" folder does not exist!`);(0,o.existsSync)(s)||(0,o.mkdirSync)(s,{recursive:!0});let a=Date.now(),l=b(r,n.excludedFiles),d=(0,D.zipSync)(Object.fromEntries(l),{level:6}),m=(0,f.join)(v,s,`${u}.zip`);(0,o.writeFileSync)(m,d);let y=`${((0,o.statSync)(m).size/1024).toFixed(2)} kB`;console.log((0,e.gray)(`${s}/${(0,e.cyan)(u)}${(0,e.cyan)(".zip")}`),(0,e.cyan)(`| ${y}`)),p.onArchived(),console.log((0,e.green)(`\u2713 zip in ${Date.now()-a}ms`))}catch(i){i&&console.log((0,e.red)(i)),p.onError(i)}}}}
//# sourceMappingURL=index.cjs.map