---
title: "TypeScript 5.2, Node 20.6, and Astro 3.0"
publication: "JavaScript Weekly"
issue: 653
published_at: "2023-09-07"
canonical_url: "https://javascriptweekly.com/issues/653"
---

Plus why Vue is now far faster in Firefox, CSS in JS has 'plateaued' and getting wavy with the BBC. |        

#​653 — September 7, 2023 

[Read on the Web](https://javascriptweekly.com/issues/653)   

**😅 We're back!** After two weeks enjoying the blistering desert heat of Las Vegas and downpours of Storm Hilary, I'm ready to get back to the weekly JavaScript roundups – fingers crossed we're here each week till Christmas now :-)
__
_Peter Cooper and the Cooperpress team_ 

Together with [![Pangea logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto/e_make_transparent/co_white,e_outline:7/vdxvaq0osr46vwyw8hkt.png)](https://pangea.cloud/resources/technologies/?utm_medium=display&utm_source=display&utm_campaign=js-weekly-september-23-technologies)  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/dkqz7wxpcyx9vkv3iob5.jpg)](https://astro.build/blog/astro-3/)  

[Astro 3.0 Released: The All-in-One Web Framework](https://astro.build/blog/astro-3/) — An increasingly popular, turbo-charged site generator comfortable with not just static sites, but dynamic and interactive ones too by way of its [‘islands’ approach.](https://docs.astro.build/en/concepts/islands/) You can use React, Vue, Svelte, Solid, and others, with it, and v3 adds View Transitions API support ([more on that here](https://developer.chrome.com/blog/astro-view-transitions/)) which can result in striking creations like [this Spotify 'clone'](https://spotify-astro-transitions.vercel.app/). It requires a play to really 'get it' but it's great. 

Astro Team   

Good news – now [SvelteKit supports the View Transitions API](https://svelte.dev/blog/view-transitions) too 😉  

[Node.js 20.6 Released with Built-In Support for `.env` Files](https://philna.sh/blog/2023/09/05/nodejs-supports-dotenv/) — The [official release post](https://nodejs.org/en/blog/release/v20.6.0) covers everything new in 20.6, but the highlight is support for `.env` environment files to set environment variables dynamically when a script is run without requiring a third-party library like `dotenv`. 

Phil Nash   [![\](https://copm.s3.amazonaws.com/35cd7ef1.png)](https://pangea.cloud/resources/technologies/?utm_medium=display&utm_source=display&utm_campaign=js-weekly-september-23-technologies) 

[Simplify Security and Compliance for Your Apps](https://pangea.cloud/resources/technologies/?utm_medium=display&utm_source=display&utm_campaign=js-weekly-september-23-technologies) — Introducing Pangea: comprehensive API-based security services for developers. Effortlessly integrate foundational security services like Authentication, Authorization, and Audit Logging to create a safer app experience and accelerate your time to market. 

Pangea sponsor   

[Bye to _Rome_ and Hi to _Biome_ for JS Formatting and Linting](https://biomejs.dev/blog/annoucing-biome) — First announced in 2020, Rome is/was an ambitious effort to create a unified frontend dev tool to bring ideas from Babel, ESLint, webpack, etc. into one place. After forming a company around Rome and raising money two years ago, things seem to have gone awry, with its key maintainers forking the project as [_Biome._](https://biomejs.dev/) 

Emanuele Stoppa and the Biome Team   

**⚡️ IN BRIEF:** 

- Version 1.0 of [Bun](https://bun.sh/), the notably fast _JavaScriptCore_-based JS runtime, is due to launch in the coming hours. There's a livestream and, we assume, a launch post due to [land here very soon.](https://bun.sh/1.0)
- In other 'alternative runtime news', the Deno team has announced [native npm support on its _Deno Deploy_ platform.](https://deno.com/blog/npm-on-deno-deploy) They've also announced [_Deno KV_ is in open beta.](https://deno.com/blog/kv-open-beta)
- **Mozilla:** [_"Over the course of the year Firefox has improved by around 40% on the Vue.js benchmark"_](https://hacks.mozilla.org/2023/09/faster-vue-js-execution-in-firefox/) – find out why.
- David Heinemeier Hansson, the creator of _Ruby on Rails_, [announced that they're dropping TypeScript](https://world.hey.com/dhh/turbo-8-is-dropping-typescript-70165c01) from _Turbo_ (a library commonly used with Rails) in favor of plain old JavaScript. Social media drama ensued.
- What's going on with the [Gatsby](https://www.gatsbyjs.com/) React framework? Folks [are noticing](https://fediverse.zachleat.com/@zachleat/110927844356705881) there's not a lot going on with it lately and that [🐦 Netlify layoffs had a big impact.](https://twitter.com/wardpeet/status/1693014604694061194) Netlify does, however, say [🐦 updates are coming.](https://twitter.com/Netlify/status/1694035000734216263)
- GitHub has made [changes to its homepage feeds.](https://github.blog/changelog/2023-09-06-updates-to-your-github-feed/) Quite a few people [are unhappy](https://github.com/orgs/community/discussions/66133) about it, though.
- [_"The CSS-in-JS sector has plateaued,"_](https://2023.stateofcss.com/en-US/css-in-js/) says the latest _State of CSS_ survey.
- What's new in Svelte as of September 2023? [Quite a lot.](https://svelte.dev/blog/whats-new-in-svelte-september-2023)   

**🎉 RELEASES:** 

- [TypeScript 5.2](https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/) – Complete with the much awaited [`using` declarations..](https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/#using-declarations-and-explicit-resource-management)
- [Node-RED 3.1](https://nodered.org/blog/2023/09/06/version-3-1-released) – The powerful low-code/visual programming environment gets some key improvements in its editor.
- [jq 1.7](https://github.com/jqlang/jq/releases/tag/jq-1.7) – It's not JavaScript, but surely the best JSON processing tool to exist.
- [Ky 1.0](https://github.com/sindresorhus/ky) – Simple HTTP client based upon Fetch for browsers, Node & Deno.
- [jQuery 3.7.1](https://blog.jquery.com/2023/08/28/jquery-3-7-1-released-reliable-table-row-dimensions/) – Oh yes indeedy 🎉
- [Cypress 13](https://www.cypress.io/blog/2023/08/29/announcing-cypress-13-test-replay/)  

📒 Articles & Tutorials  

[Making Sense of React Server Components](https://www.joshwcomeau.com/react/server-components/) — This is fantastic and exactly what it says on the tin, – we'll be focusing on it more in next week's [React Status](https://react.statuscode.com/) newsletter though 😉 

Josh W Comeau   

[You Don't Need to Learn Svelte – Here's Why](https://kaviisuri.com/you-dont-need-to-learn-svelte) — I mean.. you kinda _do_, but Kavii’s excitement is infectious and Svelte’s approach remains refreshing. 

Kavii Suri   

item: [Using Labeled Loops in JavaScript](https://www.bennadel.com/blog/4512-using-labeled-loops-in-javascript.htm) — If using labels gives you flashbacks to BASIC and `GOTO` statements, I sympathize, but in JavaScript, labels open up an interesting control flow technique. [More about this on MDN.](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label) `continue item;` 

Ben Nadel   

[Build a Documentation Chatbot with ChatGPT and EdgeDB](https://www.edgedb.com/docs/guides/tutorials/chatgpt_bot) — Let's do it using EdgeDB's intuitive data model & query language, as well as its powerful TypeScript query builder. 

EdgeDB sponsor   

[A Wide View of Automated Testing in React Apps](https://reacthandbook.dev/automated-testing) — A straightforward and to the point introduction to why you might use automated testing, how to get going in the scope of a React app, and _what_ to be testing. 

The React Handbook   

[How to Create a Dual-Mode Cross-Runtime JavaScript Package](https://hexagon.56k.guru/posts/dual-mode-cross-runtime-packages/) — Specifically, supporting both ESM and CommonJS, and across runtimes like Node, Deno and the browser. 

Hexagon   

[Benchmarking 24 CSV Parsing Approaches](https://github.com/leeoniya/uDSV/tree/main/bench#readme) — The most extensive CSV parsing benchmark I’ve seen. The author is himself the creator of the [μDSV CSV parsing library](https://github.com/leeoniya/uDSV) and wanted to check out the common ‘lightning fast performance’ claims of other libaries. 

Leon Sorokin   

[The Complexity of Building an Efficient Node.js Docker Image](https://www.specfy.io/blog/1-efficient-dockerfile-nodejs-in-7-steps) — It’s possible to get huge reductions in image size and build time and Samuel shares his approach here, but he also questions whether all this work should be necessary. 

Samuel Bodin   

[Learn High-Level Compilers, Tools, & Techniques – in JavaScript!](https://www.dmitrysoshnikov.education/p/high-level-compilers-tools-and-techniques?coupon_code=HLC_75) 

Dmitry Soshnikov Education sponsor   

[14 Linting Rules To Help You Write Asynchronous JS Code](https://maximorlov.com/linting-rules-for-asynchronous-code-in-javascript/) 
Maxim Orlov   

[How to Create a Chrome Extension in 10 Minutes Flat](https://www.sitepoint.com/create-chrome-extension-10-minutes-flat/) 
James Hibbard  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wnk1bcwttjdmqjxfzv28.jpg)](https://waveform.prototyping.bbc.co.uk/)  

[Peaks.js 3.0: View and Interact with Audio Waveforms](https://waveform.prototyping.bbc.co.uk/) — A JavaScript component for browser-based audio waveform visualization that comes from the BBC’s R&D department. There’s a live example on the homepage. [GitHub repo.](https://github.com/bbc/peaks.js) 

BBC   

🎸 [SVGuitar: Create SVG-Based Guitar Chord Charts](https://github.com/omnibrain/svguitar) — Why not continue with the musical theme? 😁 You can experiment with this one [via this live demo.](https://omnibrain.github.io/svguitar/) 

Raphael Voellmy   

[FormKit 1.0: The Open-Source Form Framework for Vue](https://formkit.com/) — Ships with production-ready scaffolding like inputs, forms, submission and error handling, and validation rules. 

FormKit, Inc.   

[Add Authorization, MFA, Biometrics and More to Your JavaScript App in Just Minutes](https://fusionauth.io/articles/oauth/modern-guide-to-oauth?utm_source=jsweekly&utm_medium=newsletter&utm_campaign=modernguide823) — It's about time that somebody talked some sense about OAuth and JavaScript. So we did. You're welcome. 

FusionAuth sponsor   

[Plate: Roll Your Own Slate-Based Rich-Text Editor](https://platejs.org/) — A framework for building React-based rich text editors where you can select the specific features and functionality you need. [GitHub repo.](https://github.com/udecode/plate) 

Ziad Beyens   

[Math.js: An Extensive Math Library for Node and Browser](https://mathjs.org/) — Work with complex numbers, fractions, units, matrices, symbolic computation, etc. A long standing library now, but continuing to get frequent updates. [GitHub repo.](https://github.com/josdejong/mathjs) 

Jos de Jong   

[Calendar.js: A Calendar Control with Drag and Drop](https://github.com/williamtroup/Calendar.js) — A responsive calendar with no dependencies, full drag and drop support (even between calendars) and many ways to manage events with recurring events, exporting, holidays, and more. 

William Troup    

💻 Jobs  

[Find JavaScript Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-javascriptweekly%29&utm_content=find-your-next-job) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired   

🧑‍💻 Got a job listing to share? _[Here's how](https://booking.cooperpress.com/jobs)_.     

- [npm-to-yarn](https://github.com/nebrelbug/npm-to-yarn) – Convert `npm` commands to `yarn` and vice versa.
- [export-to-csv](https://github.com/alexcaza/export-to-csv) - Export arrays of objects to CSV.
- [Marked 8.0](https://github.com/markedjs/marked) – Fast Markdown parsing library. ([Demo.](https://marked.js.org/demo/))
- [Perfectionist 2.0](https://github.com/azat-io/eslint-plugin-perfectionist) – ESLint plugin for sorting various data.
- [React Native Vision Camera 3.0](https://www.react-native-vision-camera.com/)
 ↳ Powerful camera control for React Native apps.
- [YouTube.js 6.3](https://github.com/LuanRT/YouTube.js)
 ↳ Client library for YouTube's internal API.
- [Ink 4.4](https://github.com/vadimdemedes/ink) – Use React to build CLI apps.
- [Prisma 5.2](https://github.com/prisma/prisma/releases/tag/5.2.0)
- [ffmpeg.wasm 0.12.6](https://github.com/ffmpegwasm/ffmpeg.wasm)         

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/cooperx86) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
