UNPKG

pragmatic-fp-ts

Version:

Opinionated functional programming library with easy use in mind

22 lines (21 loc) 1.68 kB
import { Dictionary, Endomorphism } from "./main"; type LensGetter<TData, TValue> = (data: TData) => TValue; type LensSetter<TData, TValue> = (value: TValue, data: TData) => TData; type Lens<TData, TValue> = { view: LensGetter<TData, TValue>; set: LensSetter<TData, TValue>; }; export declare function lens<TData, TValue>(getter: LensGetter<TData, TValue>, setter: LensSetter<TData, TValue>): Lens<TData, TValue>; export declare function view<TData, TValue>(lens: Lens<TData, TValue>, data: TData): TValue; export declare function view<TData, TValue>(lens: Lens<TData, TValue>): (data: TData) => TValue; export declare function set<TData, TValue>(lens: Lens<TData, TValue>, value: TValue, data: TData): TData; export declare function set<TData, TValue>(lens: Lens<TData, TValue>, value: TValue): (data: TData) => TData; export declare function set<TData, TValue>(lens: Lens<TData, TValue>): (value: TValue) => (data: TData) => TData; export declare function over<TData, TValue>(lens: Lens<TData, TValue>, fn: Endomorphism<TValue>, data: TData): TData; export declare function over<TData, TValue>(lens: Lens<TData, TValue>, fn: Endomorphism<TValue>): (data: TData) => TData; export declare function over<TData, TValue>(lens: Lens<TData, TValue>): (fn: Endomorphism<TValue>) => (data: TData) => TData; export declare function lensProp<TValue = any, TData extends {} = Dictionary>(propName: string): Lens<TData, TValue>; export declare function lensIndex<T = any>(idx: number): Lens<T[], T>; type LensPath = (string | number)[]; export declare function lensPath<TValue = any, TData extends any[] | Dictionary<any> = any>(path: LensPath): Lens<TData, TValue>; export {};