isAvailable function exported ✓ 86.7%
Last updated: 2026-03-03T18:32:34.140Z
Location
Metrics
LOC: 33
Complexity: 8
Params: 0
Coverage: 86.7% (13/15 lines, 3x executed)
Signature
isAvailable(): : Promise<boolean>
Summary
Checks whether the Chrome Built-in AI (Gemini Nano) Prompt API is available in the current browser.
Tags
#@returns `true` when the API exists and readiness is "available" or "downloadable"
Source Code
export async function isAvailable(): Promise<boolean> {
try {
const api = getLanguageModelApi();
if (!api) {
const context =
typeof globalThis !== "undefined"
? Object.getOwnPropertyNames(globalThis).filter((k) =>
/ai|language|model|prompt/i.test(k),
)
: [];
log.warn(
`LanguageModel API não encontrada no globalThis. ` +
`Contexto: ${typeof self !== "undefined" ? "service-worker" : "unknown"}, ` +
`AI-related keys: [${context.length > 0 ? context.join(", ") : "nenhuma"}]. ` +
`Chrome AI indisponível.`,
);
return false;
}
const result = await api.availability({
expectedInputs: [{ type: "text", languages: ["en"] }],
expectedOutputs: [{ type: "text", languages: ["en"] }],
});
log.debug(`availability() retornou: "${result}"`);
const available = result === "available" || result === "downloadable";
if (!available) {
log.warn(`AI não disponível (status: "${result}").`);
}
return available;
} catch (err) {
log.error("Erro ao verificar disponibilidade:", err);
return false;
}
}
Dependencies (Outgoing)
| Target | Type |
|---|---|
| getLanguageModelApi | calls |
| k | dynamic_call |
Impact (Incoming)
| Source | Type |
|---|---|
| getLanguageModelApi | uses |