yeg
2026-09-09 d67f933e50c7b5bf8c90e7d7db0000721ce796cc
1
2
3
4
5
6
7
8
9
10
11
12
const fs = require('node:fs');
const path = require('node:path');
const ts = require('typescript');
// 无服务的公共绘图函数测试;加载器只负责转译本地 TypeScript 模块。
module.exports = function load(file, external = {}) {
  if (file instanceof URL) file = require('node:url').fileURLToPath(file);
  const source = fs.readFileSync(file, 'utf8');
  const script = ts.transpileModule(source, { compilerOptions: { target: ts.ScriptTarget.ES2022, module: ts.ModuleKind.CommonJS } }).outputText;
  const exports = {};
  new Function('exports', 'require', script)(exports, id => Object.hasOwn(external, id) ? external[id] : id.startsWith('.') ? load(path.resolve(path.dirname(file), id.endsWith('.ts') ? id : id + '.ts'), external) : require(id));
  return exports;
};