MCPcopy Create free account
hub / github.com/error311/FileRise / traverseFileTreePromise

Function traverseFileTreePromise

public/js/upload.js:439–469  ·  view source on GitHub ↗
(item, path = "")

Source from the content-addressed store, hash-verified

437----------------------------------------------------- */
438// Recursively traverse a dropped folder.
439function traverseFileTreePromise(item, path = "") {
440 return new Promise((resolve) => {
441 if (item.isFile) {
442 item.file(file => {
443 // Store relative path for folder uploads.
444 Object.defineProperty(file, 'customRelativePath', {
445 value: path + file.name,
446 writable: true,
447 configurable: true
448 });
449 Object.defineProperty(file, 'relativePath', {
450 value: path + file.name,
451 writable: true,
452 configurable: true
453 });
454 resolve([file]);
455 });
456 } else if (item.isDirectory) {
457 const dirReader = item.createReader();
458 dirReader.readEntries(entries => {
459 const promises = [];
460 for (let i = 0; i < entries.length; i++) {
461 promises.push(traverseFileTreePromise(entries[i], path + item.name + "/"));
462 }
463 Promise.all(promises).then(results => resolve(results.flat()));
464 });
465 } else {
466 resolve([]);
467 }
468 });
469}
470
471// --- Lazy loader for Resumable.js (no CSP inline, cached, safe) ---
472const RESUMABLE_SRC = withBase('/vendor/resumable/1.1.0/resumable.min.js?v={{APP_QVER}}');

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected