const fs = require('node:fs'), vm = require('node:vm'), ts = require('typescript'); const code = ts.transpileModule(fs.readFileSync('assets/Script/module/Config/ActivityBundleLoader.ts', 'utf8'), { compilerOptions: { module: ts.ModuleKind.CommonJS, target: ts.ScriptTarget.ES2017 } }).outputText; module.exports = (cc, window) => { if (!window) { const tasks = new Map(); const ensureBundle = name => { if (!tasks.has(name)) tasks.set(name, new Promise((resolve, reject) => { cc.assetManager.loadBundle(name, (error, bundle) => error ? reject(error) : resolve(bundle)); }).catch(error => { tasks.delete(name); throw error; })); return tasks.get(name); }; window = { __activityBundles: { ensureBundle, retainGroup: () => () => {}, prepareGroup: async () => {}, acquireBundle: async name => ({ bundle: await ensureBundle(name), release() {} }) } }; } const exports = {}; vm.runInNewContext(code, { exports, cc, window }); return { default: exports.default }; };