Spaces:
Paused
Paused
File size: 1,436 Bytes
4f2665c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | /**
* Shared quota conversion utility.
* Converts CodexUsageResponse (raw backend) → CodexQuota (normalized).
*/
import type { CodexQuota } from "./types.js";
import type { CodexUsageResponse } from "../proxy/codex-api.js";
export function toQuota(usage: CodexUsageResponse): CodexQuota {
const sw = usage.rate_limit.secondary_window;
return {
plan_type: usage.plan_type,
rate_limit: {
allowed: usage.rate_limit.allowed,
limit_reached: usage.rate_limit.limit_reached,
used_percent: usage.rate_limit.primary_window?.used_percent ?? null,
reset_at: usage.rate_limit.primary_window?.reset_at ?? null,
limit_window_seconds: usage.rate_limit.primary_window?.limit_window_seconds ?? null,
},
secondary_rate_limit: sw
? {
limit_reached: usage.rate_limit.limit_reached,
used_percent: sw.used_percent ?? null,
reset_at: sw.reset_at ?? null,
limit_window_seconds: sw.limit_window_seconds ?? null,
}
: null,
code_review_rate_limit: usage.code_review_rate_limit
? {
allowed: usage.code_review_rate_limit.allowed,
limit_reached: usage.code_review_rate_limit.limit_reached,
used_percent:
usage.code_review_rate_limit.primary_window?.used_percent ?? null,
reset_at:
usage.code_review_rate_limit.primary_window?.reset_at ?? null,
}
: null,
};
}
|