import * as fs from 'fs-extra'
import path from 'node:path'
import { filesFragmentReplace, logYellow, isBuildForVue2, logGreen } from './utils'
const replaceVue3Type = process.env.REPLACE_VUE3_TYPE
const pathFromWorkspaceRoot = (...args) => path.join(__dirname, '../..', ...args)
if (replaceVue3Type === 'typings') {
if (isBuildForVue2()) {
const vue2Dir = pathFromWorkspaceRoot('packages/vue/dist-vue2')
if (fs.existsSync(vue2Dir)) {
filesFragmentReplace(vue2Dir, [/"vue2/g], ['"vue'])
}
const vue2demiDir = pathFromWorkspaceRoot('packages/vue/dist-vue2/vue-demi')
if (fs.existsSync(vue2demiDir)) {
filesFragmentReplace(
vue2demiDir,
[/'virtual:common\/adapter\/vue'/g, /'virtual:common\/types\/vue'/g, /'virtual:locale\/vue'/g],
["'./vue2'", "'./types/vue2'", "'./vue2'"]
)
} else {
logYellow(`${vue2demiDir} does not exist.`)
}
logGreen('[vue2] pnpm run dts-replace done.')
} else {
const vue3Dir = pathFromWorkspaceRoot('packages/vue/dist-vue3')
if (fs.existsSync(vue3Dir)) {
filesFragmentReplace(vue3Dir, [/"vue3/g, /@opentiny\/vue-/g], ['"vue', '@opentiny/vue3-'])
}
const vue3demiDir = path.resolve(vue3Dir, 'vue-demi')
if (fs.existsSync(vue3demiDir)) {
filesFragmentReplace(
vue3demiDir,
[/'virtual:common\/adapter\/vue'/g, /'virtual:common\/types\/vue'/g, /'virtual:locale\/vue'/g],
["'./vue3'", "'./types/vue3'", "'./vue3'"]
)
} else {
logYellow(`${vue3demiDir} directory does not exist.`)
}
logGreen('[vue3] pnpm run dts-replace done.')
}
} else {
filesFragmentReplace(pathFromWorkspaceRoot('packages/vue/dist-vue3'), /@opentiny\/vue(?!3)/g, '@opentiny/vue3')
}