typescript

  • A TypeScript server in a PHP shop, and who maintains it

    A second language in the repository, and the question that matters more than the language. A second language is a maintenance decision rather than a technical one, and…

  • Building an MCP server for a database

    turkerdev/mysql-mcp, and what a protocol for tool access actually requires. The authorisation model is the host’s problem, which means it is all yours.

  • Publishing a shared lint config for a team

    turkerdev/kbox-eslint-rules, and four repositories with four nearly identical configs that disagreed on eleven rules.

  • A year of an assistant in the editor, measured

    A year of using a model-backed assistant, and an attempt to say something specific about it. Every claim about this is a demonstration or a complaint.

  • A type generated from a schema, and the assertion I removed

    Types generated from an OpenAPI document, and a response validated at runtime rather than asserted at compile time. A generated type describes the specification and the specification is…

  • A build with no bundler

    A site with 18 KB of JavaScript and a build pipeline sized for something larger. What a bundler provides, listed, and which of it is needed.

  • RegExp.escape, and the helper everybody had written

    Escaping a user-supplied string for use in a pattern, implemented from a Stack Overflow answer in every project since 2011. Four copies of a security-relevant one-liner, three of…

  • Set methods in ES2025, and the lodash import I removed

    Union, intersection and difference on Set, in the language, replacing four utility functions and a dependency. The array round trip was the idiom and it allocated twice for…

  • TypeScript 5.8, and a narrowing that finally worked

    Return type checking for conditional expressions, which resolved a pattern that had needed an assertion since 2021. Overloads with a boolean discriminant are a common shape and the…

  • Import attributes for a JSON module

    Importing JSON with a syntax the runtime enforces, rather than with a bundler plugin that made it look like a module. The attribute is a security feature rather…