Except where explicitly noted otherwise, the code in this repository is UNLICENSED. The purpose of this repo is to serve as a reference for concepts in computer science and their implementations in TypeScript. The value is knowledge, not a solution to be copy+pasted elsewhere. Developing this knowledge benefits from learning the concepts and then applying them in your own code, as has been done here.
This repo uses TypeScript for development feedback and somewhat improved documentation. To validate
the usage of types in the source, run test:types
. To validate continuously, run
test:types:watch
.
To maximize consistency in code style, this repo uses prettier. To validate code style, run
lint:prettier
. To automatically fix any prettier issues, run lint:prettier:fix
.
To minimize issues from problematic practices and to provide additional feedback in configured IDEs,
this repo uses eslint. To validate code against preconfigured eslint rules, run lint:eslint
. To
automatically fix any eslint issues, run lint:eslint:fix
.
The code in this repo is specified in part through the accompanying spec files. These serve not just
to document the intended behavior, but also to enforce it wherever tests are run. To run the tests,
use test:mocha
. To run them continuously, use test:mocha:watch
.