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