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

123 lines (119 loc) 3.6 kB
import { getFolderSizeBin as y } from "./bin.mjs"; import "buffer"; import "path"; import "child_process"; import "process"; import "fs"; import "url"; import "node:os"; import "os"; import "timers/promises"; import "stream"; import "util"; import "./index-4f2f13ba.mjs"; import "readline"; function h(t) { return t == null ? [] : Array.isArray(t) ? t : [t]; } function p(t, e, r, i) { var l, o = t[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" || (t._.push((l = +r, l * 0 === 0 ? l : r)), !!r) : (l = +r, l * 0 === 0 ? l : r); t[e] = o == null ? u : Array.isArray(o) ? o.concat(u) : [o, u]; } function A(t, e) { t = t || [], e = e || {}; var r, i, l, o, u, f = { _: [] }, n = 0, a = 0, s = 0, g = t.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]] || [], a = i.length; a-- > 0; ) e.boolean.push(i[a]); for (n = e.string.length; n-- > 0; ) for (i = e.alias[e.string[n]] || [], a = i.length; a-- > 0; ) e.string.push(i[a]); if (b) { for (r in e.default) if (o = typeof e.default[r], i = e.alias[r] = e.alias[r] || [], e[o] !== void 0) for (e[o].push(r), n = 0; n < i.length; n++) e[o].push(i[n]); } const m = c ? Object.keys(e.alias) : []; for (n = 0; n < g; n++) { if (l = t[n], l === "--") { f._ = f._.concat(t.slice(++n)); break; } for (a = 0; a < l.length && l.charCodeAt(a) === 45; a++) ; if (a === 0) f._.push(l); else if (l.substring(a, a + 3) === "no-") { if (o = l.substring(a + 3), c && !~m.indexOf(o)) return e.unknown(l); f[o] = !1; } else { for (s = a + 1; s < l.length && l.charCodeAt(s) !== 61; s++) ; for (o = l.substring(a, s), u = l.substring(++s) || n + 1 === g || ("" + t[n + 1]).charCodeAt(0) === 45 || t[++n], i = a === 2 ? [o] : o, s = 0; s < i.length; s++) { if (o = i[s], c && !~m.indexOf(o)) return e.unknown("-".repeat(a) + o); p(f, o, s + 1 < i.length || u, e); } } } if (b) for (r in e.default) f[r] === void 0 && (f[r] = e.default[r]); if (d) for (r in f) for (i = e.alias[r] || []; i.length > 0; ) f[i.shift()] = f[r]; return f; } function k() { 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 w() { const t = process.argv.slice(2), e = A(t, { 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) k(); else try { const r = await y( e.base, e.pretty, { loose: e.loose } ); console.log(r); } catch (r) { console.error(r.message); } } w();