Writing a Compiler in TypeScript - Like Crafting Interpreters, but with TypeScript and LLVM