import type { Plugin } from 'vite'; import { readFileSync, writeFileSync } from 'fs'; import { resolve } from 'path'; export function replaceDomain(): Plugin { let domain: string | undefined; return { name: 'foxsky-replace-domain', config(config) { domain = process.env.OAUTH_DOMAIN; if (domain) { config.define = config.define ?? {}; config.define['__OAUTH_DOMAIN__'] = JSON.stringify(domain); config.define['__DEEP_LINK_HOST__'] = JSON.stringify(domain); } }, closeBundle() { if (!domain) return; const metadataPath = resolve(process.cwd(), 'dist', 'client-metadata.json'); try { let content = readFileSync(metadataPath, 'utf-8'); content = content.replace(/__DOMAIN__/g, domain); writeFileSync(metadataPath, content, 'utf-8'); } catch { } }, }; }