Oct 28

Before you upgrade to .NET 11, check that your API clients can read OpenAPI 3.2

In .NET 11, AddOpenApi writes an OpenAPI 3.2 document where .NET 10 wrote 3.1. On a small API that version line is the only change, and four of five client generators don't mind. ng-openapi-gen refuses it. The documented one-line pin fixes the running app but not the document written at build time, which needs its own option.

dotnet · tooling · 5 min
→
Oct 15

Fix the baseUrl error that TypeScript 6 raises in older Angular workspaces

Angular 22 builds with TypeScript 6, which turns the baseUrl that Angular CLI 7 to 16 put in every new tsconfig into a build error. ng update doesn't touch it. Delete baseUrl, add ./ to every path, and decide what to do with imports that only resolved because of it.

typescript · tooling · 4 min
→
Oct 07

Before you move a build to TypeScript 7, check it for custom transformers

TypeScript 7 ships without a JavaScript API, so nothing in a build can hand it a custom transformer. The plugins entry in your tsconfig.json survives the upgrade, the compiler accepts it without a word, and the transformation stops happening while the build still exits 0.

typescript · tooling · 5 min
→
Sep 16

TypeScript 6 stops loading @types globally: what breaks on upgrade

Up to TypeScript 5.9 a tsconfig with no types entry loaded every package under node_modules/@types as globals. TypeScript 6.0 made the default an empty array, so process and describe stop resolving on upgrade. The option controls automatic inclusion (and which packages editors offer as auto-imports), not imports, which is why an imported package still brings its types along and a dependency's own reference can quietly put the globals back.

typescript · tooling · 7 min
→
Sep 08

erasableSyntaxOnly catches the TypeScript that Node cannot strip

Node runs a .ts file by deleting the type syntax and handing the rest to V8, so the constructs that turn into runtime code have nothing to delete and fail at process start. erasableSyntaxOnly turns exactly those into editor errors, and Node 26 removed the escape hatch that used to compile them for you.

typescript · tooling · 6 min
→
Aug 22

GitGlass, a VS Code-style repo viewer in under 10 KB of vanilla JS

I wanted readers to browse a demo repo without leaving the article. Nothing embeddable was small enough, so I built one: tree, tabs, highlighting, themes, snippets and guided tours in under 10 KB of JS, with no dependencies and no backend.

javascript · tooling · 6 min
→