Refactor parseJson to handle different value types

Refactor parseJson function to handle various input types and improve null checks.
This commit is contained in:
zmoon460
2026-03-20 20:10:12 +08:00
committed by GitHub
parent ade5e0b1b3
commit da76f56721
+18 -6
View File
@@ -90,13 +90,25 @@ function normalizePositiveIntegerOrNull(value: unknown): number | null {
return normalized; return normalized;
} }
function parseJson(value: string | null | undefined): unknown { function parseJson(value: unknown): unknown {
if (!value) return null; if (value === null || value === undefined) return null;
try {
return JSON.parse(value); // PostgreSQL JSONB columns are returned as parsed objects/arrays by the pg driver
} catch { if (typeof value === 'object') {
return null; return value;
} }
// SQLite TEXT columns store JSON as strings that need parsing
if (typeof value === 'string') {
if (value === '') return null;
try {
return JSON.parse(value);
} catch {
return null;
}
}
return null;
} }
export function normalizeGroupNameInput(input: unknown): string | null { export function normalizeGroupNameInput(input: unknown): string | null {