From a3acca9d80876bfdad3827a1451e17c97abee1e5 Mon Sep 17 00:00:00 2001 From: Junjun Deng Date: Tue, 24 Dec 2024 20:22:08 +0800 Subject: [PATCH 1/3] Make database type schema agnostic --- src/db/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/db/index.ts b/src/db/index.ts index fb2a0ea..210bd61 100644 --- a/src/db/index.ts +++ b/src/db/index.ts @@ -4,7 +4,7 @@ import mysql from "mysql2/promise"; import path from "node:path"; import * as schema from "./schema"; -export type Database = MySql2Database; +export type Database = MySql2Database>; export const affectedRows = (rawResult: MySqlRawQueryResult) => { return rawResult[0].affectedRows @@ -16,7 +16,7 @@ export async function connect(url: string) { return db; } -export function migrateDB(db: MySql2Database>) { +export function migrateDB(db: Database) { return migrate(db, { migrationsFolder: path.join(import.meta.dirname, '../drizzle') }); From ac8aa3085c96aede421a0f68b5a97baa853b2128 Mon Sep 17 00:00:00 2001 From: Junjun Deng Date: Tue, 24 Dec 2024 20:24:05 +0800 Subject: [PATCH 2/3] Connect with pool --- src/db/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/db/index.ts b/src/db/index.ts index 210bd61..5191808 100644 --- a/src/db/index.ts +++ b/src/db/index.ts @@ -11,7 +11,7 @@ export const affectedRows = (rawResult: MySqlRawQueryResult) => { }; export async function connect(url: string) { - const connection = await mysql.createConnection(url); + const connection = mysql.createPool(url); const db = drizzle(connection, { schema, mode: 'default' }); return db; } From e2ff5c43feb618bf5ffea460256fa24cb7b3aa98 Mon Sep 17 00:00:00 2001 From: Junjun Deng Date: Tue, 24 Dec 2024 20:37:02 +0800 Subject: [PATCH 3/3] Make `connect` function synchronous --- package.json | 2 +- src/db/index.ts | 2 +- src/test.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 1d51aad..858738b 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "name": "mysql-queue", "description": "A lite job queue for Node.js", "author": "lilac ", - "version": "0.1.3", + "version": "0.1.4", "type": "module", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/src/db/index.ts b/src/db/index.ts index 5191808..6185eaa 100644 --- a/src/db/index.ts +++ b/src/db/index.ts @@ -10,7 +10,7 @@ export const affectedRows = (rawResult: MySqlRawQueryResult) => { return rawResult[0].affectedRows }; -export async function connect(url: string) { +export function connect(url: string) { const connection = mysql.createPool(url); const db = drizzle(connection, { schema, mode: 'default' }); return db; diff --git a/src/test.ts b/src/test.ts index 5d5fb1f..83a7323 100644 --- a/src/test.ts +++ b/src/test.ts @@ -5,7 +5,7 @@ const defaultUrl = env['DATABASE_URL'] ?? 'mysql://root:root@localhost:3306/queu async function prepareDB(url?: string) { - const db = await connect(url ?? defaultUrl); + const db = connect(url ?? defaultUrl); await migrateDB(db); return db; }