---
title: "Ways to remove event listeners"
publication: "JavaScript Weekly"
issue: 624
published_at: "2023-02-03"
canonical_url: "https://javascriptweekly.com/issues/624"
---

Plus Gatsby goes to Netlify, screenshot tools for your feedback forms, and making Node and SWC work faster together. |        

#​624 — February 3, 2023 

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

Together with [![Bryntum\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_560,h_100/e_make_transparent/co_white,e_outline:7/hs9vs3jkbbbrfz0twgvk.png)](https://bryntum.com/products/gantt/)  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lxrxytcdhrnvp2tlpu3n.jpg)](https://www.macarthur.me/posts/options-for-removing-event-listeners)  

[You’ve Got Options for Removing Event Listeners](https://www.macarthur.me/posts/options-for-removing-event-listeners) — Unnecessary event listeners can cause all sorts of odd problems so it’s good to clean them up when you don’t need them anymore. How? There are several approaches and Alex looks at their pros and cons. (`once` is a good one to consider if your use case supports it as it’s ‘set and forget.’) 

Alex MacArthur   

[Updates from the 94th TC39 meeting](https://dev.to/hemanth/updates-from-the-94th-tc39-meeting-48mb) — The TC39 committee that works on the ECMAScript standard met last week and progressed a few language proposals with [Change Array by Copy](https://github.com/tc39/proposal-change-array-by-copy), [Intl.NumberFormat v3](https://github.com/tc39/proposal-intl-numberformat-v3) and [Symbols as WeakMap Keys](https://github.com/tc39/proposal-symbols-as-weakmap-keys) making it to stage 4. There’s also an interesting example of [a _downgrade_ to stage 2 for import assertions](https://docs.google.com/presentation/d/1HbWhyo4tSnpv4vMZqCa2YQvi_mKdpDi4JWWBtSUQqQY/edit#slide=id.p). 

Hemanth HM   [![\](https://copm.s3.amazonaws.com/3f8aac09.png)](https://bryntum.com/products/gantt/) 

[Fast and Flexible Gantt Chart Components for Your Web App](https://bryntum.com/products/gantt/) — Bryntum's suite of web components includes powerful Gantt and resource scheduling widgets used by thousands of businesses. The API is very flexible and allows you to configure everything from colors to details of the scheduling logic. Free 45-day trial. 

Bryntum sponsor   

[Netlify Acquires Gatsby](https://www.gatsbyjs.com/blog/gatsby-is-joining-netlify/) — The company behind the [Gatsby](https://www.gatsbyjs.com/) React-based framework is joining Netlify with many _Gatsby Cloud_ features expected to be integrated into Netlify’s own platform. This places Netlify more directly against Vercel who are behind Next.js (and don't forget Shopify with [Remix](https://remix.run/)too). 

Kyle Mathews (Gatsby)   

[You May Not Need Lodash or Underscore](https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#readme) — Inspired by the popular [You Might Not Need jQuery](https://youmightnotneedjquery.com/), this extensive document provides plain JavaScript alternatives to almost 100 different functions you’d find in popular utility libraries like [Lodash](https://lodash.com/) and [Underscore](https://underscorejs.org/). 

You Don't Need   

[The Future of _Create React App_ and Why It Exists](https://github.com/reactjs/reactjs.org/pull/5487#issuecomment-1409720741) — An extensive write up from Dan Abramov on the state of _Create React App_, a route to take it forwards, and how he sees React as a library working within an ecosystem of frameworks. 

Dan Abramov   

**RELEASES:** 

- [Node.js v19.6.0 (Current)](https://nodejs.org/en/blog/release/v19.6.0/)
- [Node.js v18.14.0 (LTS)](https://nodejs.org/en/blog/release/v18.14.0/)
- [Electron 22](https://github.com/electron/electron/releases/tag/v22.2.0)
- [TestCafe 2.3](https://github.com/DevExpress/testcafe/releases/tag/v2.3.0)
 ↳ End-to-end Web testing.
- [Docusaurus 2.3](https://github.com/facebook/docusaurus)
 ↳ Popular documentation site generator.
- [Jotai 2.0](https://github.com/pmndrs/jotai/releases/tag/v2.0.0)  

📒 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ljufl373veivltpey6wq.jpg)](https://robertwpearce.com/how-to-lose-functional-programming-at-work.html)  

[How To Lose Functional Programming at Work](https://robertwpearce.com/how-to-lose-functional-programming-at-work.html) — An amusing piece you might recognize parts of. It's certainly possible to have too much of a good thing. _“If you’re looking to lose functional programming at work, here are a bunch of mistakes I’ve made on JS-heavy web teams over the years that can help you do the same.”_ 

Robert Pearce   

[How Node & SWC Can Make a Lightning Fast TypeScript Runtime](https://featurist.co.uk/blog/running-typescript-in-node-with-near-zero-compilation-cost/) — If the added compilation time for TypeScript has irritated you so far, Artem has found a way to get things as fast as possible. 

Artem Avetisyan   

▶[Tailwind CSS, Headless UI, and Powerlifting with Adam Wathan](https://www.whiskeywebandwhatnot.fm/tailwind-css-headless-ui-and-powerlifting-with-adam-wathan/) — We talk to Adam about what motivated him to create Tailwind and why it is creating polarizing discourse among developers. 

Whiskey Web and Whatnot sponsorpodcast   

[The Road from Ember Classic to Glimmer Components](https://dev.to/otainsight/the-road-from-ember-classic-to-glimmer-components-4hlc) — If you’ve got a mature Ember.js project you want to modernize, this is for you. 

Ignace Maes   

[Using JavaScript in a Swift App](https://douglashill.co/javascript-in-swift/) — One for iOS app developers. It’s not perfect but at least it’s an option. 

Douglas Hill   

[Cleaner Unit Tests with Custom Matchers](https://americanexpress.io/cleaner-unit-tests-with-custom-matchers/) — Using custom matchers to avoid repetitive and ambiguous assertions in Jest. 

Jamie King (American Express)   

[The Yaml Document from Hell: JS Edition](https://philna.sh/blog/2023/02/02/yaml-document-from-hell-javascript-edition/) — The titular problematic document was spawned [in this blog post](https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell) focusing on Python, but Phil looks to see if JS YAML parsers have the same problems with the much maligned format. 

Phil Nash   

[Too Much Tech Debt and Outdated Packages? Don't Have Time to Upgrade?](https://www.upgradejs.com/?utm_source=cooperpress&utm_medium=js-weekly&utm_campaign=44960&utm_term=service-agency&utm_content=tech-debt) 

UpgradeJS by OmbuLabs sponsor   

[On Using Playwright in GitHub Actions](https://radekmie.dev/blog/on-playwright-in-github-actions/) 
Radosław Miernik   

[How I Made My App 2.4x Faster Switching to Svelte](https://blog.flotes.app/posts/flotes-2x-faster) 
Flotes Tech Blog  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/eg2verbjghtop73vkip5.jpg)](https://github.com/ColonelParrot/feedbackplus)  

[FeedbackPlus: Add Screenshot Tools to Your Feedback Forms](https://github.com/ColonelParrot/feedbackplus) — Say you’ve got a form on your app to let users submit bugs or feedback and you’d like to encourage them to send a screenshot too – this makes it easier to do. [Live demo](https://colonelparrot.github.io/feedbackplus/demos/demo.html). 

ColonelParrot   

▶[ScrollyVideo.js: Responsive 'Scrollable' Videos](https://scrollyvideo.js.org/) — It’s an interesting effect and well demonstrated here. Compatible with React, Svelte, Vue, or just plain ole’ HTML. 

Daniel Kao   

[Stop Sweating Over Supply Chain Security with Snyk](https://snyk.io/blog/npm-security-preventing-supply-chain-attacks/?utm_campaign=AOM-2023&utm_medium=Paid-Email&utm_source=cooperpress-javascript-weekly&utm_content=npm-security-preventing-supply-chain-attacks) — Get the security practices and tooling to bolster your build pipeline from Snyk’s article on npm security and preventing supply chain attacks. 

Snyk sponsor   

[depngn: Find Out if Dependencies Support a Given Node Version](https://github.com/upgradejs/depngn) — A CLI tool that establishes whether dependencies in your `package.json` will work against a specified Node version. May be helpful during upgrades. 

OmbuLabs   

[Eta 2.0: Embedded JS Template Engine for Node, Deno, and Browser](https://eta.js.org/) — Boasts being lighter and faster than EJS but with many of the same features (it looks a lot like Ruby’s ERB). [GitHub repo](https://github.com/eta-dev/eta). 

Ben Gubler   

[Swiper 9.0: Mobile Touch Slider with Accelerated Transitions](https://swiperjs.com/) — Tree shakable, library agnostic, and focused entirely on modern browsers and web APIs. RTL support too. [GitHub repo.](https://github.com/nolimits4web/swiper) 

Vladimir Kharlampidi   

[UUID.js: RFC-Compliant UUID Generator](https://github.com/LiosK/UUID.js) — Supports v1 and v4 UUIDs. 

LiosK   

- [ReScript 10.1](https://rescript-lang.org/blog/release-10-1)
 ↳ OCaml-inspired compile-to-JS language.
- [OrgChart 3.4](https://github.com/dabeng/OrgChart)
 ↳ Render org charts. ([Lots of demos.](https://dabeng.github.io/OrgChart/))
- [clipboard-polyfill 4.0](https://github.com/lgarron/clipboard-polyfill)
 ↳ 'Copy to clipboard' for older browsers and edge cases.
- [morphdom 2.7](https://github.com/patrick-steele-idem/morphdom)
 ↳ DOM diffing/patching – no VDOM needed.
- [relative-time-element 4.2](https://github.com/github/relative-time-element)
 ↳ GitHub's extensions for`<time>`
- [js-bson 5.0](https://github.com/mongodb/js-bson)
 ↳ Binary JSON parser and serialization.
- [React Date Picker 4.10](https://github.com/Hacker0x01/react-datepicker)
 ↳ Simple date picker React component.
- [JustValidate 4.1](https://github.com/horprogs/Just-validate)
 ↳ Lightweight form validation library.    

💻 Jobs  

[Platform Engineer - Dev Ops](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=easy-job-hunting) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired     

🎁 Last But Not Least 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lk6qmejyhgwepjtdjqqr.jpg)](https://github.com/pahen/madge)  

[Madge 6.0: Create Graphs From Your Module Dependencies](https://github.com/pahen/madge) — A developer tool for generating a visual graph of your module dependencies (works with CommonJS, AMD and ES modules), finding circular dependencies, and discovering other useful info. 

Patrik Henningsson         

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
