From 156171e81cc9360f05c24d3a9c81fae6d249b2c7 Mon Sep 17 00:00:00 2001 From: Patrick McLaughlin Date: Tue, 5 Apr 2022 09:05:24 -0400 Subject: [PATCH] docs: add top level introduction --- README.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a5ccbb22..f3ddd6fc 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,29 @@ **Disclaimer: This project is currently in an alpha state. Documentation is actively being worked on.** +A collection of packages for defining and using type-checked apis with TypeScript. + +TypeScript is a very powerful type system layered on top of JavaScript, but lacks type +information available at runtime. This is not likely to change because it is +[an explicit non-goal](https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals#non-goals) +of TypeScript. [io-ts](https://github.com/gcanti/io-ts) fills in this functionality gap. +[io-ts-http](packages/io-ts-http/README.md) builds on top of `io-ts` to make it possible +to define codecs that translate between HTTP requests and plain JS objects. +Additionally, it provides a way to group these codecs into route definitions, and then +collect the route definitions into an api. The resulting api definitions may then be +used on the [client](packages/superagent-wrapper/README.md) and +[server](packages/express-wrapper/README.md) to have type-checked and runtime-validated +HTTP calls in a standardized manner. + +## Getting started + ```sh npm install npm run build npm test ``` -# License +## License This work is published under the Apache 2.0 license.