openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
32 lines (31 loc) • 994 B
JavaScript
import { normalizeOptionalString, readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
//#region extensions/google/oauth-token-shared.ts
function parseGoogleOauthApiKey(apiKey) {
try {
const parsed = JSON.parse(apiKey);
return {
token: readStringValue(parsed.token),
projectId: readStringValue(parsed.projectId)
};
} catch {
return null;
}
}
//#endregion
//#region extensions/google/gemini-auth.ts
function parseGeminiAuth(apiKey) {
const parsed = apiKey.startsWith("{") ? parseGoogleOauthApiKey(apiKey) : null;
if (parsed?.token) return { headers: {
Authorization: `Bearer ${parsed.token}`,
"Content-Type": "application/json"
} };
return { headers: {
"x-goog-api-key": apiKey,
"Content-Type": "application/json"
} };
}
function resolveGoogleEnvApiKey() {
return normalizeOptionalString(process.env.GEMINI_API_KEY) ?? normalizeOptionalString(process.env.GOOGLE_API_KEY);
}
//#endregion
export { resolveGoogleEnvApiKey as n, parseGeminiAuth as t };