---
title: "Get decorating with Babel 7.17.0"
publication: "JavaScript Weekly"
issue: 575
published_at: "2022-02-04"
canonical_url: "https://javascriptweekly.com/issues/575"
---

Plus Electron 17, V8 9.9, and writing a printer driver in JavaScript? |        

#​575 — February 4, 2022 

[Unsubscribe](https://javascriptweekly.com/leave/*|UID|*)|[Read on the Web](https://javascriptweekly.com/issues/575)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/g6siflolg6cl3gdzxkdm.jpg)](https://kubesail.com/blog/2022-02-01-printer-driver-in-javascript)  

[Writing a Printer Driver in JavaScript](https://kubesail.com/blog/2022-02-01-printer-driver-in-javascript) — _“Writing a printer driver in JavaScript sounds ridiculous,”_ starts the author, and while the definition of ‘driver’ is arguable here (it's more a _filter?_), this is nonetheless an interesting story and solution to the author's problem. 

Dan Pastusek   

[Babel 7.17.0 Released](https://babeljs.io/blog/2022/02/02/7.17.0) — Now that the [decorators proposal](https://github.com/tc39/proposal-decorators) has stabilized, Babel includes parse and transform support for them, if you want to get playing. The ‘`v`’ flag proposal for regexes has also been implemented. 

Babel Team   [![\](https://copm.s3.amazonaws.com/79ea00da.png)](https://buttercms.com/nodejs-cms/?utm_source=javascriptweekly&utm_medium=email&utm_campaign=code) 

[ButterCMS Melts into Your JS App:
`$ butter.post.list()`](https://buttercms.com/nodejs-cms/?utm_source=javascriptweekly&utm_medium=email&utm_campaign=code) — ButterCMS is your content backend. Enable your marketing team to update website + app content without needing you. Try the #1 rated Headless CMS for your JS app today. Free for 30 days. 

ButterCMS sponsor   

[The Fetch API is Coming to Node Core (and Why to Care)](https://fusebit.io/blog/node-fetch/) — Support for the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) (as commonly used browser-side for fetching resources) has [been merged](https://github.com/nodejs/node/pull/41749) into Node.js and will be available behind a `--experimental-fetch` flag until, hopefully, being enabled by default in Node 18+. 

Yavor Georgiev   

[Memory Leaks: The Forgotten Side of Web Performance](https://nolanlawson.com/2022/01/05/memory-leaks-the-forgotten-side-of-web-performance/) — An even-handed take on the importance of memory leaks, even though the “effort-to-payoff ratio” is often seen as “disappointingly high”. 

Nolan Lawson   

**IN BRIEF:** 

- [V8 v9.9](https://v8.dev/blog/v8-release-99) is on the way, with a focus on improvements to `Intl`.
- A big new [monthly update for VS Code](https://code.visualstudio.com/updates/v1_64) with a JS debugging improvement that lets you exclude certain callers from pausing at breakpoints.
- The npm registry is now requiring maintainers of the [top 100 npm packages to use 2FA.](https://github.blog/2022-02-01-top-100-npm-package-maintainers-require-2fa-additional-security/) This policy will extend to more maintainers over time.
- Using `[].join(', ')` to join lists of strings? Eric Clemmons has [a nifty alternative to consider](https://twitter.com/ericclemmons/status/1488558951008509963).
- Dan Abramov [tries to sell us on Sublime Text](https://twitter.com/dan_abramov/status/1488956873390923780) versus VS Code.
- [Jest](https://jestjs.io/) is a very popular JS testing framework associated with Facebook yet allegedly [no-one at Facebook has worked on Jest for years](https://github.com/facebook/jest/pull/11529#issuecomment-1027152470). 

**RELEASES:** 

[MDX 2.0](https://mdxjs.com/blog/v2/) – Markdown + JSX = ❤️
 [Partytown 0.3](https://github.com/BuilderIO/partytown) – Take third party scripts off the main thread.
 [Mongoose 6.2.0](https://github.com/Automattic/mongoose/releases/tag/6.2.0) – MongoDB object modelling library.
 [Recoil 0.6](https://recoiljs.org/blog/2022/01/28/0.6.0-release/) – Alternative React state management.
 [Commander.js 9.0](https://github.com/tj/commander.js/releases/tag/v9.0.0) – Node CLI framework.
 [CKEditor 5 v32.0](https://github.com/ckeditor/ckeditor5/releases/tag/v32.0.0) – Rich text editor framework.
 [ESLint 8.8.0](https://eslint.org/blog/2022/01/eslint-v8.8.0-released)    

💻 Jobs  

[Senior Web Developer (Node/ReactJS) - Remote](https://apply.workable.com/komoot/j/DCC51EA91D/apply/) — Millions get inspired and plan adventures with our apps. To help us make [komoot.com](https://www.komoot.com) the place to go to plan outdoor adventures, we’re looking for a one of a kind Web Developer to join our team. 
Komoot   

[Senior JavaScript Engineer](https://civey-gmbh-jobs.personio.de/job/264030?_pc=629016#apply) — Join our dev team and help develop, test, document and maintain our JS driven web applications. 
Civey   

[Toptal: The World’s Top Companies at Your Fingertips](https://topt.al/QQc6xP) — We connect developers like you with exclusive clients that include Fortune 500 companies and Silicon Valley startups. [Apply now](https://topt.al/QQc6xP). 
Toptal    

📒 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/p4itcrffmsgkrlhxkgnu.jpg)](https://jason-williams.co.uk/speeding-up-vscode-extensions-in-2022)  

[Speeding Up VS Code Extensions in 2022](https://jason-williams.co.uk/speeding-up-vscode-extensions-in-2022) — One of those ‘niche but interesting’ posts that digs into the underlying architecture of VS Code and a must-read for anyone considering making their own extension. 

Jason Williams   

▶[Your Weekly Source for Conversations on the Art & Practice of Software](https://stackoverflow.blog/podcast/?utm_source=JSweekly&utm_medium=newsletter&utm_campaign=editaudio) — Ben Popper, Cassidy Williams & Ceora Ford explore what it means to work in software, and how code is reshaping our world. 

The Stack Overflow Podcast sponsor   

[Improving JavaScript Bundle Performance With Code-Splitting](https://www.smashingmagazine.com/2022/02/javascript-bundle-performance-code-splitting/) — Looks at the benefits and caveats of code-splitting and how page performance and load times can be improved by dynamically loading expensive, non-critical JavaScript bundles. 

Adrian Bece   

[What Web Frameworks Solve And How To Do Without Them](https://www.smashingmagazine.com/2022/01/web-frameworks-guide-part1/) — Dives deep into a few technical features that are common across frameworks, and explains how some of the different frameworks implement them and what they cost. 

Noam Rosenthal   

[Use Streams to Build High-Performing Node Apps](https://blog.appsignal.com/2022/02/02/use-streams-to-build-high-performing-nodejs-applications.html) — Using the `stream` module in Node.js to your advantage. 

Deepal Jayasekara   

[Connect a Chatbot to Popular Messaging Channels](https://bit.ly/3r5BLnJ) — Learn the easy way to connect a chatbot to Telegram, Messenger, Twilio, Smooch, Vonage, Slack, and Microsoft Teams. 

Botpress sponsor   

[How To Create, Test and Deploy a SPA with Vue 3, Vite and Pinia](https://labs.pineview.io/learn-how-to-build-test-and-deploy-a-single-page-app-with-vue-3-vite-and-pinia/) 
Andrei Rusu   

▶[The Story of React (in 10 Minutes)](https://www.youtube.com/watch?v=Wm_xI7KntDs) 
ui·dev   

[Preventing Smooth Scrolling with JavaScript](https://kilianvalkhof.com/2022/css-html/preventing-smooth-scrolling-with-javascript/) 
Kilian Valkhof  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/z1ltybyxbqnxaswmnjkt.jpg)](http://sigmajs.org/)   

[Sigma 2.2: A Graph Drawing Library](http://sigmajs.org/) — A mature library (we first linked it in 2015!) aimed at use cases where you have _giant_ graphs containing thousands of nodes and edges that you need to render quickly. Some good examples here. [GitHub repo](https://github.com/jacomyal/sigma.js). 

Alexis Jacomy   

[A-Frame 1.3: A Framework for Building WebVR Experiences](https://aframe.io/) — A web framework for building virtual reality experiences that work on Vive, Rift, Quest, as well as desktop and mobile platforms, including in the browser (_as the demos here show_). 

A-Frame VR Team   

[Electron 17 Released](https://www.electronjs.org/blog/electron-17-0) — The popular cross-platform desktop app framework gets key dependency bumps with Chromium 98 support, Node 16.13.0, and V8 9.8. 

Michaela Laurencin and Keeley Hammond   

[Pulumi: Developer-First Infrastructure with JavaScript](https://www.pulumi.com/docs/get-started/?utm_source=javascript-weekly&utm_medium=sponsored-link&utm_campaign=iac) 

Pulumi sponsor   

[Hotkey 2.0: Trigger an Action on an Element When a 'Hotkey' is Pressed](https://github.com/github/hotkey) — Use Hotkey, set the `data-hotkey` attribute on your elements, and you get keyboard shortcuts. [v2.0](https://github.com/github/hotkey/releases/tag/v2.0.0) just dropped. If it's good enough for GitHub, it's good enough for us! 

GitHub   

[imask.js 6.4.0: A Vanilla JavaScript Input Mask](https://imask.js.org/) — Rather than validate the syntax of input fields, how about preventing users from even entering invalid values? 

imaskjs   

[lite-youtube: A Web Component That Renders YouTube Embeds Faster](https://github.com/justinribeiro/lite-youtube) — It’s the Shadow DOM web component version of Paul Irish’s [lite-youtube-embed](https://github.com/paulirish/lite-youtube-embed), with keyboard accessibility and some other nice features. 

Justin Ribeiro  

😍 And finally.. 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/zirn5nesrjne6sa7lgqh.jpg)](https://webvm.io/)   

[WebVM.io](https://webvm.io/) takes you straight to a Web-based 'server-less' virtual Linux environment **running directly in your browser.** It's powered by the JavaScript and WebAssembly-based [CheerpX](https://leaningtech.com/cheerpx/) x86 virtualization engine. While it's not a JavaScript project exactly, it's a neat demonstration of how far Web technology has come. It has Node v10.24.0 'installed' if you want to try that, but beware it takes a good 20 seconds to load on my machine. 

[Here's a write-up about how it works,](https://leaningtech.com/webvm-server-less-x86-virtual-machines-in-the-browser/) if you want to learn more. 

_Note: Probably one for desktop users only due to the resources and performance needed._         

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

'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
