---
title: "🪜 Decorating with Dr. Axel"
publication: "JavaScript Weekly"
issue: 611
published_at: "2022-10-21"
canonical_url: "https://javascriptweekly.com/issues/611"
---

Plus a great new way to make animated GIFs, what to do if your team hates your functional programming obsession, discussing jQuery's ongoing relevance, and what is JSON.parse doing to your large numbers? |        

#​611 — October 21, 2022 

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

Together with [![Editaud\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_320,h_120/e_make_transparent/co_black,e_outline:5/szkiiezokqpjp7fily7c.png)](https://postlight.com/podcast?utm_source=cooperpress&utm_medium=email&utm_campaign=editaudio)  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/dpr40zuaal66qpbxi4rt.jpg)](https://2ality.com/2022/10/javascript-decorators.html)  

[Metaprogramming with the 2022-03 Decorators API](https://2ality.com/2022/10/javascript-decorators.html) — If you’re a Python developer, you’ll be miles ahead on this idea. If not, _decorators_ provide a way to manipulate classes, fields, methods, and accessors _at define time_ to give them extra, amended, or wrapped functionality or behavior. [The proposal](https://github.com/tc39/proposal-decorators) is at stage 3 at TC39, is supported by Babel, and will soon be supported by TypeScript, so why not get up to speed with Dr. R. 

Dr. Axel Rauschmayer   

[Node.js 19 (Current) Released](https://nodejs.org/en/blog/announcements/v19-release-announce/) — We did a big feature in [yesterday’s _Node Weekly_](https://nodeweekly.com/issues/459), but in short, this is the new, edgiest 'Current' non-LTS Node.js release which gains a Nodemon-esque `--watch` mode, HTTP KeepAlive on by default, stable WebCrypto API, and a bump to V8 10.7. Node 18 goes Active LTS next week. 

The Node.js Project   [![\](https://copm.s3.amazonaws.com/7e8a6c0c.png)](https://postlight.com/podcast?utm_source=cooperpress&utm_medium=email&utm_campaign=editaudio) 

[Your Source for Candid Chats on Product, Business & Leadership](https://postlight.com/podcast?utm_source=cooperpress&utm_medium=email&utm_campaign=editaudio) — If you’re looking for insights on how to get to a successful product launch, why being vulnerable can help make you a better leader, or how to ship software with realistic deadlines, the Postlight Podcast is for you. 

The Postlight Podcast sponsor   

[A Real World React to htmx Migration Story](https://htmx.org/essays/a-real-world-react-to-htmx-port/) — [htmx](https://htmx.org/) is a library that ‘turbo charges’ HTML by letting you use numerous JS and Web API features via custom HTML attributes. Here a Python-based team shows how it worked better for them than a more common React approach. 

David Guillot   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ihjst3lghah6stjgmxq1.jpg)](https://twitter.com/andrewmcwhae/status/1583258220692672512)  

[p5.js 1.5: Creative JS Coding, Now with Animated GIF Exporting](https://p5js.org/) — p5 is hard to define – it’s like [Processing](https://processing.org/) but for JavaScript, and it lets you create creative, visual experiences in the browser. Examples? [Why, of course.](https://p5js.org/examples/) v1.5 is a significant release as you can now easily [save GIFs of your creations](https://p5js.org/reference/#/p5/saveGif) which leads to [fantastic tweets like this.](https://twitter.com/andrewmcwhae/status/1583258220692672512) _Basically if you want to generate cool animated GIFs using JavaScript, this should be your first port of call._ 

Qianqian Ye and Contributors   

**IN BRIEF:** 

- One of [Emotion](https://emotion.sh/docs/introduction)'s contributors kicked off a few lunchtime conversations by explaining [why his team is 'breaking up' with CSS-in-JS.](https://dev.to/srmagura/why-were-breaking-up-wiht-css-in-js-4g9b) As no-one says but me, _what's new is old again._
- Not been keeping an eye on browser devtool developments? Patrick Brosset has a Halloween-themed ['What's New in DevTools' roundup](https://www.smashingmagazine.com/2022/10/devtools-updates-halloween-edition/) 👻
- The React world [is discussing a proposal](https://github.com/reactjs/rfcs/pull/229) to add first class support for promises and `async`/`await` in client and server components.
- Two _Storybook_ (the component dev tool) updates: they're [baking in first-class Vite support](https://storybook.js.org/blog/first-class-vite-support-in-storybook/) to v7, and they [have a newly designed site](https://storybook.js.org/blog/new-website-for-storybook/) (it's [here.](https://storybook.js.org/))
- 🎤 Two developers [▶️ discuss jQuery's relevance](https://www.behindthesource.co.uk/podcasts/s02e03-jquery-with-tomasz-lakomy/) and ask _'is it really so bad?'_   

📅 [Live Event: Visual Workflow Automation, Now with Code](https://retool.com/events/workflows-developer-preview/?utm_source=sponsor&utm_medium=newsletter&utm_campaign=cooperpress) — No more one-off scripts, CRON jobs, or ETL tasks. Reclaim your time and build automation like a developer. 

Retool sponsor   

**RELEASES:** 

- [Prisma 4.5](https://github.com/prisma/prisma/releases/tag/4.5.0) – Modern ORM for Node & TypeScript.
- [Mocha 10.1](https://github.com/mochajs/mocha/releases/tag/v10.1.0) – Test framework for Node & browser.
- [SolidJS 1.6.0](https://github.com/solidjs/solid/releases/tag/v1.6.0) – VDOM-less reactive frontend UI library.
- [Ember.js 4.8.0](https://github.com/emberjs/ember.js/releases/tag/v4.8.0)
- [supabase-js v2](https://supabase.com/blog/supabase-js-v2-released)  

📒 Articles & Tutorials  

[Creating a World-Class Code Playground with Sandpack](https://www.joshwcomeau.com/react/next-level-playground/) — CodeSandbox’s Sandpack is a toolkit for creating ‘live code editor’ components. Josh Comeau shows off how to use it to good effect to boost your blog posts, courses, and the like. 

Josh W Comeau   

[Secure JavaScript URL Validation](https://snyk.io/blog/secure-javascript-url-validation/) — Though conforming to a standard structure, URLs come in all shapes and sizes and you may not want your app to accept URLs that are malformed or otherwise problematic. This post covers some of the considerations involved. 

Mannan Tirmizi (Snyk)   

['What if the Team Hates My Functional Code?'](https://jrsinclair.com/articles/2022/what-if-the-team-hates-my-functional-code/) — I think most folks who’ve been bitten by the functional programming bug have eventually run into problems when convincing other developers it’s the way to go. James provides some soothing perspective. 

James Sinclair   

[Why Does `JSON.parse` 'Corrupt' Large Numbers?](https://jsoneditoronline.org/indepth/parse/why-does-json-parse-corrupt-large-numbers/) — Jump into your JavaScript console of choice and try `JSON.parse('{"count": 9123372036854000123}')` .. you might not get the result you expect, and Jos set out to figure out why and how to resolve it – ‘quite a juicy topic’, he promises. 

Jos de Jong   

[Tutorial: Add SSO & Access Control to Your Node.js App](https://userfront.com/tutorials/nodejs-authentication) 

Userfront sponsor   

▶[Effortless End-to-End Type-Safety with Phero](https://www.youtube.com/watch?v=BS8nRuszlqo) — A ten-minute demonstration of [a library](https://phero.dev/docs/Introduction) providing a type-safe TypeScript-based way to communicate between frontend and backend. [GitHub repo](https://github.com/phero-hq/phero). 

Jasper Haggenburg   

[Modern CSS in Angular: Layouts](https://blog.angular.io/modern-css-in-angular-layouts-4a259dca9127) 
Emma Twersky   

[How to Use Google Sheets as a Database from React with Serverless](https://thenewstack.io/how-to-use-google-sheets-as-a-database-with-react-and-ssr/) 
Paul Scanlon   

[Building a Chat App with Socket.io and React Native](https://dev.to/novu/building-a-chat-app-with-socketio-and-react-native-k1b) 
Nevo David   

[How to Use `storage` in Web Extensions](https://davidwalsh.name/chrome-extension-storage) 
David Walsh  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/vn3phtznsfdepgjb99sq.jpg)](https://github.com/VladimirMikulic/route-list)  

[route-list: CLI Tool to Display Express/Koa/Hapi/Fastify Routes](https://github.com/VladimirMikulic/route-list) — If you’ve got a Node-based webapp and you want to see all of its endpoints in an elegant way, here’s an option. 

Vladimir Mikulic   

[TypeRunner: A High-Performance TypeScript Compiler](https://github.com/marcj/TypeRunner) — The TypeScript project already has its own compiler (`tsc` - written in TypeScript itself) but this is an independent C++ (no, not Rust for once!) attempt at making type checking even faster. If you’re asking “why”: [they have an answer for that](https://github.com/marcj/TypeRunner). 

Marc J. Schmidt   

[Strong CAPTCHA: A Secure and Scalable Way to Fight Fraud](https://stytch.com/blog/strong-captcha-announcement/?utm_source=newsletter&utm_medium=paid_newsletter&utm_campaign=javascript-weekly-sponsored-link&utm_content=strong-captcha) — Learn how to combat CAPTCHA fraud without sacrificing user experience. 

Stytch sponsor   

[Angular Starter: Angular 14 plus Storybook, Transloco, Jest, and More](https://github.com/wlucha/angular-starter?wlucha43531) — Everything but the kitchen sink? 

Wilfried Lucha   

- [Peaks.js 2.1](https://github.com/bbc/peaks.js)
 ↳ BBC component for interacting with audio waveforms.
- [Reveal.js 4.4](https://github.com/hakimel/reveal.js/releases/tag/4.4.0)
 ↳ Write your presentations in HTML. ([Demo.](https://revealjs.com/))
- [styled-jsx 5.1](https://github.com/vercel/styled-jsx)
 ↳ Full, scoped CSS support for JSX.
- [svg-path-morph](https://github.com/Minibrams/svg-path-morph)
 ↳ Interpolate between SVG path variations.
- [lowdb 4.0](https://github.com/typicode/lowdb) – Simple local JSON database.
- [twgl.js 5.1](http://twgljs.org/) – Low-level WebGL helper library.
- [PSD 0.3](https://github.com/webtoon/psd) – Fast Photoshop/PSD file parser.
- [SVGuitar 2.0](https://github.com/omnibrain/svguitar) – Create guitar chord charts.     

💻 Jobs  

[Senior JavaScript/TypeScript Developer (Remote or Warsaw)](https://cksource.com/careers/?utm_source=jsweekly&utm_medium=email&utm_campaign=oct14#senior-javascript-typescript-developer) — CKEditor is migrating to TypeScript, will you migrate your talent to the CKEditor team? 🧳 Join us and realize your true potential. 
CKEditor   

[Doppler - A SecretOps Platform Built by Developers for Developers](https://www.doppler.com/) — Doppler’s looking for Sr. Full-Stack Engineers to help shape the future of security devtools. TypeScript, React, Express, and Go, [apply here](https://jobs.lever.co/doppler/06df9811-541e-483d-9abe-be01b1f8829f). 
Doppler   

[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
