refactor: add strict JSON parsing helpers

This commit is contained in:
2026-08-22 16:54:29 +02:00
parent 30d1d0aeae
commit 8548afcd21
2 changed files with 36 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
export const isJsonObject = (value: unknown): value is Record<string, unknown> =>
typeof value === 'object' && value !== null && !Array.isArray(value)
export const parseJsonObject = (source: string): Record<string, unknown> => {
const parsed: unknown = JSON.parse(source)
if (!isJsonObject(parsed)) throw new TypeError('Expected a JSON object.')
return parsed
}
export const parseJsonArray = (source: string): unknown[] => {
const parsed: unknown = JSON.parse(source)
if (!Array.isArray(parsed)) throw new TypeError('Expected a JSON array.')
return Array.from(parsed, (value: unknown) => value)
}
export const parseJsonObjectArray = (source: string): Array<Record<string, unknown>> =>
parseJsonArray(source).map((value) => {
if (!isJsonObject(value)) throw new TypeError('Expected a JSON object array.')
return value
})