---
title: "Astro 2.0 and TypeScript 5.0 beta"
publication: "JavaScript Weekly"
issue: 623
published_at: "2023-01-27"
canonical_url: "https://javascriptweekly.com/issues/623"
---

Plus deep cloning JS objects, controlling the desktop with Node, and how to make Bun tastier. |        

#​623 — January 27, 2023 

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

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/learn/professional/?utm_source=javascriptweekly&utm_medium=email&utm_content=professional)  

JavaScript Weekly 

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

[Astro 2.0: The Next-Gen 'Islands'-Oriented Web Framework](https://astro.build/blog/astro-2/) — 2.0 includes hybrid rendering (mixing of SSR and SSG outputs), type safety for Markdown & MDX, and an upgrade to [Vite 4.0](https://vitejs.dev/blog/announcing-vite4.html). Astro is worth exploring when performance is key as it works with popular frameworks but lets you deliver the least JS possible to get pages rendered. 

Fred Schott   

Prefer a talk? Nate Moore's ViteConf talk [▶️ Islands Architecture, Astro, and You](https://www.youtube.com/watch?v=SICd8tTEqvs) will bring you up to speed.  

[Deep Cloning Objects in JavaScript, The Modern Way](https://www.builder.io/blog/structured-clone) — If you’ve been leaning on something like Lodash for deep cloning, you might not need to any longer. _“It’s been a long time coming, but we finally now have the built-in `structuredClone` function to make deep cloning objects in JavaScript a breeze.”_ 

Steve Sewell   [![\](https://copm.s3.amazonaws.com/5841c806.png)](https://frontendmasters.com/learn/professional/?utm_source=javascriptweekly&utm_medium=email&utm_content=professional) 

[Go From Professional Web Developer to Lead Engineer](https://frontendmasters.com/learn/professional/?utm_source=javascriptweekly&utm_medium=email&utm_content=professional) — Aspiring lead developer? Our collection of comprehensive video courses cover the fundamentals of JavaScript, TypeScript, React, web performance, and more. 

Frontend Masters sponsor   

[Announcing TypeScript 5.0 Beta](https://devblogs.microsoft.com/typescript/announcing-typescript-5-0-beta/) — A new major version number, but users of the popular typed JS superset will face a ‘similar upgrade experience’ to previously. [Decorators](https://devblogs.microsoft.com/typescript/announcing-typescript-5-0-beta/#decorators) make it in as a first class feature, significant performance and package size optimizations are present, `export type *` is supported, all `enum`s are now _union_ `enums`, and much more. 

Daniel Rosenwasser (Microsoft)   

[AlaSQL.js 3.0: Isomorphic JavaScript SQL Database](https://github.com/alasql/alasql) — A SQL database you can use in the browser, Node.js or mobile apps. An interesting bit of functionality is you can use SQL to query JavaScript objects – [example](https://jsfiddle.net/8brvex4f/). _“The library adds the comfort of a full database engine to your JavaScript app. No, really.”_ 

Andrey Gershun   

**IN BRIEF:** 

- 🏅 If you're _really_ into Vue.js, you'll soon be able to [become officially certified in it](https://certification.vuejs.org/).
- If you're using React, you should be using a React _framework_, [🐦 says Andrew Clark](https://twitter.com/acdlite/status/1617611126514266112) of the core team.
- The creator of alternative JS runtime [Bun](https://bun.sh/) asks: _"If there's one thing missing from Bun for you to switch, what is it?"_ You can [reply on Twitter](https://twitter.com/jarredsumner/status/1618755654122086402).
- [jQAPI.com](https://jqapi.com/) is an amazing meeting of old and new JavaScript – it's an _Astro_ powered version of jQuery's documentation!   

**RELEASES:** 

- [Shoelace 2.0](https://shoelace.style/)
 ↳ Agnostic library of web components.
- [μFuzzy 1.0](https://github.com/leeoniya/uFuzzy)
 ↳ Tiny fuzzy search library.
- [React Router 6.8](https://github.com/remix-run/react-router/releases/tag/react-router%406.8.0)
- [Node.js 19.5.0](https://nodejs.org/en/blog/release/v19.5.0/)  

📒 Articles & Tutorials  

[Getting Started with SvelteKit](https://css-tricks.com/getting-started-with-sveltekit/) — SvelteKit only recently hit 1.0 and this is a comprehensive overview of how to build a site using the Svelte-oriented app framework. It covers topics like routing, layouts, data, props and more. 

Adam Rackis   

[Using .NET Code from JavaScript using WebAssembly](https://www.meziantou.net/using-dotnet-code-from-javascript-using-webassembly.htm) — _“Starting with .NET 7, you can easily run any .NET method from JavaScript without needing the whole Blazor framework.”_ 

Gérald Barré   

[JavaScript Scratchpad for VS Code (2m+ Downloads)](https://quokkajs.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) — Quokka.js is the #1 tool for exploring/testing JavaScript with edit-continue experience to see realtime execution and runtime values. 

Wallaby.js sponsor   

[`scrollend`: A New JavaScript Event](https://developer.chrome.com/blog/scrollend-a-new-javascript-event/) — Finally an event you won’t need a hotel booking for. `scrollend` provides a new way to detect that a scrolling operation is complete in the browser. Is it another Chrome-only nicety? [Surprisingly not](https://caniuse.com/mdn-api_element_scrollend_event) – Firefox 109+ supports it too. 

Adam Argyle (Chrome Team)   

[Packaging Rust Apps for the npm Registry](https://blog.orhun.dev/packaging-rust-for-npm/) — Isn’t npm just for JavaScript projects? Nope. Node is required to make this technique work, but as long as you can package and execute a binary, you’re good to go. 

Orhun Parmaksız   

[Making Sense of TypeScript using Set Theory](https://blog.thoughtspile.tech/2023/01/23/typescript-sets/) — This article certainly doesn’t hang around. Neat diagrams too. 

Vladimir Klepov   

[React Authentication, Simplified](https://userfront.com/tutorials/react-authentication) 

Userfront sponsor   

[Accessible Hamburger Buttons _without_ JavaScript](https://www.pausly.app/blog/accessible-hamburger-buttons-without-javascript) — Sometimes you need to consider if modern techniques allow you to _avoid_ JavaScript. [Here’s a CodePen](https://codepen.io/enyo/pen/yLqjrOR) if you want to play. 

Pausly   

While we're on the topic of less JavaScript, the latest episode of the _Stack Overflow_ podcast [▶️ 'The less JavaScript, the better'](https://stackoverflow.blog/2023/01/27/the-less-javascript-the-better-ep-532/) focuses on _Astro._ 

🛠 Code & Tools  

[Uppy 3.4: Powerful, Modular JavaScript File Uploader](https://uppy.io/) — Upload not just from local sources but even Dropbox or Instagram. Integrates with popular frameworks and supports resumable uploads. [GitHub repo](https://github.com/transloadit/uppy). 

Transloadit   

[Nut.js 3.0: Desktop Automation from Node](https://nutjs.dev/) — Take control of your desktop (Windows, macOS or Linux) in code with control over keyboard + pointer, along with image matching functionality. [GitHub repo](https://github.com/nut-tree/nut.js). 

Simon Hofmann   

[Optimize Your Systems' Performance With TelemetryHub - Real-Time Data Monitoring & Analysis](https://ter.li/xicmu6) — An advanced data visualization and analysis tool that can help you identify and resolve unseen issues in your environment. Try free. 

TelemetryHub by Scout sponsor   

[Eleventy v2.0: First Beta of the Popular Site Generator](https://www.11ty.dev/blog/eleventy-v2-beta/) — [Eleventy](https://www.11ty.dev/) is a popular Node.js static site generator and v2.0 includes enough major changes that a thorough beta is needed. The creator [▶️ made this quick video about the release](https://www.youtube.com/watch?v=TcTR0TLqM3I). 

Zach Leatherman   

[Mock Service Worker 1.0: API Mocking Library for Browser and Node](https://mswjs.io/) — Intercepts requests which you can then mock. Capture outgoing requests using an Express-like routing syntax, complete with parameters, wildcards, and regexes. [GitHub repo](https://github.com/mswjs/msw). 

Artem Zakharchenko   

[Drift: A Self-Hostable Gist-Like / Pastebin Service](https://github.com/MaxLeiter/Drift) — Built with Next.js 13. 

Max Leiter   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wkb5awsq1icslh455awb.jpg)](https://dygraphs.com/)  

- [Dygraphs 2.2](https://dygraphs.com/)
 ↳ Interactive charts of time series data.
- [actions/github-script 6.4](https://github.com/actions/github-script)
 ↳ Write GitHub Actions workflows in JS.
- [Playwright 1.30](https://github.com/microsoft/playwright)
 ↳ Browser automation framework.
- [Faast.js 6.4](https://github.com/faastjs/faast.js)
 ↳ Serverlessly call JS functions on AWS Lambda & Google Cloud Functions.
- [Cypress 12.4](https://github.com/cypress-io/cypress)
 ↳ Testing framework for anything in a browser.
- [D3plus 2.1](https://github.com/d3plus/d3plus)
 ↳ Extend D3.js with more visualization types.    

💻 Jobs  

[Developer Relations Manager](https://cksource.com/careers/?utm_source=jsweekly&utm_medium=email&utm_campaign=jan06#developer-relations-manager) — Join the CKEditor team to build community around an Open Source project used by millions of users around the world 🚀 
CKEditor   

[Senior Full-Stack Engineer - React + TypeScript](https://qwire.applytojob.com/) — Come help Qwire modernize how studios, composers, artists, publishers, labels, and the rest of the industry manage music rights. 
Qwire   

[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) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired           

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
