UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

42 lines 1.29 kB
import { Interpolate, ParamsOf } from './Path'; import { ReaderOption } from './ReaderOption'; /** * @category Model * @since 0.13.0 */ export interface Route<P extends string, A = ParamsOf<P>> { readonly path: P; readonly match: ReaderOption<string, A>; readonly createPath: <I extends ParamsOf<P>>(params: I) => Interpolate<P, I>; } /** * @category Type-level * @since 0.13.0 */ export declare type PathOf<A> = [A] extends [Route<infer R>] ? R : never; /** * @category Type-level * @since 0.13.0 */ export declare type ValueOf<A> = [A] extends [Route<infer R>] ? ParamsOf<R> : never; /** * @category Constructor * @since 0.13.0 */ export declare function make<P extends string>(path: P): Route<P>; /** * @category Combinator * @since 0.13.0 */ export declare function map<A, B>(f: (value: A) => B): <P extends string>(route: Route<P, A>) => Route<P, B>; /** * @category Combinator * @since 0.13.0 */ export declare function oneOf<Routes extends readonly [Route<string>, ...Route<string>[]]>(...[first, ...rest]: Routes): ReaderOption<string, OneOf<Routes>>; /** * @category Type-level * @since 0.13.0 */ export declare type OneOf<Routes extends readonly [Route<string>, ...Route<string>[]]> = ValueOf<Routes[number]>; //# sourceMappingURL=Route.d.ts.map