const validateSchemaAsPromise =
<A, I>(schema: Schema.Schema<A, I> & { readonly name: string }) =>
(data: unknown): Promise<A> =>
Schema.decodeUnknown(schema)(data).pipe(
Effect.catchAll((e) => {
console.error(schema.name, e);
return Effect.fail(new Error('Invalid schema'));
}),
Effect.runPromise,
);
const validateSchemaAsPromise =
<A, I>(schema: Schema.Schema<A, I> & { readonly name: string }) =>
(data: unknown): Promise<A> =>
Schema.decodeUnknown(schema)(data).pipe(
Effect.catchAll((e) => {
console.error(schema.name, e);
return Effect.fail(new Error('Invalid schema'));
}),
Effect.runPromise,
);