UNPKG

fp-ts-routing

Version:

A type-safe routing library for TypeScript

120 lines (119 loc) 2.92 kB
/** * @since 0.6.0 */ import { Alternative1 } from 'fp-ts/lib/Alternative'; import { Lazy } from 'fp-ts/lib/function'; import { Monad1 } from 'fp-ts/lib/Monad'; import { Monoid } from 'fp-ts/lib/Monoid'; import * as O from 'fp-ts/lib/Option'; import { RowLacks } from './helpers'; import { Route } from './route'; declare module 'fp-ts/lib/HKT' { interface URItoKind<A> { 'fp-ts-routing/Parser': Parser<A>; } } declare const PARSER_URI = "fp-ts-routing/Parser"; type PARSER_URI = typeof PARSER_URI; /** * @category parsers * @since 0.4.0 */ export declare class Parser<A> { readonly run: (r: Route) => O.Option<[A, Route]>; /** * @since 0.4.0 */ readonly _A: A; constructor(run: (r: Route) => O.Option<[A, Route]>); /** * @since 0.4.0 */ static of<A>(a: A): Parser<A>; /** * @since 0.4.0 */ map<B>(f: (a: A) => B): Parser<B>; /** * @since 0.4.0 */ ap<B>(fab: Parser<(a: A) => B>): Parser<B>; /** * @since 0.4.0 */ chain<B>(f: (a: A) => Parser<B>): Parser<B>; /** * @since 0.4.0 */ alt(that: Parser<A>): Parser<A>; /** * @since 0.4.0 */ then<B>(that: Parser<RowLacks<B, keyof A>>): Parser<A & B>; } /** * @category parsers * @since 0.4.0 */ export declare const zero: <A>() => Parser<A>; /** * @category parsers * @since 0.4.0 */ export declare const parse: <A>(parser: Parser<A>, r: Route, a: A) => A; /** * @category parsers * @since 0.5.1 */ export declare const getParserMonoid: <A>() => Monoid<Parser<A>>; /** * @category parsers * @since 0.5.1 */ export declare const parser: Monad1<PARSER_URI> & Alternative1<PARSER_URI>; /** * @category parsers * @since 0.5.1 */ export declare const alt: <A>(that: Lazy<Parser<A>>) => (fa: Parser<A>) => Parser<A>; /** * @category parsers * @since 0.5.1 */ export declare const ap: <A>(fa: Parser<A>) => <B>(fab: Parser<(a: A) => B>) => Parser<B>; /** * @category parsers * @since 0.5.1 */ export declare const apFirst: <B>(fb: Parser<B>) => <A>(fa: Parser<A>) => Parser<A>; /** * @category parsers * @since 0.5.1 */ export declare const apSecond: <B>(fb: Parser<B>) => <A>(fa: Parser<A>) => Parser<B>; /** * @category parsers * @since 0.5.1 */ export declare const chain: <A, B>(f: (a: A) => Parser<B>) => (ma: Parser<A>) => Parser<B>; /** * @category parsers * @since 0.5.1 */ export declare const chainFirst: <A, B>(f: (a: A) => Parser<B>) => (ma: Parser<A>) => Parser<A>; /** * @category parsers * @since 0.5.1 */ export declare const flatten: <A>(mma: Parser<Parser<A>>) => Parser<A>; /** * @category parsers * @since 0.5.1 */ export declare const map: <A, B>(f: (a: A) => B) => (fa: Parser<A>) => Parser<B>; /** * @category parsers * @since 0.6.0 */ export declare const then: <B>(fb: Parser<B>) => <A>(fa: Parser<A> & Parser<RowLacks<A, keyof B>>) => Parser<A & B>; export {};