ts-cast
Version:
Runtime typechecking
4 lines (3 loc) • 340 B
JavaScript
import { createCaster } from '../engine';
const transformArray = (caster) => (value, context, reportError) => value.map((item, index) => caster(item, context ? `${context}[${index}]` : `#${index}`, reportError));
export const array = (caster, typeName = `${caster.name}[]`) => createCaster(typeName, Array.isArray, transformArray(caster));