ts-to-io
    TypeScript icon, indicating that this package has built-in type declarations

    0.3.1 • Public • Published

    ts-to-io

    Converts TypeScript type and interface definitions into io-ts type validators.

    Usage

    As a script

    $ npm install -g ts-to-io
    $ ts-to-io file.ts

    or

    $ npx ts-to-io file.ts

    From code

    NOTE: The validator generation is not intended to be performed at runtime. You should first generate the validators locally and then include them in the program source.

    import { getValidatorsFromString } from "ts-to-io"
     
    const sourceString = `
      type Person = { name: string; age: number | null }
    `
     
    const validators = getValidatorsFromString(sourceString)

    Configuration

    ts-to-io supports the following config options

    Key CLI opt Default Description
    followImports --follow-imports false output codecs for types declared in imported files
    includeHeader --no-include-header true omit io-ts import from the output

    Supported types

    Type Supported TypeScript codec
    string string t.string
    number number t.number
    boolean boolean t.boolean
    null null t.null
    undefined undefined t.undefined
    void void t.void
    any, unknown any, unknown t.unknown
    array Array<A> t.array(A)
    record Record<K, A> t.record(K, A)
    object type { name: string } t.type({ name: t.string })
    interface interface I { name: string } t.type({ name: t.string })
    literal 'ABC' t.literal('ABC')
    partial Partial<{ name: string }> t.partial({ name: t.string })
    readonly Readonly<A> -
    readonly array ReadonlyArray<A> -
    tuple [ A, B ] t.tuple([ A, B ])
    tuple with rest [ A, B, ...C ] -
    union A \| B t.union([ A, B ])
    intersection A & B t.intersection([ A, B ])
    keyof keyof M -
    recursive type type Node = { children: Node[] } -
    function type fn = () => string t.Function

    Keywords

    none

    Install

    npm i ts-to-io

    DownloadsWeekly Downloads

    174

    Version

    0.3.1

    License

    MIT

    Unpacked Size

    39.2 kB

    Total Files

    20

    Last publish

    Collaborators

    • juusaw