UNPKG

go-get-folder-size

Version:

Get the size of a folder by recursively iterating through all its sub(files && folders). Use go, so high-speed

15 lines (11 loc) 2.72 kB
"use strict";const y=require("./bin.cjs");require("buffer");require("path");require("child_process");require("process");require("fs");require("url");require("node:os");require("os");require("timers/promises");require("stream");require("util");require("./index-3c0f4283.js");require("readline");function h(o){return o==null?[]:Array.isArray(o)?o:[o]}function A(o,e,r,i){var l,a=o[e],u=~i.string.indexOf(e)?r==null||r===!0?"":String(r):typeof r=="boolean"?r:~i.boolean.indexOf(e)?r==="false"?!1:r==="true"||(o._.push((l=+r,l*0===0?l:r)),!!r):(l=+r,l*0===0?l:r);o[e]=a==null?u:Array.isArray(a)?a.concat(u):[a,u]}function k(o,e){o=o||[],e=e||{};var r,i,l,a,u,s={_:[]},n=0,t=0,f=0,g=o.length;const d=e.alias!==void 0,c=e.unknown!==void 0,b=e.default!==void 0;if(e.alias=e.alias||{},e.string=h(e.string),e.boolean=h(e.boolean),d)for(r in e.alias)for(i=e.alias[r]=h(e.alias[r]),n=0;n<i.length;n++)(e.alias[i[n]]=i.concat(r)).splice(n,1);for(n=e.boolean.length;n-- >0;)for(i=e.alias[e.boolean[n]]||[],t=i.length;t-- >0;)e.boolean.push(i[t]);for(n=e.string.length;n-- >0;)for(i=e.alias[e.string[n]]||[],t=i.length;t-- >0;)e.string.push(i[t]);if(b){for(r in e.default)if(a=typeof e.default[r],i=e.alias[r]=e.alias[r]||[],e[a]!==void 0)for(e[a].push(r),n=0;n<i.length;n++)e[a].push(i[n])}const q=c?Object.keys(e.alias):[];for(n=0;n<g;n++){if(l=o[n],l==="--"){s._=s._.concat(o.slice(++n));break}for(t=0;t<l.length&&l.charCodeAt(t)===45;t++);if(t===0)s._.push(l);else if(l.substring(t,t+3)==="no-"){if(a=l.substring(t+3),c&&!~q.indexOf(a))return e.unknown(l);s[a]=!1}else{for(f=t+1;f<l.length&&l.charCodeAt(f)!==61;f++);for(a=l.substring(t,f),u=l.substring(++f)||n+1===g||(""+o[n+1]).charCodeAt(0)===45||o[++n],i=t===2?[a]:a,f=0;f<i.length;f++){if(a=i[f],c&&!~q.indexOf(a))return e.unknown("-".repeat(t)+a);A(s,a,f+1<i.length||u,e)}}}if(b)for(r in e.default)s[r]===void 0&&(s[r]=e.default[r]);if(d)for(r in s)for(i=e.alias[r]||[];i.length>0;)s[i.shift()]=s[r];return s}function w(){console.log(` go-get-folder-size Get the size of a folder by recursively iterating through all its sub(files && folders). Use go, so high-speed. usage: go-get-folder-size [options] options: -h, --help check help -l --loose ignore permission error -p, --pretty pretty bytes (default true) -b, --base target base path (default cwd) `)}async function x(){const o=process.argv.slice(2),e=k(o,{default:{help:!1,pretty:!0,loose:!1,base:process.cwd()},string:["base"],boolean:["pretty","help","loose"],alias:{h:["help"],b:["base"],p:["pretty"],l:["loose"]}});if(e.help)w();else try{const r=await y.getFolderSizeBin(e.base,e.pretty,{loose:e.loose});console.log(r)}catch(r){console.error(r.message)}}x();