|
| 1 | +import * as rust from "../utils/rust-types.js"; |
| 2 | + |
1 | 3 | import { SessionGet, type Sessioned } from "../utils/session.js"; |
2 | 4 | import type { MemoryUsage, DiskUsage, CpuUsage } from "./models.js"; |
3 | 5 |
|
4 | 6 | export function scope() { |
5 | 7 | return "/usage"; |
6 | 8 | } |
7 | 9 |
|
8 | | -export type cpu_input = Sessioned<{}>; |
9 | | -export type cpu_output = CpuUsage[]; |
| 10 | +export type cpu_input = Sessioned<{ |
| 11 | + path: { |
| 12 | + scope: rust.String; |
| 13 | + }; |
| 14 | +}>; |
| 15 | +export type cpu_output = rust.Vec<CpuUsage>; |
10 | 16 | export async function cpu(input: cpu_input): Promise<cpu_output> { |
11 | | - return SessionGet(input, scope(), "/host/cpu"); |
| 17 | + return SessionGet(input, scope(), (path) => `/${path}/cpu`); |
12 | 18 | } |
13 | 19 |
|
14 | | -export type memory_input = Sessioned<{}>; |
| 20 | +export type memory_input = Sessioned<{ |
| 21 | + path: { |
| 22 | + scope: rust.String; |
| 23 | + }; |
| 24 | +}>; |
15 | 25 | export type memory_output = MemoryUsage; |
16 | 26 | export async function memory(input: memory_input): Promise<memory_output> { |
17 | | - return SessionGet(input, scope(), "/host/memory"); |
| 27 | + return SessionGet(input, scope(), (path) => `/${path}/memory`); |
18 | 28 | } |
19 | 29 |
|
20 | | -export type disk_input = Sessioned<{}>; |
21 | | -export type disk_output = DiskUsage[]; |
| 30 | +export type disk_input = Sessioned<{ |
| 31 | + path: { |
| 32 | + scope: rust.String; |
| 33 | + }; |
| 34 | +}>; |
| 35 | +export type disk_output = rust.Vec<DiskUsage>; |
22 | 36 | export async function disk(input: disk_input): Promise<disk_output> { |
23 | | - return SessionGet<disk_output>(input, scope(), "/host/disk").then((data) => |
24 | | - data.filter((d) => d.mount_point.startsWith("/mnt")) |
25 | | - ); |
| 37 | + return SessionGet<disk_output, disk_input["path"]>( |
| 38 | + input, |
| 39 | + scope(), |
| 40 | + (path) => `/${path}/disk` |
| 41 | + ).then((data) => data.filter((d) => d.mount_point.startsWith("/mnt"))); |
26 | 42 | } |
0 commit comments