11 lines
503 B
TypeScript
11 lines
503 B
TypeScript
export type JsonValue = JsonValue[] | boolean | null | number | string | { [key: string]: JsonValue }
|
|
|
|
export function isJsonValue(value: unknown): value is JsonValue {
|
|
if (value === null) return true
|
|
if (typeof value === 'boolean' || typeof value === 'string') return true
|
|
if (typeof value === 'number') return Number.isFinite(value)
|
|
if (Array.isArray(value)) return [...value].every(isJsonValue)
|
|
if (typeof value === 'object') return Object.values(value).every(isJsonValue)
|
|
return false
|
|
}
|