UNPKG

io-ts-types

Version:

A collection of codecs and combinators for use with io-ts

36 lines (35 loc) 753 B
/** * @since 0.5.0 */ import * as t from 'io-ts' import { Lens } from 'monocle-ts' /** * @since 0.5.0 */ export interface ExactHasLenses extends t.ExactType<HasLenses> {} /** * @since 0.5.0 */ export declare type HasLenses = t.InterfaceType<any> | ExactHasLenses /** * Return a `Lens` for each prop * * @example * import * as t from 'io-ts' * import { getLenses } from 'io-ts-types/lib/getLenses' * * const Person = t.type({ * name: t.string, * age: t.number * }) * * const lenses = getLenses(Person) * assert.strictEqual(lenses.age.get({ name: 'Giulio', age: 44 }), 44) * * @since 0.5.0 */ export declare function getLenses<C extends HasLenses>( codec: C ): { [K in keyof t.TypeOf<C>]: Lens<t.TypeOf<C>, t.TypeOf<C>[K]> }