feat: integrate S3 storage adapter and update file upload functionality

This commit is contained in:
2026-04-10 22:54:46 -03:00
parent 98515550ca
commit 4b1bd056fc
14 changed files with 319 additions and 309 deletions

View File

@@ -0,0 +1,37 @@
export type Result<T, E> = { ok: true; value: T } | { ok: false; error: E };
export type TypedResult<T> = Result<T, Error>;
export function wrapBlocking<
F extends (...args: never[]) => unknown,
E = unknown,
>(
fn: F,
mapError: (e: unknown) => E = (e) => e as E
): (...args: Parameters<F>) => Result<ReturnType<F>, E> {
return (...args) => {
try {
return { ok: true, value: fn(...args) as ReturnType<F> };
} catch (e) {
return { ok: false, error: mapError(e) };
}
};
}
export function wrap<
F extends (...args: never[]) => Promise<unknown>,
E = unknown,
>(
fn: F,
mapError: (e: unknown) => E = (e) => e as E
): (...args: Parameters<F>) => Promise<Result<Awaited<ReturnType<F>>, E>> {
return async (...args) => {
try {
return {
ok: true,
value: (await fn(...args)) as Awaited<ReturnType<F>>,
};
} catch (e) {
return { ok: false, error: mapError(e) };
}
};
}