// patch-config.js: replace DataServerBaseUrl and disabledev before dev server or build const fs = require('fs'); const path = require('path'); const targetFile = path.join(__dirname, '..', 'src', 'playground', 'config.js'); function decideEnv() { const ev = (process.env.npm_lifecycle_event || '').toLowerCase(); if (ev.includes('build:prod')) return 'prod'; if (ev.includes('build:test')) return 'test'; if (ev.includes('start')) return 'start'; if (ev.includes('dev')) return 'dev'; // default return 'start'; } function getConfigForEnv(env) { switch (env) { case 'dev': case 'test': return { url: 'https://test.server.001code.com', disabledev: false }; case 'prod': return { url: 'https://server.001code.com', disabledev: true }; case 'start': default: return { url: 'http://127.0.0.1:8000', disabledev: false }; } } function replaceContent(src, url, disabledev) { let out = src; out = out.replace(/DataServerBaseUrl\s*:\s*[^,]+/g, `DataServerBaseUrl: "${url}"`); out = out.replace(/disabledev\s*:\s*[^,]+/g, `disabledev: ${disabledev}`); return out; } (function run() { const env = decideEnv(); const cfg = getConfigForEnv(env); console.log(`[patch-config] Env=${env} -> DataServerBaseUrl="${cfg.url}", disabledev=${cfg.disabledev}`); try { const original = fs.readFileSync(targetFile, 'utf8'); const patched = replaceContent(original, cfg.url, cfg.disabledev); if (patched !== original) { fs.writeFileSync(targetFile, patched, 'utf8'); console.log('[patch-config] Applied replacements to', targetFile); } else { console.warn('[patch-config] No changes applied. Patterns not found or already set.'); } } catch (err) { console.error('[patch-config] Failed to patch', targetFile, err); process.exit(1); } })();