🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket
Back

Security News

Node.js Moves Toward Stable TypeScript Support with Amaro 1.0

Amaro 1.0 lays the groundwork for stable TypeScript support in Node.js, bringing official .ts loading closer to reality.

Node.js Moves Toward Stable TypeScript Support with Amaro 1.0

Sarah Gooding

June 10, 2025

Node.js just quietly hit a major milestone on its path to stable TypeScript support: the release of Amaro v1.0.0, the project’s official type-stripping loader for .ts files. Amaro provides the TypeScript support that is set to elevate the language from "experimental" to "stable" within Node.js later this year.

TC39 co-chair Rob Palmer highlighted the release on Bluesky, describing it as deliberately minimal, mostly tests and no new features. This is a classic example of “boring is good” in infrastructure projects, as the stability is the exciting part that enables Node.js to transition its TypeScript support from an experimental flag to a fully integrated and reliable feature in the near future.

Palmer explained that Amaro primarily focuses on type-stripping, a process that removes type annotations from TypeScript code during transpilation, allowing it to run directly in JavaScript environments. Amaro delegates this heavy lifting to SWC, a high-performance Rust-based platform for JavaScript and TypeScript, developed by DongYoon Kang.

A key distinction Palmer pointed out is Amaro's ability to handle both strip-types (the default and most common mode) and transform-types, which is necessary for features like enums. Amaro, when used as a global loader, can process TypeScript files within node_modules, a significant advantage over Node.js' current built-in experimental support, which often struggles with external dependencies.

This release is creating a ripple of excitement within the developer community. The anticipation of stable TypeScript support directly within Node.js has been a long-standing request. Many developers have expressed the need for Node.js to embrace TypeScript fully.

While Node.js already offers experimental TypeScript support, as detailed in its official documentation, the move to stable status with Amaro's backing promises a more robust and reliable experience. Rob Palmer further clarified that Node.js already includes enum support, accessible via the --experimental-transform-types flag, a point that addresses some community concerns about feature parity with other runtimes like Bun and Deno.

The path to widespread adoption still faces hurdles. Some developers are excited by the idea of dropping tsx, tsup, or environment flags altogether. Others remain hesitant, especially library maintainers and teams working with long-term support (LTS) versions of Node.

In a now-viral post, Node.js TSC member Matteo Collina highlighted the gap between developer expectations and ecosystem readiness

Many developers are in favor of a backport to Node v22 for broader compatibility, especially in environments like AWS Lambda, where support for newer Node versions often lags behind. Several reiterated that built-in support won’t matter much unless libraries actually opt in.

There are also calls to make the experience feel more stable in practice. “Also, disable the experimental warning, it freaks people out," Matt Pocock replied.
Collina responded that this is already in progress and will hopefully land in one of the next versions of Node 24.

While community discussions continue regarding broader adoption by library maintainers and the possibility of backports to LTS versions like Node.js v22, the core project's commitment to removing experimental warnings signals a clear intent to foster a fully integrated, trustworthy TypeScript experience that empowers developers without additional friction.

Subscribe to our newsletter

Get notified when we publish new security blog posts!

Try it now

Ready to block malicious and vulnerable dependencies?

Install GitHub AppBook a demo

Related posts

Back to all posts