web_lib

Common web application libraries
git clone https://radroots.dev/git/web_lib.git
Log | Files | Refs | LICENSE

commit 0582d226f858d43bd96c282c4abf7c4f20ffeb19
parent b14e41defeee68a90d49d4a7d6b0bbfb6fcb1733
Author: triesap <137732411+triesap@users.noreply.github.com>
Date:   Fri, 23 Aug 2024 10:23:47 +0000

client: add capacitor device api

Diffstat:
Mclient/package.json | 1+
Aclient/src/capacitor/device.ts | 20++++++++++++++++++++
Mclient/src/capacitor/index.ts | 8+++++++-
Mclient/src/types.ts | 11+++++++++++
4 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/client/package.json b/client/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "@capacitor/core": "^6.1.2", + "@capacitor/device": "^6.0.0", "@radroots/capacitor-secure-storage": "workspace:*" }, "devDependencies": { diff --git a/client/src/capacitor/device.ts b/client/src/capacitor/device.ts @@ -0,0 +1,20 @@ +import { Device } from '@capacitor/device'; +import type { CapacitorDeviceBatteryInfo, CapacitorDeviceInfo, IClientDevice } from '../types'; + + +export class CapacitorClientDevice implements IClientDevice { + public async info(): Promise<CapacitorDeviceInfo | undefined> { + try { + const res = await Device.getInfo(); + return res; + } catch (e) { }; + } + + public async battery(): Promise<CapacitorDeviceBatteryInfo | undefined> { + try { + const res = await Device.getBatteryInfo(); + return res; + } catch (e) { }; + + } +} diff --git a/client/src/capacitor/index.ts b/client/src/capacitor/index.ts @@ -1,12 +1,14 @@ import { Capacitor } from "@capacitor/core"; -import type { IClient, IClientKeystore, IClientPlatform } from "../types"; +import type { IClient, IClientDevice, IClientKeystore, IClientPlatform } from "../types"; import { parse_platform } from "../utils"; +import { CapacitorClientDevice } from "./device"; import { CapacitorClientKeystore } from "./keystore"; export class ClientCapacitor implements IClient { private _platform: IClientPlatform = parse_platform(Capacitor.getPlatform()); private _keystore: IClientKeystore = new CapacitorClientKeystore(); + private _device: IClientDevice = new CapacitorClientDevice(); public get platform() { return this._platform; @@ -15,4 +17,8 @@ export class ClientCapacitor implements IClient { public get keystore() { return this._keystore; } + + public get device() { + return this._device; + } }; \ No newline at end of file diff --git a/client/src/types.ts b/client/src/types.ts @@ -1,6 +1,12 @@ +import { type BatteryInfo, type DeviceInfo } from '@capacitor/device'; + +export type CapacitorDeviceInfo = DeviceInfo; +export type CapacitorDeviceBatteryInfo = BatteryInfo; + export type IClient = { platform: IClientPlatform; keystore: IClientKeystore; + device: IClientDevice; }; export type IClientPlatform = `androiď` | `ios` | `web`; @@ -12,3 +18,8 @@ export type IClientKeystore = { keys(): Promise<string[] | undefined>; remove(key: string): Promise<boolean>; }; + +export type IClientDevice = { + info(): Promise<CapacitorDeviceInfo | undefined>; + battery(): Promise<CapacitorDeviceBatteryInfo | undefined>; +};