const fs = require('fs'); const path = require('path'); const DTS_DIR = path.join(__dirname, '..', '..', 'assets', 'Scripts', 'proto'); const NAMESPACE = 'proto'; function walk(dir) { let results = []; for (const name of fs.readdirSync(dir)) { const p = path.join(dir, name); const stat = fs.statSync(p); if (stat.isDirectory()) results = results.concat(walk(p)); else if (name.endsWith('.d.ts')) results.push(p); } return results; } function wrapFile(filePath) { const original = fs.readFileSync(filePath, 'utf8'); if (original.includes(`declare namespace ${NAMESPACE}`)) { console.log(`跳过已包装文件: ${filePath}`); return; } const wrapped = `declare namespace ${NAMESPACE} {\n${original}\n}\nexport default ${NAMESPACE};\n`; fs.writeFileSync(filePath, wrapped, 'utf8'); console.log(`已包装文件: ${filePath}`); } const files = walk(DTS_DIR); files.forEach(wrapFile); console.log(`处理完成,共包装 ${files.length} 个 .d.ts 文件`);