import { addRelays } from '@/db/relays.ts';
import { filteredArray } from '@/schema.ts';
import { relaySchema } from '@/utils.ts';

switch (Deno.args[0]) {
  case 'sync':
    await sync(Deno.args.slice(1));
    break;
  default:
    console.log('Usage: deno run -A scripts/relays.ts sync <url>');
}

async function sync([url]: string[]) {
  if (!url) {
    console.error('Error: please provide a URL');
    Deno.exit(1);
  }
  const response = await fetch(url);
  const data = await response.json();
  const values = filteredArray(relaySchema).parse(data) as `wss://${string}`[];
  await addRelays(values, { active: true });
  console.log(`Done: added ${values.length} relays.`);
}