@@ -7,17 +7,21 @@ worked on.**
77
88A collection of packages for defining and using type-checked apis with TypeScript.
99
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
2125
2226## Getting started
2327
0 commit comments