// bun --env-file=.env scripts/update-font-db.ts

import {$} from 'bun';

const response = await fetch(
	`https://content-webfonts.googleapis.com/v1/webfonts?capability=WOFF2&key=${process.env.GOOGLE_FONTS_API_KEY}`,
);

const json = await response.json();

const contents = `
// Auto-generated by scripts/update-font-db.ts

export type Font = {
  family: string;
  variants: string[];
  subsets: string[];
  version: string;
  lastModified: string;
  category: string;
  files?: unknown;
  kind?: unknown;
  menu?: unknown;
};

export const googleFonts: Font[] = ${JSON.stringify(json.items, null, 2)};
`.trimStart();

await Bun.write(__dirname + '/google-fonts.ts', contents);
await $`bunx prettier --write ${__dirname}/google-fonts.ts`;

const packageJson = JSON.parse(await Bun.file('package.json').text());
packageJson.typesVersions['>=1.0'] = {};
await Bun.write('package.json', JSON.stringify(packageJson, null, 2));

await $`bun scripts/generate.ts && bun scripts/generate-index.ts`;
await $`bunx prettier --write src`;
await $`bun run make`;
await $`bun ensure-generation.ts`;

export {};
