|
2 | 2 |
|
3 | 3 |  |
4 | 4 |
|
5 | | -**Disclaimer: This project is currently in an alpha state. Documentation is actively |
6 | | -being worked on.** |
| 5 | +**Disclaimer: This project is currently in beta state. Documentation is actively being |
| 6 | +worked on.** |
7 | 7 |
|
8 | 8 | A collection of packages for defining and using type-checked apis with TypeScript. |
9 | 9 |
|
10 | | -TypeScript is a very powerful type system layered on top of JavaScript, but lacks type |
11 | | -information available at runtime. This is not likely to change because it is |
12 | | -[an explicit non-goal](https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals#non-goals) |
13 | | -of TypeScript. [io-ts](https://github.com/gcanti/io-ts) fills in this functionality gap. |
14 | | -[io-ts-http](packages/io-ts-http/README.md) builds on top of `io-ts` to make it possible |
15 | | -to define codecs that translate between HTTP requests and plain JS objects. |
16 | | -Additionally, it provides a way to group these codecs into route definitions, and then |
17 | | -collect the route definitions into an api. The resulting api definitions may then be |
18 | | -used on the [client](packages/superagent-wrapper/README.md) and |
19 | | -[server](packages/express-wrapper/README.md) to have type-checked and runtime-validated |
20 | | -HTTP calls in a standardized manner. |
| 10 | +TypeScript is a powerful type system layered on top of JavaScript, but lacks type |
| 11 | +information about values received at runtime. This is [an explicit non-goal] of the |
| 12 | +TypeScript language, so we use [io-ts] to statically type this runtime data. |
| 13 | +[io-ts-http] builds on top of io-ts to define codecs that translate between HTTP |
| 14 | +requests and plain old JavaScript objects. Additionally, it provides a way to group |
| 15 | +these codecs into route definitions, and then collect the route definitions into an api. |
| 16 | +The resulting api definitions may then be used on the [client] and [server] to have |
| 17 | +type-checked and runtime-validated HTTP calls in a standardized manner. |
| 18 | + |
| 19 | +[an explicit non-goal]: |
| 20 | + https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals#non-goals |
| 21 | +[io-ts]: https://github.com/gcanti/io-ts |
| 22 | +[io-ts-http]: packages/io-ts-http/README.md |
| 23 | +[client]: packages/superagent-wrapper/README.md |
| 24 | +[server]: packages/express-wrapper/README.md |
21 | 25 |
|
22 | 26 | ## Getting started |
23 | 27 |
|
|
0 commit comments