---
title: "Digging into explicit resource management"
publication: "JavaScript Weekly"
issue: 663
published_at: "2023-11-16"
canonical_url: "https://javascriptweekly.com/issues/663"
---

Plus a review of lighter-weight JavaScript frameworks, and some browser debugging tricks. |        

#​663 — November 16, 2023 

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

Together with [![AWS\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_700/e_make_transparent/co_white,e_outline:10/v4cjjkcunep8a0x8edt9.png)](https://ivs.rocks/?utm_source=Newsletter&utm_medium=Email&utm_campaign=js_weekly&utm_content=Link)  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/idn5i3zweygdrffmarsa.jpg)](https://prettier.io/blog/2023/11/13/3.1.0)  

[Prettier 3.1 Released](https://prettier.io/blog/2023/11/13/3.1.0) — The popular opinionated code formatter has a new release including support for the new control flow syntax in Angular 17 plus a new, experimental formatting option for ternary expressions (as in `x ? y : z`) explained in more depth in ["A curious case of the ternaries."](https://prettier.io/blog/2023/11/13/curious-ternaries.html) 

Alex Rattray   

🤔 With an aim to making code formatting even faster, Prettier's co-creator has [put up a $10k bounty](https://twitter.com/Vjeux/status/1722733472522142022) for any Rust project that passes >95% of Prettier's tests.  

[Exploring Explicit Resource Management in JS](https://iliazeus.github.io/articles/js-explicit-resource-management-en/) — A practical look at the idea of explicit resource management, an idea both [currently at stage 3 in TC39](https://github.com/tc39/proposal-explicit-resource-management) (and partly [supported in TypeScript 5.2](https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/#using-declarations-and-explicit-resource-management)) that makes it easier to ‘clean up’ resources once they are no longer used or needed. 

Ilia Pozdnyakov   [![\](https://copm.s3.amazonaws.com/bee805df.png)](https://ivs.rocks/?utm_source=Newsletter&utm_medium=Email&utm_campaign=js_weekly&utm_content=Link) 

[Build Interactive, Live Video Applications with Amazon IVS](https://ivs.rocks/?utm_source=Newsletter&utm_medium=Email&utm_campaign=js_weekly&utm_content=Link) — Amazon Interactive Video Service (Amazon IVS) allows developers to create dynamic video experiences, such as collaborative real-time livestreams. Check out the new ivs.rocks to find code samples, demos, and other resources. [Click here](https://ivs.rocks/?utm_source=Newsletter&utm_medium=Email&utm_campaign=js_weekly&utm_content=Link) to get started. 

Amazon Web Services (AWS) sponsor   

[On HTML Web Components](https://blog.jim-nielsen.com/2023/html-web-components/) — “_With web components, you might even say React’s component model is being ported to the browser. But it’s being done in a way that works to enhance how the web already works, not replace it_”. 

Jim Nielsen   

[A Review of Lightweight JavaScript Frameworks](https://saashammer.com/blog/lightweight-javascript-framework-review-for-django-developers/) — This overview is targeted at [Django](https://www.djangoproject.com/) (i.e. Python) developers but if you, too, want to avoid larger frameworks like React or Angular, you might appreciate this look at numerous alternatives from Stimulus and htmx to more oblique options like Laravel Livewire. 

Michael Yin   

- 🥳 AWS is celebrating a huge release with [v6 of the AWS Amplify JavaScript library](https://aws.amazon.com/blogs/mobile/amplify-javascript-v6/) which includes full support for Next.js App Router and Server Actions.
- 🌎 Node.js TSC member Yagiz Nizipli is suggesting [using Biome for code formatting](https://github.com/nodejs/node/pull/50672) in Node, since ESLint has [deprecated its core formatting rules](https://eslint.org/blog/2023/10/deprecating-formatting-rules/).
- 👾 The winners of _React Jam_, a recent React-based game development contest, [have been revealed.](https://reactjam.com/winners-fall-2023) An entry I enjoyed was [useChess,](https://use-chess.fall-2023.reactjam.com/) a set of chess-based puzzles.
- ▶️ If you've wondered what the big deal is about [Astro](https://astro.build/), James Q Quick went on the _Software Engineering Daily_ podcast and [explained Astro pretty well.](https://softwareengineeringdaily.com/2023/11/14/the-astro-framework-with-james-quick-2/)
- 🎵 Someone's recorded [▶️ a rap music video](https://www.youtube.com/watch?v=3ySPR3QCxO8) about TypeScript..   

**RELEASES:** 

- [Node.js v21.2.0 (Current)](https://nodejs.org/en/blog/release/v21.2.0)
- [visx 3.5](https://airbnb.io/visx/) – D3-based visualization primitives for React.
- [fx 31.0](https://github.com/antonmedv/fx/releases/tag/31.0.0) – Powerful terminal JSON viewer.
- [Astro 3.5](https://astro.build/blog/astro-350/), [Ember 5.4](https://blog.emberjs.com/ember-released-5-4/), and [Prisma 5.6.](https://github.com/prisma/prisma/releases/tag/5.6.0)  

📄 Articles & Tutorials  

[67 Browser-Based Debugging Tricks](https://alan.norbauer.com/articles/browser-debugging-tricks) — A list of useful, ‘not-obvious’ hacks to get the most out of the browser’s DevTools. Assumes a reasonable existing understanding of said tools. 

Alan Norbauer   

[Exploring V8's Strings: Implementation and Optimizations](https://iliazeus.github.io/articles/js-string-optimizations-en/) — **Note: This is _very_ technical and most JavaScript developers do not need to go this deep.** That aside, this is a fantastic look under the covers of how the V8 engine handles strings, including the optimizations used that allow it to go toe to toe with languages like C++. 

Ilia Pozdnyakov   

[JavaScript Scratchpad for VS Code](https://quokkajs.com/whatsnew/logpoints.html?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 Team sponsor   

▶[An Overview of Angular 17's New Built-In Control Flow](https://www.youtube.com/watch?v=DOffmVeBk0o) — [Angular 17](https://blog.angular.io/introducing-angular-v17-4d7033312e4b) was released last week and a significant enhancement was support for a new syntax in templates that looks and feels more JavaScript-y. 

Dmytro Mezhenskyi   

[Moving Back to React (from Preact)](https://daily.dev/blog/moving-back-to-react) — Preact felt like a logical, lightweight choice to this team at one time, but they’ve switched to React for better compatibility with Next.js, among other things. Their page weight is up slightly, but they feel the tradeoff is worth it. 

Ante Barić (Daily․Dev)   

[My Journey to 3x Faster Builds: Trimming Barrel File Imports](https://blog.vramana.com/posts/barrel_files_slow_build/) — _“I maintain a small frontend application (4K LOC) which uses Vite as the compiler. The production build, using npm run build, was taking 26 secs on Github Actions. It seemed awfully slow for such a small application. I decided to investigate why.”_ 

Ramana Venkata   

[Can Bun Eat Node’s 'Lunch'?](https://labzero.com/blog/can-bun-eat-node-js-s-lunch-testing-the-trendy-toolkit) — An experiment in migrating a codebase (a restaurant voting app called _Lunch_) from Node over to Bun and seeing how it fares. 

Jeffrey Carl Faden   

[Feel the Power of More Than 420,000 Teammates and Work #LikeABosch](https://www.bosch.com/careers/why-bosch/culture-and-benefits/?utm_campaignid=javascript&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=brief&utm_content=recognition) 

Bosch sponsor   

[How to Use NPM Packages Outside of Node](https://neon.tech/blog/using-npm-packages-outside-node) — Learn how to run NPM packages in ‘other places’ like serverless platforms, the browser, and beyond. 

George MacKerron (Neon)   

[What I Learned Building an Audio Plugins System for the Web](https://blog.benwiley.org/audio-plugins/) 
Ben Wiley   

[Rust for JavaScript Developers: An Overview of Testing](https://www.shuttle.rs/blog/2023/11/08/testing-in-rust) 
Joshua Mo  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/tlt65p0bjrhzcmuvkd7h.jpg)](https://github.com/dylanebert/gsplat.js)   

[gsplat.js: A Gaussian Splatting Library](https://github.com/dylanebert/gsplat.js) — Gaussian splatting is an increasingly popular graphics rendering techniques where rather than render millions of tiny, textured triangles in a scene, you get a more wild paintball-like splatter fest, where each paintball creates a smooth, colorful blob instead of a rigid shape. [This demo](https://jsfiddle.net/e52x4m9z/) is both simple and striking. 

Dylan Ebert   

[Reveal.js 5.0: The HTML Presentation Framework](https://github.com/hakimel/reveal.js/releases/tag/5.0.0) — A way to build presentations using standard Web technologies. The [project’s homepage](https://revealjs.com/) is, itself, such a presentation. v5.0 adds support for ‘scroll mode’ which essentially turns presentations into more typically scrolling Web experiences – [demo.](https://slides.com/news/scroll-mode/scroll) 

Hakim El Hattab   

[🖍️ Marker.io: Collect Bug Reports With Annotations & Session Replay](https://marker.io/?utm_source=jsweekly&utm_medium=email&utm_campaign=sponsored&utm_content=marker) — Collect feedback on live websites. Get dev-friendly bug reports with screenshots, URLs, console logs & session replay. 

Marker.io sponsor   

[Datasheet Grid: An Airtable-like React Component](https://react-datasheet-grid.netlify.app/) — If you’ve got an array of objects and you want a way for users to manipulate them, this is for you. It’s not going to replace a spreadsheet or an extensive data grid framework, but it’s a mature solution featuring smooth animations, virtualized rows/columns, keyboard navigation, and more. 

Nicolas Keller   

[Perfect Freehand: A Library for Creating Better 'Freehand' Lines](https://github.com/steveruizok/perfect-freehand) — You can [try it out here](https://perfect-freehand-example.vercel.app/). Makes your e-signature not look like chicken scratch! Might be useful for drawing apps. 

Steve Ruiz   

[Wild Wild Path v5: Object Property Paths with Wildcards and Regexps](https://github.com/ehmicky/wild-wild-path) — A 'wild' way to access properties in objects (which can be deeply nested) by way of string based queries that support wildcards and regexes. [The examples](https://github.com/ehmicky/wild-wild-path#listtarget-query-options) help communicate the idea. 

ehmicky   

[@storybook-test: More Streamlined and Powerful Storybook Testing](https://storybook.js.org/blog/storybook-test/) — @storybook/test consolidates the API of `@storybook/jest` and `@storybook/testing-library` into a new, single package, powered by Vitest. 

Kasper Peulen   

- [Marked 10.0](https://github.com/markedjs/marked) – Markdown parser and compiler. There's also [marked-terminal 6.1](https://github.com/mikaelbr/marked-terminal) which lets you render Marked-processed Markdown on the terminal.
- [HumanizeDuration.js 3.31.0](https://github.com/EvanHahn/HumanizeDuration.js) – Turn milliseconds into textual durations in numerous natural languages.
- [`actions/github-script` 7.0](https://github.com/actions/github-script) – Script the GitHub API in GitHub Actions.
- [Plasmo v0.84.0](https://github.com/PlasmoHQ/plasmo) – _"Like Next.js for browser extensions."_
- [PDFKit 0.14.0](https://github.com/foliojs/pdfkit) – PDF generation for Node and browser.
- [React Joyride 2.7](https://github.com/gilbarbara/react-joyride) – Create guided tours in your apps.    

Job Listing  

[Full Stack TypeScript Software Engineer - [Remote Europe\]](https://marker.io/jobs?utm_source=jsweekly&utm_medium=email&utm_campaign=job_listing&utm_content=typescript_dev) — [Marker.io](https://marker.io/) is a visual bug-reporting tool for the web. Join our dev team and work remotely _(Stack: Node.js, Vue.js & MongoDB)._      

**_NOTABLE QUOTABLE_**  

“When you choose a language, you’re choosing more than a set of technical trade-offs – you’re choosing a community.” 

___
Joshua Bloch          

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
