mirror of
https://github.com/stablyai/orca.git
synced 2026-10-31 09:07:40 +00:00
* chore: audit preload root comments and track repository coverage * docs: track repository comment audit coverage * chore: keep comment audit tracker local * chore: shorten preload API contract comments --------- Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
26 lines
788 B
TypeScript
26 lines
788 B
TypeScript
import type { RendererProcessMemory } from '../shared/renderer-process-memory'
|
|
|
|
type ProcessMemorySource = Pick<NodeJS.Process, 'getProcessMemoryInfo'>
|
|
|
|
export async function readRendererProcessMemory(
|
|
source: ProcessMemorySource = process
|
|
): Promise<RendererProcessMemory | null> {
|
|
try {
|
|
const info = await source.getProcessMemoryInfo()
|
|
if (!isFiniteKilobytes(info?.private)) {
|
|
return null
|
|
}
|
|
return {
|
|
privateKB: info.private,
|
|
// Chromium omits the resident set on macOS.
|
|
...(isFiniteKilobytes(info.residentSet) ? { residentKB: info.residentSet } : {})
|
|
}
|
|
} catch {
|
|
return null
|
|
}
|
|
}
|
|
|
|
function isFiniteKilobytes(value: number | undefined): value is number {
|
|
return typeof value === 'number' && Number.isFinite(value) && value >= 0
|
|
}
|