json-schema-library
Version:
Customizable and hackable json-validator and json-schema utilities for traversal, data generation and validation
26 lines (24 loc) • 772 B
text/typescript
import { isAnnotation } from "../types";
import { ValidationAnnotation, ValidationReturnType } from "../Keyword";
/**
* Flattens nested validation array results and filters items to only include errors, annotations and promises
*/
export default function sanitizeErrors(
list: ValidationReturnType | ValidationReturnType[] | ValidationAnnotation[],
result: ValidationAnnotation[] = []
) {
if (!Array.isArray(list)) {
if (list !== undefined) {
return [list];
}
return [];
}
for (const item of list) {
if (Array.isArray(item)) {
sanitizeErrors(item, result);
} else if (isAnnotation(item) || item instanceof Promise) {
result.push(item);
}
}
return result;
}