target-clickhouse
Version:
A Singer target for Clickhouse
19 lines (18 loc) • 825 B
TypeScript
declare type Left<T> = {
left: T;
right?: never;
};
declare type Right<U> = {
left?: never;
right: U;
};
export declare type Either<T, U> = NonNullable<Left<T> | Right<U>>;
export declare type UnwrapEither = <T, U>(e: Either<T, U>) => NonNullable<T | U>;
export declare const unwrapEither: UnwrapEither;
export declare const isLeft: <T, U>(e: Either<T, U>) => e is Left<T>;
export declare const isRight: <T, U>(e: Either<T, U>) => e is Right<U>;
export declare const makeLeft: <T>(value: T) => Left<T>;
export declare const makeRight: <U>(value: U) => Right<U>;
export declare const mapLeft: <OLD_LEFT, RIGHT, NEW_LEFT>(e: Either<OLD_LEFT, RIGHT>, modifier: (left: OLD_LEFT) => NEW_LEFT) => Either<NEW_LEFT, RIGHT>;
export declare const listLeft: <LEFT, RIGHT>(e: Either<LEFT, RIGHT>[]) => LEFT[];
export {};