From b3d6c523a93468c4dca7a1164409209eb150e10a Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Tue, 28 Oct 2025 21:26:21 +0900 Subject: [PATCH] Fix crashes in Postgres session adapter --- packages/session/src/adapters/postgres.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/session/src/adapters/postgres.ts b/packages/session/src/adapters/postgres.ts index 7a89dca..40417ad 100644 --- a/packages/session/src/adapters/postgres.ts +++ b/packages/session/src/adapters/postgres.ts @@ -6,10 +6,10 @@ interface SessionTable { user_id: string; handle: string | null; is_authenticated: boolean; - data: string | null; - created_at: Date; - expires_at: Date; - last_accessed_at: Date; + data: Record | null; + created_at: number; + expires_at: number; + last_accessed_at: number; } export class PostgresAdapter implements SessionAdapter { @@ -100,7 +100,7 @@ export class PostgresAdapter implements SessionAdapter { data.userId, data.handle || null, data.isAuthenticated, - data.data ? JSON.stringify(data.data) : null, + data.data || null, data.createdAt, data.expiresAt, data.lastAccessedAt, @@ -116,7 +116,7 @@ export class PostgresAdapter implements SessionAdapter { updates: Partial ): Promise { const setParts: string[] = []; - const values: (string | number | boolean | null)[] = []; + const values: (string | number | boolean | null | Record)[] = []; let paramIndex = 1; if (updates.userId !== undefined) { @@ -136,7 +136,7 @@ export class PostgresAdapter implements SessionAdapter { if (updates.data !== undefined) { setParts.push(`data = $${paramIndex++}`); - values.push(updates.data ? JSON.stringify(updates.data) : null); + values.push(updates.data || null); } if (updates.expiresAt !== undefined) { @@ -226,10 +226,10 @@ export class PostgresAdapter implements SessionAdapter { userId: row.user_id, handle: row.handle || undefined, isAuthenticated: row.is_authenticated, - data: row.data ? JSON.parse(row.data) : undefined, - createdAt: row.created_at.getTime(), - expiresAt: row.expires_at.getTime(), - lastAccessedAt: row.last_accessed_at.getTime(), + data: row.data || undefined, + createdAt: row.created_at, + expiresAt: row.expires_at, + lastAccessedAt: row.last_accessed_at, }; } -- 2.43.0