cross-magic
Version:
跨平台公共模块
47 lines (39 loc) • 990 B
text/typescript
import EnumRunTimePlatForm from '@/common/constants/runTimePlatform'
export type RunTimeData = {
runTimePlatform: EnumRunTimePlatForm
}
export interface IRuntime {}
export abstract class RunTime {
private _runTimeData!: RunTimeData
constructor(runTimeData?: RunTimeData) {
if (runTimeData) {
this._runTimeData = runTimeData
}
}
/**
* 各个运行环境的全局宿主对象
* 如浏览器环境就是window
* 微信小程序环境就是wx
*/
abstract get g(): any
/**
* 取运行时数据
*/
get runTimeData(): RunTimeData {
return this._runTimeData
}
/**
* 设置运行时数据
*/
set runTimeData(runTimeData: RunTimeData) {
if (runTimeData && this._runTimeData !== runTimeData) {
this._runTimeData = runTimeData
}
}
/**
* 运行平台
*/
get runTimePlatform(): EnumRunTimePlatForm {
return (this._runTimeData && this._runTimeData.runTimePlatform) || EnumRunTimePlatForm.web || ''
}
}