@virtualstate/union
Version:
Concurrent union
20 lines (18 loc) • 471 B
text/typescript
export function aggregateError(errors: unknown[]): unknown {
if (errors.length === 1) {
return errors[0];
}
return new AggregateError(flatten(errors));
function flatten(errors: unknown[]) {
return errors.reduce<unknown[]>(
(flat, error): unknown[] => {
if (error instanceof AggregateError) {
return flat.concat(flatten(error.errors));
} else {
return flat.concat(error);
}
},
[]
);
}
}