MCPcopy Create free account
hub / github.com/anomalyco/models.dev / fetchModels

Function fetchModels

packages/core/src/sync/providers/google.ts:47–75  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

45 ];
46 },
47 async fetchModels() {
48 const key = process.env.GOOGLE_API_KEY
49 ?? process.env.GEMINI_API_KEY
50 ?? process.env.GOOGLE_GENERATIVE_AI_API_KEY;
51 if (key === undefined) {
52 throw new Error("Google sync requires GOOGLE_API_KEY, GEMINI_API_KEY, or GOOGLE_GENERATIVE_AI_API_KEY");
53 }
54
55 const models: GoogleModel[] = [];
56 let pageToken: string | undefined;
57
58 do {
59 const url = new URL(API_ENDPOINT);
60 url.searchParams.set("key", key);
61 url.searchParams.set("pageSize", "1000");
62 if (pageToken !== undefined) url.searchParams.set("pageToken", pageToken);
63
64 const response = await fetch(url);
65 if (!response.ok) {
66 throw new Error(`Google models request failed: ${response.status} ${response.statusText}`);
67 }
68
69 const page = GoogleResponse.parse(await response.json());
70 models.push(...page.models ?? []);
71 pageToken = page.nextPageToken;
72 } while (pageToken !== undefined);
73
74 return { models };
75 },
76 parseModels(raw) {
77 return GoogleResponse.parse(raw).models ?? [];
78 },

Callers

nothing calls this directly

Calls 1

fetchFunction · 0.50

Tested by

no test coverage detected