webdev-power-kit
Version:
A powerful toolkit that simplifies access to browser features like clipboard, notifications, battery, vibration, and more — perfect for modern web developers.
34 lines (33 loc) • 1.02 kB
JavaScript
/**
* Returns the battery status using the Navigator API.
* @returns Promise that resolves to a BatteryManager object
*/
export async function getBattery() {
if (!("getBattery" in navigator)) {
throw new Error("Battery API not supported.");
}
return await navigator.getBattery();
}
/**
* Returns current battery level as percentage (0–100).
*/
export async function getBatteryLevel() {
const battery = await getBattery();
return battery.level * 100;
}
/**
* Returns current charging status (true/false).
*/
export async function isBatteryCharging() {
const battery = await getBattery();
return battery.charging;
}
/**
* Subscribes to battery level or charging change events.
* @param onChange Callback that runs when battery info updates
*/
export async function onBatteryChange(onChange) {
const battery = await getBattery();
battery.addEventListener("levelchange", () => onChange(battery));
battery.addEventListener("chargingchange", () => onChange(battery));
}