从服务端归档恢复项目源码(服务端 upload-pack 异常,无法 clone)

This commit is contained in:
CodeBuddy
2026-10-26 16:35:28 +08:00
commit 875976a120
318 changed files with 42625 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
const fs = require('node:fs');
const vm = require('node:vm');
const path = require('node:path');
module.exports = function createLoader(globals, mocks = {}) {
const modules = new Map();
function load(file) {
file = path.resolve(file);
if (modules.has(file)) return modules.get(file).exports;
const module = { exports: {} };
modules.set(file, module);
vm.runInNewContext(fs.readFileSync(file, 'utf8'), {
...globals, module, exports: module.exports,
require(name) {
if (mocks[name]) return mocks[name];
if (!name.startsWith('.')) return require(name);
const resolved = path.resolve(path.dirname(file), name);
return load(path.extname(resolved) ? resolved : resolved + '.js');
}
}, { filename: file });
return module.exports;
}
return load;
};