exupery-core-types
Version:
core types for Exupery
27 lines (26 loc) • 1.62 kB
TypeScript
import { Queryer } from "./Queryer";
import { Refiner } from "./Refiner";
import { Transformer } from "./Transformer";
export interface Query_Result<Output, Error> {
query_result: null;
transform_result<New_Output>(transformer: Transformer<New_Output, Output>): Query_Result<New_Output, Error>;
transform_error_temp<New_Error>(error_transformer: Transformer<New_Error, Error>): Query_Result<Output, New_Error>;
query_without_error_transformation<New_Output>(query: Queryer<New_Output, Error, Output>): Query_Result<New_Output, Error>;
query<New_Output, Query_Error>(query: Queryer<New_Output, Query_Error, Output>,
/**
* if the query fails, rework its error into the desired error type
*/
error_transformer: Transformer<Error, Query_Error>): Query_Result<New_Output, Error>;
refine_without_error_transformation<New_Output>(refiner: Refiner<New_Output, Error, Output>): Query_Result<New_Output, Error>;
refine<New_Output, Refiner_Error>(refiner: Refiner<New_Output, Refiner_Error, Output>,
/**
* if the refiner fails, rework its error into the desired error type
*/
error_transformer: Transformer<Error, Refiner_Error>): Query_Result<New_Output, Error>;
rework_error_temp<New_Error, Rework_Error>(error_reworker: Queryer<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>): Query_Result<Output, New_Error>;
__extract_data: (on_success: ($: Output) => void, on_error: ($: Error) => void) => void;
}