import BridgeFunction from './bridgeFunction'; import { checkPermission, PermissionName, PermissionStatus, } from '../permission'; import { MiniAppError, MiniAppErrorType } from '../miniAppError'; class GetBatteryLevel extends BridgeFunction { name = 'getBatteryLevel'; protected async executeFunction() { const grantStatus = await checkPermission( PermissionName.mini_app_device_battery ); if (grantStatus !== PermissionStatus.granted) { throw new MiniAppError(MiniAppErrorType.insufficientScope); } const battery = await (navigator as any).getBattery(); if (battery?.level) { return this.cbHandler?.success({ batteryLevel: battery.level }); } else { throw new MiniAppError(MiniAppErrorType.noValueFound); } } } export default GetBatteryLevel;