This is my code for the book "The Ray Tracer Challenge" from Jamis Buck. The raytracer is completely written in Typescript, unit tests have been implemented with JEST.
https://p3n9u1n.github.io/TheRaytracerChallenge/raytracer-gui/chapter11.html
https://p3n9u1n.github.io/TheRaytracerChallenge/raytracer-gui/chapter10.html
https://p3n9u1n.github.io/TheRaytracerChallenge/raytracer-gui/chapter9.html
https://p3n9u1n.github.io/TheRaytracerChallenge/raytracer-gui/chapter8.html
https://p3n9u1n.github.io/TheRaytracerChallenge/raytracer-gui/chapter7.html
https://p3n9u1n.github.io/TheRaytracerChallenge/raytracer-gui/chapter6.html
Chapter 1-5 code is in the spikes/ directory, written for NodeJS.
After cloning the repo, run "npm install" from the TheRaytracerChallenge and the TheRaytracerChallenge/test directory. Then you can open the workspace file workspace.code-workspace with VS Code. There are launch configurations for Chrome and Firefox for starting the website. For the unit tests, it is convenient to have an extension for Jest installed (for example "JEST Runner"), but it also works by running "npm test" from the test directory.