@fairdatasociety/fdp-play
Version:
Orchestration CLI for spinning up local development Bee cluster and FDP environment with Docker
1 lines • 1.4 kB
JavaScript
;var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getFolderSize=exports.makeCollectionFromFS=void 0;const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path"));async function makeCollectionFromFS(e){if("string"!=typeof e)throw new TypeError("dir has to be string!");if(""===e)throw new TypeError("dir must not be empty string!");return buildCollectionRelative(e,"")}async function buildCollectionRelative(e,t){const i=path_1.default.join(e,t),o=await fs_1.default.promises.opendir(i);let r=[];for await(const a of o){const i=path_1.default.join(e,t,a.name),o=path_1.default.join(t,a.name);a.isFile()?r.push({path:o,size:(await fs_1.default.promises.stat(i)).size,fsPath:i}):a.isDirectory()&&(r=[...await buildCollectionRelative(e,o),...r])}return r}async function getFolderSize(e){if("string"!=typeof e)throw new TypeError("dir has to be string!");if(""===e)throw new TypeError("dir must not be empty string!");const t=await fs_1.default.promises.opendir(e);let i=0;for await(const o of t)if(o.isFile()){i+=(await fs_1.default.promises.stat(path_1.default.join(e,o.name))).size}else o.isDirectory()&&(i+=await getFolderSize(path_1.default.join(e,o.name)));return i}exports.makeCollectionFromFS=makeCollectionFromFS,exports.getFolderSize=getFolderSize;