17 lines
459 B
TypeScript
17 lines
459 B
TypeScript
import { Result } from '../result/Result';
|
|
|
|
export interface IUseCase<Input, Output> {
|
|
execute(input: Input): Output;
|
|
}
|
|
|
|
export interface AsyncUseCase<Input, Output> {
|
|
execute(input: Input): Promise<Output>;
|
|
}
|
|
|
|
export interface ResultUseCase<Input, Output, Error = unknown> {
|
|
execute(input: Input): Result<Output, Error>;
|
|
}
|
|
|
|
export interface AsyncResultUseCase<Input, Output, Error = unknown> {
|
|
execute(input: Input): Promise<Result<Output, Error>>;
|
|
} |