Software

A collection of posts about my favourite topics in programming

Godot Data Validation with Zodot

Zodot is a Godot data validation library that is lightweight and more extensible than GDScript’s type system. Zodot supports typed dictionaries, unions, schemas and more!
Read more →

My New Book! The Typescript Compiler API

I am proud to announce that my new book about The Typescript Compiler API is now available at https://typescriptcompilerapi.com!
Read more →

2022 Year in Review

A review of notable things I have done in 2022 and things I would like to achieve in 2023
Read more →

React Query Codegen from OpenAPI

Rapini is a new tool that can generate custom React Query hooks using OpenAPI (Swagger) files.

The Command Line Interface (CLI) tool will take a path to an Open API file and generate a package that includes react hooks, typescript types and axios http requests - and this package is conveniently bundled in a way that it can be published to NPM or any other package registry of your choosing.

No need to manually write axios request functions and react query code to start using your backend endpoints, just generate and import your code to ship features faster.

Read more →

Traversing the C# syntax tree with F#

This article will go over the basics of the .NET compiler platform feature for analyzing the C# syntax tree, using F#.

.NET provides a Syntax API that can read any C# or Visual Basic source file and provide the corresponding Syntax Tree for that code.

Why

Why would someone need to traverse the C# syntax tree?

Well, it can be for a number of reasons, maybe you want to gather statistics about how many classes, namespaces and methods you have, maybe you want generate code based on what is already written, maybe you want to create new tools like a new linter or a tool like Swagger. All these things can be done by analyzing the syntax tree.

Read more →

Simple Remote Data in Typescript

Introducing Simple Remote Data (SRD), a Static Land compliant TypeScript library for managing state from remote sources.

SRD’s top features are:

  • Only 549 bytes minified and gzipped, that is ridiculously small!
  • Built with Higher Kinded Types (HKT’s) to allow Typescript to infer these complex disjoint union types.
  • Static Land compliant!
  • Made for React or any other JS based frontend framework.

What is a Remote Data type?

A Remote Data type is a kind of discriminate union type in functional programming for managing the state of some data that is retrieved remotely and asynchronously, such as http response data, websockets, server sent events, reading a file, or any other async IO.

Read more →