Files
adf-codec/src/json-value.ts
T

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
}