import { execSync } from 'node:child_process'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { build as buildVite } from 'vite'; import fse from 'fs-extra'; import minimist from 'minimist'; import resViteConfig from './vite.res.config.mjs'; const args = minimist(process.argv.slice(2)); const dirname = path.dirname(fileURLToPath(import.meta.url)); fse.removeSync(path.resolve(dirname, '../.tmagic')); execSync('tmagic entry', { stdio: 'inherit', cwd: path.resolve(dirname, '../'), }); if (args.type === 'res' || args.type === 'all') { fse.removeSync(path.resolve(dirname, '../dist/entry')); for (const mode of ['value', 'config', 'event', 'ds:value', 'ds:config', 'ds:event']) { const fileName = mode.replace(':', '-'); buildVite({ root: path.resolve(dirname, '../'), clearScreen: false, configFile: false, ...resViteConfig(mode), }).then(() => { fse.copySync( path.resolve(dirname, '../dist/entry', fileName), path.resolve(dirname, '../../../playground/public/entry/vue/', fileName), ); }); } } const buildRuntime = (type) => { fse.removeSync(path.resolve(dirname, '../dist', type)); buildVite({ root: path.resolve(dirname, '../', type), clearScreen: false, configFile: path.resolve(dirname, '../', type, 'vite.config.ts'), }).then(() => { const clientFile = path.resolve(dirname, '../dist', type); fse.copySync(clientFile, path.resolve(dirname, '../../../playground/public/runtime/react', type)); }); }; if (args.type === 'page' || args.type === 'all') { buildRuntime('page'); } if (args.type === 'playground' || args.type === 'all') { buildRuntime('playground'); }