import { GLib } from "astal" const cycles_count = (): string => { try { const [success, cycles] = GLib.file_get_contents("/sys/class/power_supply/BAT0/cycle_count"); if (!success || !cycles) { throw new Error("Failed to read /sys/class/ or the file content is null."); } const cyclesinfo = new TextDecoder("utf-8").decode(cycles); return cyclesinfo.replace(/\n$/, ''); } catch (error) { console.error("Error get battery cycles_count"); return ""; } } const health = (): string => { try { const [success, charge_full] = GLib.file_get_contents("/sys/class/power_supply/BAT0/charge_full"); if (!success || !charge_full) { throw new Error("Failed to read /sys/class/ or the file content is null."); } const [success_chagre_full_design, charge_full_design] = GLib.file_get_contents("/sys/class/power_supply/BAT0/charge_full_design"); if (!success_chagre_full_design || !charge_full_design) { throw new Error("Failed to read /sys/class/ or the file content is null."); } const chargefullnow = parseInt(new TextDecoder("utf-8").decode(charge_full)); const chargefulldesign = parseInt(new TextDecoder("utf-8").decode(charge_full_design)); const percents = Math.round(chargefullnow * 100 / chargefulldesign); return percents.toString() + " %"; } catch (error) { console.error("error get battery health"); return ""; } } export {cycles_count, health};