mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-21 05:40:29 +08:00
75 lines
2.6 KiB
JavaScript
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; |