fix: normalize local postgres date columns
This commit is contained in:
@@ -128,6 +128,16 @@ function databaseValue(type: string | undefined, value: unknown): unknown {
|
||||
return value;
|
||||
}
|
||||
|
||||
function queryValue(type: string | undefined, value: unknown): unknown {
|
||||
if (type !== "date" || !(value instanceof Date)) return value;
|
||||
// pg parses DATE at local midnight; UTC formatting can shift the calendar day.
|
||||
return [
|
||||
String(value.getFullYear()).padStart(4, "0"),
|
||||
String(value.getMonth() + 1).padStart(2, "0"),
|
||||
String(value.getDate()).padStart(2, "0"),
|
||||
].join("-");
|
||||
}
|
||||
|
||||
class LocalPostgresQueryBuilder implements PromiseLike<QueryResult> {
|
||||
private selectedColumns: string[] | null = null;
|
||||
private mutation: Mutation | null = null;
|
||||
@@ -411,7 +421,14 @@ class LocalPostgresQueryBuilder implements PromiseLike<QueryResult> {
|
||||
}
|
||||
|
||||
const result = await client.query(sql, parameters);
|
||||
const rows = result.rows;
|
||||
const rows = result.rows.map((row) =>
|
||||
Object.fromEntries(
|
||||
Object.entries(row).map(([column, value]) => [
|
||||
column,
|
||||
queryValue(types.get(column), value),
|
||||
]),
|
||||
),
|
||||
);
|
||||
let data: unknown = this.selectedColumns ? rows : null;
|
||||
if (this.cardinality !== "many") {
|
||||
if (
|
||||
|
||||
Reference in New Issue
Block a user