Feature: Basic Events, Models and Projections #2

Merged
piarrot merged 37 commits from feat-base-projections into main 2024-10-15 15:20:25 -03:00
Showing only changes of commit 6b46677be9 - Show all commits

View File

@ -1,6 +1,7 @@
/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-explicit-any */
import { TaggedError } from "../error/tagged-error.js"; import { TaggedError } from "../error/tagged-error.js";
import { UnexpectedError } from "../error/unexpected-error.js"; import { UnexpectedError } from "../error/unexpected-error.js";
import { MaybePromise } from "../types/maybe-promise.js";
import { Result } from "./result.js"; import { Result } from "./result.js";
/** /**
@ -14,7 +15,7 @@ export type AsyncResult<
export namespace AsyncResult { export namespace AsyncResult {
export async function tryFrom<T, TError extends TaggedError>( export async function tryFrom<T, TError extends TaggedError>(
fn: () => Promise<T>, fn: () => MaybePromise<T>,
errorMapper: (error: any) => TError, errorMapper: (error: any) => TError,
): AsyncResult<T, TError> { ): AsyncResult<T, TError> {
try { try {
@ -25,8 +26,8 @@ export namespace AsyncResult {
} }
export async function from<T>( export async function from<T>(
fn: () => Promise<T>, fn: () => MaybePromise<T>,
): AsyncResult<T, UnexpectedError> { ): AsyncResult<T, never> {
return tryFrom(fn, (error) => new UnexpectedError(error)); return tryFrom(fn, (error) => new UnexpectedError(error) as never);
} }
} }