UNPKG

exupery-core-types

Version:
20 lines (19 loc) 1.32 kB
import { Refiner } from "./Refiner"; import { Transformer } from "./Transformer"; export interface Refinement_Result<Output, Error> { transform<Target>(output_transformer: Transformer<Target, Output>, error_transformer: Transformer<Target, Error>): Target; transform_result<New_Output>(transformer: Transformer<New_Output, Output>): Refinement_Result<New_Output, Error>; transform_error_temp<New_Error>(error_transformer: Transformer<New_Error, Error>): Refinement_Result<Output, New_Error>; refine_without_error_transformation<New_Output>(refiner: Refiner<New_Output, Error, Output>): Refinement_Result<New_Output, Error>; refine<New_Output, Stager_Error>(refiner: Refiner<New_Output, Stager_Error, Output>, /** * if the stager fails, rework its error into the desired error type */ error_transformer: Transformer<Error, Stager_Error>): Refinement_Result<New_Output, Error>; rework_error_temp<New_Error, Rework_Error>(error_reworker: Refiner<New_Error, Rework_Error, Error>, /** * if the reworker fails, we need to transform *that* error into the New_Error */ rework_error_transformer: Transformer<New_Error, Rework_Error>): Refinement_Result<Output, New_Error>; __extract_data: (on_success: ($: Output) => void, on_error: ($: Error) => void) => void; }