UNPKG

patronum

Version:

☄️ Effector utility library delivering modularity and convenience

18 lines (17 loc) 1.14 kB
import { Store, Unit } from 'effector'; interface EitherConfig<Then, Other> { filter: Store<boolean>; then: Then extends Unit<any> ? Then extends Store<any> ? Then : { error: 'only stores or generic values allowed'; } : Then; other: Other extends Unit<any> ? Other extends Store<any> ? Other : { error: 'only stores or generic values allowed'; } : Other; } export declare function either<Then, Other>(filter: Store<boolean>, then: Then extends Unit<any> ? Then extends Store<any> ? Then : { error: 'only stores or generic values allowed'; } : Then, other: Other extends Unit<any> ? Other extends Store<any> ? Other : { error: 'only stores or generic values allowed'; } : Other): Then extends Store<infer T> ? Other extends Store<infer O> ? Store<T | O> : Store<T | Other> : Other extends Store<infer O> ? Store<Then | O> : Store<Then | Other>; export declare function either<Then, Other>(config: EitherConfig<Then, Other>): Then extends Store<infer T> ? Other extends Store<infer O> ? Store<T | O> : Store<T | Other> : Other extends Store<infer O> ? Store<Then | O> : Store<Then | Other>; export {};