/**
 * 主题构建预处理:将设计 token 中的圆角变量注入到 reset.less。
 *
 * 流程:
 * 1. 从 theme/theme.json 读取 baseLayout.radius(基础圆角 + aliasToken 语义别名)
 * 2. 经 loadCssVar 转为 CSS 变量映射(别名转为 var(...) 引用)
 * 3. 拼成挂在 html 上的 CSS 变量块
 * 4. 将原始 reset.less 备份为 reset-copy.less,再把变量块追加到 reset.less
 *
 * 在构建链路中的位置:clean → build-token.js → build:theme → replace-img.js
 * 后续由 replace-reset.js 用备份还原 reset.less,避免源文件被永久改脏。
 * 注意:本脚本只处理 radius(圆角),不处理颜色、间距等其它 token。
 */
const fs = require('node:fs')
const path = require('node:path')

const { loadCssVar } = require('../plugins/loadTheme.js')
const designToken = require('../theme/theme.json')

const borderRadiusToken = loadCssVar(designToken.baseLayout.radius)

const sourceFile = path.resolve(__dirname, '../src/base/reset.less')
const destFile = path.resolve(__dirname, '../src/base/reset-copy.less')
let additions = '\nhtml {\n'

for (let key in borderRadiusToken) {
  additions += `${key}: ${borderRadiusToken[key]};\n`
}

additions += '}'

try {
  fs.copyFileSync(sourceFile, destFile)

  const data = fs.readFileSync(sourceFile, 'utf8')
  fs.writeFileSync(sourceFile, data + additions, 'utf8')
} catch (err) {
  console.error('Failed to process file:', err)
  process.exit(1)
}