can-can-word-bug
Version:
can-can-word-bug 是一个 TS 编写的工具库
2 lines (1 loc) • 1.09 kB
JavaScript
;const s=require("../createEl-B-l5NTno.cjs"),m=require("./zip.cjs"),y=(()=>{let i=null;return async(e={})=>{var a;i&&((a=i.parentNode)==null||a.removeChild(i),i=null),e=s.merge({type:"file",mozdirectory:e.directory,webkitdirectory:e.directory,style:{position:"fixed",left:"0",top:"0",opacity:"0",pointerEvents:"none"}},e),i=s.createEl("input",e),document.body.appendChild(i),i.dispatchEvent(new MouseEvent("click"));const c=e.multiple||e.directory;return await new Promise((o,n)=>{i.onchange=async u=>{const f=u.target.files;if(!f)return n(new Error("No file selected"));!c&&f.length<1&&n(new Error("No file selected"));const t=Array.from(f);if(e.maxSize){if(e.checkAllFileSize){const r=t.reduce((d,z)=>d+z.size,0);if(r>e.maxSize)return n(new Error(`File exceeds limit size:${r} > ${e.maxSize}`))}else for(const r of t)if(r.size>e.maxSize)return n(new Error(`File exceeds limit size: ${r.size} > ${e.maxSize}`))}let{zipOpts:l}=e;if(l===!0&&(l={}),l){const r=await m(t,l);return o({fileList:t,zipFile:r})}if(c)return o(t);if(!c)return o(t[0])},i.onerror=n})}})();module.exports=y;