import { context } from '@/common/context'; import { createSyncAPI, registerCanIUse } from './base'; import { createCommands } from '@jolibox/common'; import { ISystemInfo } from '@jolibox/types'; const commands = createCommands(); const API_ENV = 'env'; const API_GET_SYSTEM_SYNC = 'getSystemInfoSync'; const getSystemInfo = () => { let config = { system: context.deviceInfo.system, platform: context.deviceInfo.platform.toLowerCase(), brand: context.deviceInfo.brand, pixelRatio: context.deviceInfo.pixelRatio, language: context.deviceInfo.lang, version: context.sdkInfo.jssdkVersion, appName: context.hostInfo?.appName, SDKVersion: context.sdkInfo.nativeSDKVersion } as ISystemInfo; const version = context.hostInfo?.version; version && (config = { ...config, version }); const appName = context.hostInfo?.appName; appName && (config = { ...config, appName }); const SDKVersion = context.sdkInfo?.jssdkVersion; SDKVersion && (config = { ...config, SDKVersion }); return config; }; const getSystemInfoSync = createSyncAPI(API_GET_SYSTEM_SYNC, { implement: getSystemInfo }); const getEnv = createSyncAPI(API_ENV, { implement: () => { return { ...context.hostInfo, sdkInfo: context.sdkInfo, platform: context.platform, deviceInfo: context.deviceInfo }; } }); commands.registerCommand(`API.env`, getEnv); commands.registerCommand(`API.getSystemInfoSync`, getSystemInfoSync); registerCanIUse('env', { version: '1.0.0' }); registerCanIUse('getSystemInfoSync', { version: '1.0.0' });