ts-interface-builder
Compile TypeScript interfaces into a description that allows runtime validation
Last updated 2 months ago by dsagal2 .
Apache-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install ts-interface-builder 
SYNC missed versions from official npm registry.

ts-interface-builder

Build Status npm version

Compile TypeScript interfaces into a description that allows runtime validation.

This tool runs at build time to create runtime validators from TypeScript interfaces. It allows validating data, such as parsed JSON objects received over the network, or parsed JSON or YAML files, to check if they satisfy a TypeScript interface, and to produce informative error messages if they do not.

Installation

npm install --save-dev ts-interface-builder
npm install --save ts-interface-checker

Usage

This module works together with ts-interface-checker module. You use ts-interface-builder in a build step that converts some TypeScript interfaces to a new TypeScript file (with -ti.ts extension) that provides a runtime description of the interface. You then use ts-interface-checker in your program to create validator functions from this runtime description.

`npm bin`/ts-interface-builder [options] <typescript-files...>

By default, produces <ts-file>-ti.ts file for each input file, which has runtime definitions for all types in the input file. For example, if you have a TypeScript file that defines some types:

// foo.ts
interface Square {
  size: number;
  color?: string;
}

Then you can generate code for runtime checks with:

`npm bin`/ts-interface-builder foo.ts

It produces a file like this:

// foo-ti.js
import * as t from "ts-interface-checker";

export const Square = t.iface([], {
  "size": "number",
  "color": t.opt("string"),
});

export default ...;

See ts-interface-checker module for how to use this file in your program.

Limitations

This module currently does not support generics, except Promises. Promises are supported by unwrapping Promise<T> to simply T.

Current Tags

  • 0.2.2                                ...           latest (2 months ago)

11 Versions

  • 0.2.2                                ...           2 months ago
  • 0.2.1                                ...           10 months ago
  • 0.2.0                                ...           10 months ago
  • 0.1.8                                ...           2 years ago
  • 0.1.7                                ...           2 years ago
  • 0.1.6                                ...           2 years ago
  • 0.1.5                                ...           2 years ago
  • 0.1.4                                ...           2 years ago
  • 0.1.2                                ...           2 years ago
  • 0.1.1                                ...           2 years ago
  • 0.1.0                                ...           2 years ago
Maintainers (2)
Downloads
Today 0
This Week 5
This Month 3
Last Day 2
Last Week 5
Last Month 82
Dependencies (3)
Dev Dependencies (6)

Copyright 2014 - 2016 © taobao.org |