import App from './App'

// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
	...App
})
app.$mount()
// #endif

// #ifdef VUE3
import {
	createSSRApp
} from 'vue'
import { createPinia } from 'pinia'

// // 在不支持 \p 的环境下，用普通正则替换
// if (typeof RegExp !== 'undefined') {
//   const originalRegExp = window.RegExp
  
//   // 检测是否支持 Unicode 属性
//   let supportsUnicodeProperty = false
//   try {
//     new RegExp('\\p{L}', 'u')
//     supportsUnicodeProperty = true
//   } catch (e) {
//     supportsUnicodeProperty = false
//   }
  
//   // 如果不支持，创建一个安全的 RegExp 包装器
//   if (!supportsUnicodeProperty) {
//     window.RegExp = function(pattern, flags) {
//       if (typeof pattern === 'string') {
//         // 移除正则中的 \p{L} 和 \p{N}
//         pattern = pattern.replace(/\\p\{L\}/g, '[A-Za-z\\u00C0-\\u00FF]')
//         pattern = pattern.replace(/\\p\{N\}/g, '[0-9]')
//         pattern = pattern.replace(/\\p\{L\}|\\p\{N\}/g, '[A-Za-z0-9\\u00C0-\\u00FF]')
//       }
//       return new originalRegExp(pattern, flags)
//     }
//     window.RegExp.prototype = originalRegExp.prototype
//   }
// }

export function createApp() {
	// 1. 创建Vue实例
	const app = createSSRApp(App)
	// 2. 创建Pinia实例并挂载（必须在mount前）
	const pinia = createPinia()
	// 使用 Pinia
	app.use(pinia)
	return {
		app,
		pinia // 暴露pinia，避免后续调用时丢失上下文
	}
}
// #endif