From 92f5bea891bdd6f1a2bf512b4092ade4e35e1325 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Tue, 15 Aug 2023 18:59:49 -0500 Subject: [PATCH] db/relays: add "domain" column --- src/db/migrations/001_add_relays.ts | 1 + src/db/relays.ts | 7 ++++++- src/deps.ts | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/db/migrations/001_add_relays.ts b/src/db/migrations/001_add_relays.ts index a603c2ed..41f73a96 100644 --- a/src/db/migrations/001_add_relays.ts +++ b/src/db/migrations/001_add_relays.ts @@ -4,6 +4,7 @@ export async function up(db: Kysely): Promise { await db.schema .createTable('relays') .addColumn('url', 'text', (col) => col.primaryKey()) + .addColumn('domain', 'text', (col) => col.notNull()) .execute(); } diff --git a/src/db/relays.ts b/src/db/relays.ts index 5b91c682..65b009d7 100644 --- a/src/db/relays.ts +++ b/src/db/relays.ts @@ -1,9 +1,14 @@ +import { tldts } from '@/deps.ts'; import { db } from '@/db.ts'; /** Inserts relays into the database, skipping duplicates. */ function addRelays(relays: `wss://${string}`[]) { if (!relays.length) return Promise.resolve(); - const values = relays.map((url) => ({ url })); + + const values = relays.map((url) => ({ + url, + domain: tldts.getDomain(url), + })); return db.insertInto('relays') .values(values) diff --git a/src/deps.ts b/src/deps.ts index d4431c7a..2c7d67d5 100644 --- a/src/deps.ts +++ b/src/deps.ts @@ -60,3 +60,4 @@ export { sql, } from 'npm:kysely@^0.25.0'; export { DenoSqliteDialect } from 'https://gitlab.com/soapbox-pub/kysely-deno-sqlite/-/raw/v1.0.0/mod.ts'; +export { default as tldts } from 'npm:tldts@^6.0.14';