/* 진짜 TS 를 그 자리에서 CommonJS 로 트랜스파일해 부름 — 상대 경로는 진짜 파일(.ts)로 따라감. * ESM 드라이버는 `createRequire(import.meta.url)(이 파일)` 로 받음(test_346_4_profile_history · test_364_1). */ const fs = require("fs"); const path = require("path"); const ts = require(path.join(__dirname, "..", "..", "config", "node_modules", "typescript")); const cache = new Map(); function loadTs(file) { const full = path.resolve(file); if (cache.has(full)) return cache.get(full); const js = ts.transpileModule(fs.readFileSync(full, "utf8"), { compilerOptions: { module: ts.ModuleKind.CommonJS, target: ts.ScriptTarget.ES2020 }, }).outputText; const box = { exports: {} }; cache.set(full, box.exports); const near = (request) => request.startsWith(".") ? loadTs(path.join(path.dirname(full), `${request}.ts`)) : require(request); new Function("exports", "module", "require", js)(box.exports, box, near); return box.exports; } module.exports = { loadTs };