Surge_by_SukkaW/Dist/Build/lib/tree-dir.cjs
SukkaW d354c5e988
Some checks are pending
Build / Build (push) Waiting to run
Build / Diff output (push) Blocked by required conditions
Build / Deploy to Cloudflare Pages (push) Blocked by required conditions
Build / Deploy to GitHub and GitLab (push) Blocked by required conditions
Chore: maintainance
2025-02-07 17:52:36 +08:00

75 lines
2.6 KiB
JavaScript

'use strict';Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});const treeDir=require('../../_virtual/tree-dir.cjs'),require$$2=require('node:fs/promises'),require$$0=require('node:path');var hasRequiredTreeDir;
function requireTreeDir () {
if (hasRequiredTreeDir) return treeDir.__exports;
hasRequiredTreeDir = 1;
(function (exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
TreeFileType: function() {
return TreeFileType;
},
treeDir: function() {
return treeDir;
}
});
const _promises = /*#__PURE__*/ _interop_require_default(require$$2);
const _nodepath = require$$0;
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
var TreeFileType = /*#__PURE__*/ function(TreeFileType) {
TreeFileType[TreeFileType["FILE"] = 1] = "FILE";
TreeFileType[TreeFileType["DIRECTORY"] = 2] = "DIRECTORY";
return TreeFileType;
}({});
async function treeDir(rootPath) {
const tree = [];
const walk = async (dir, node, dirRelativeToRoot = '')=>{
const promises = [];
for await (const child of (await _promises.default.opendir(dir))){
// Ignore hidden files
if (child.name[0] === '.' || child.name === 'CNAME') {
continue;
}
const childFullPath = child.parentPath + _nodepath.sep + child.name;
const childRelativeToRoot = dirRelativeToRoot + _nodepath.sep + child.name;
if (child.isDirectory()) {
const newNode = {
type: 2,
name: child.name,
path: childRelativeToRoot,
children: []
};
node.push(newNode);
promises.push(walk(childFullPath, newNode.children, childRelativeToRoot));
continue;
}
if (child.isFile()) {
const newNode = {
type: 1,
name: child.name,
path: childRelativeToRoot
};
node.push(newNode);
continue;
}
}
return Promise.all(promises);
};
await walk(rootPath, tree);
return tree;
}
} (treeDir.__exports));
return treeDir.__exports;
}exports.__require=requireTreeDir;