---
title: "David's handy JS debugging tip"
publication: "JavaScript Weekly"
issue: 604
published_at: "2022-09-02"
canonical_url: "https://javascriptweekly.com/issues/604"
---

Plus detecting aircraft from JavaScript, a tool to visualize JSON as a graph, default export controversy, and jQuery is still alive. |        

#​604 — September 2, 2022 

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

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/ruoovie8blxf1zopxw6z.jpg)](https://charliegerard.dev/blog/aircraft-radar-system-rtl-sdr-web-usb/)  

[Building an Aircraft Radar System in JavaScript](https://charliegerard.dev/blog/aircraft-radar-system-rtl-sdr-web-usb/) — With a title like this, I couldn’t resist checking it out. Charlie digs into some interesting stuff including using WebUSB to interact with a radio to decode [ADS-B positioning signals](https://en.wikipedia.org/wiki/Automatic_Dependent_Surveillance%E2%80%93Broadcast) that aircraft transmit. (Before anyone comments, OK, it’s not really a _radar_ but you could plot one!) 

Charlie Gerard   

[12 Useful JavaScript Data Grid Libraries](https://www.smashingmagazine.com/2022/09/useful-javascript-data-grid-libraries/) — A rundown of some data grid libraries for providing spreadsheet-esque views over datasets – Zara also shares her recommendations on things to consider when making a choice. 

Zara Cooper   [![\](https://copm.s3.amazonaws.com/1b69805d.png)](https://stytch.com/?utm_source=newsletter&utm_medium=paid_newsletter&utm_campaign=javascript-weekly-primary&utm_content=august-1) 

[Stytch Is Your All-In-One Platform for User Authentication](https://stytch.com/?utm_source=newsletter&utm_medium=paid_newsletter&utm_campaign=javascript-weekly-primary&utm_content=august-1) — With our API and SDKs, you can quickly set up secure, low-friction authentication and authorization for better security, better conversion rates, and a better end user-experience. [Try us out today](https://stytch.com/?utm_source=newsletter&utm_medium=paid_newsletter&utm_campaign=javascript-weekly-primary&utm_content=august-1). 

Stytch sponsor   

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

[JSON Crack: Visualize JSON Data in Graph Form](https://jsoncrack.com/) — Despite the.. quirky name (it was previously called _JSON Visio_ 😬) this is a handy tool for working with and displaying JSON structures. You can [play with it online](https://jsoncrack.com/editor), embed graphs into your site, or download them for further use. 

Aykut Saraç   

**IN BRIEF:** 

- **DEBUGGING TIP:** David Walsh shows off Chrome's [rather useful `monitorEvents` and `monitor` helper functions](https://davidwalsh.name/monitorevents) for being notified when certain events occur or if a certain function is ever called. I didn't know about these.. and even Ben Nadel in the comments said: _"Oh my chickens, this is amazing"_ 😆
- Another month, [another VS Code release.](https://code.visualstudio.com/updates/v1_71) Context-maintaining 'sticky scroll' is no longer an experimental feature. Ships with TypeScript 4.8. Oh, and rounded buttons 😏
- 18 months after jQuery 3.6.0 was released, [jQuery 3.6.1 is here](https://blog.jquery.com/2022/08/26/jquery-3-6-1-maintenance-release/) as a maintenance release. The fixes and improvements are minor indeed, but I can't help but feel comforted by its continued existence 🥰   

**RELEASES:** 

[NodeBB 2.5](https://github.com/NodeBB/NodeBB) – Node.js based forum software.
 [Faker 7.5](https://github.com/faker-js/faker) – Generate dummy data on demand.
 [ReacType 13](https://medium.com/@darin.ngau/reactype13-b4e23fc38d76) – React app prototyping environment.
 [Lerna 5.5](https://github.com/lerna/lerna) – Monorepo oriented build system for JS packages.
 [ESLint 8.23](https://github.com/eslint/eslint)  

📒 Articles & Tutorials  

[Are Default Exports in JavaScript Modules Terrible?](https://www.lloydatkinson.net/posts/2022/default-exports-in-javascript-modules-are-terrible/) — Lloyd thinks so and points out that default exports can lead to mismatched and confusing names, so prefers named exports instead. As always, though, it comes down to how you use the feature. 

Lloyd Atkinson   

[Implementing a Promisable `setTimeout`](https://yieldcode.blog/post/implementing-promisable-set-timeout) — One of those explorations that’s more about learning about how things work under the hood, rather than to do anything useful. (If you’re a Node user, the [Timers Promises API](https://nodejs.org/api/timers.html#timers-promises-api) covers similar ground.) 

Dmitry Kudryavtsev   

[Webinar - AuthN & AuthZ: Security, Compliance, and Other Challenges](https://hello.permit.io/webinar/solving-authn-authz-security) — Join Permit.io and FusionAuth and learn to build Auth that meets your security, compliance, and privacy requirements. 

Permit.io sponsor   

[Understanding React's `useMemo` and `useCallback`](https://www.joshwcomeau.com/react/usememo-and-usecallback/) — Many find these hooks confusing. This tutorial goes over what they do exactly and how to get the most out of them – all in Josh’s usual highly accessible and engaging style. 

Josh W. Comeau   

[An Introduction to Dependency Injection](https://blog.codeminer42.com/dependency-injection-in-js-ts-part-1/) — _“Dependency injection is, in its essence, about parametrizing things previously hardcoded in functions/classes, so we can control these functions/classes to a greater extent.”_ 

Henrique Yuji   

[In-Browser Compression and Decompression with the Compression Streams API](https://developer.chrome.com/blog/compression-streams-api/) — How to write smaller web apps that don’t need to ship their own compression or decompression library - this works in Chrome and Safari Technology Preview 152. 

Thomas Steiner   

[Integrate eSignatures in Your App in Less Than a Week](https://www.hellosign.com/products/api?utm_campaign=cooperpress_direct_9222&utm_medium=cpm&utm_source=programmatic&utm_content=newsletter) — Enable document signing from anywhere with HelloSign's eSignature functionality. Test the API for free. 

HelloSign, a Dropbox Company sponsor   

[Making a Morphing 3D Sphere with Three.js](https://fjolt.com/article/javascript-three-js-morphing-sphere) — A striking, modern effect for the Web. CodePen demo included. 

Johnny Simpson   

[Bringing Angular Components to Astro Islands 🏝](https://dev.to/brandontroberts/bringing-angular-components-to-astro-islands-52jp) — [Astro](https://astro.build/) has out-of-the-box support for multiple frameworks, but Angular isn’t one of them. Brandon used a project he created called Analog to enable Angular components within an Astro site. 

Brandon Roberts   

[Why React Contexts Are Great (and Why We _Didn't_ Use Them)](https://spin.atomicobject.com/2022/08/24/react-contexts/) 
Allen Janyska  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/zpdawxjw79qr580b89cp.jpg)](https://lusift.vercel.app/)  

[Lusift: Library to Create Product Walkthroughs for Your Web App](https://lusift.vercel.app/) — Happy to go vanilla, but has React and Vue integrations too. [GitHub repo](https://github.com/lusift/lusift). Other options in this space are [Shepherd](https://shepherdjs.dev/) and [React Joyride](https://react-joyride.com/). 

Lusift   

[Derive Type: Generate Type Definitions for JS Automatically From Tests](https://github.com/David-Kunz/derive-type) — Derive types dynamically by running tests to capture value combinations – the idea is to help you manage things while developing functions, particularly if you’re _not_ able to use TypeScript ([more from the author on this](https://www.reddit.com/r/javascript/comments/wzx52i/derivetype_automatically_generate_typescript/im56pcj/)). There’s [▶️ a screencast](https://www.youtube.com/watch?v=gdz_X0b5SnM) that explains more. 

Dr. David A. Kunz   

[Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut](https://shortcut.com/?utm_source=cooperJSWeekly&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=fourletter) 

Shortcut (formerly Clubhouse.io) sponsor   

[Hyper Fetch: A Turbocharged Fetch Library](https://hyperfetch.bettertyped.com/) — The creator bills it as _“a mix of Axios and react-query in one, with advanced persistence options.”_ It’s backend agnostic and offers queues, caching, persistence, and even offline support out of the box. [GitHub repo](https://github.com/BetterTyped/hyper-fetch). 

Maciej Pyrc et al.   

[Partytown 0.7: Run Third Party Scripts in a Web Worker](https://partytown.builder.io/) — The idea is simple: run resource intensive scripts on a separate thread (in a web worker) to let the main thread remain responsive. v0.7 adds an option to [execute _certain_ scripts on the main thread](https://github.com/BuilderIO/partytown/pull/235) which can be useful in some situations (an example is provided). [GitHub repo](https://github.com/BuilderIO/partytown). 

Partytown   

[Sandpack: Component Toolkit for Creating Your Own Live Running Code Editing Experience](https://sandpack.codesandbox.io/) — Created by the folks at CodeSandbox, so they know what they’re talking about. [GitHub repo](https://github.com/codesandbox/sandpack). 

CodeSandbox   

[TestCafe v2.0.0: Automated End-to-End Testing Tool](https://testcafe.io/404018/release-notes/framework/2022-8-31-testcafe-v2-0-0-released) — A popular and long standing testing tool reaches a new milestone and, notably, is the first update to include breaking changes.. so if you’re a user, pay close attention. 

Developer Express Inc.   

**OTHER QUICK RELEASES:** 

[Jest-Image-Snapshot 5.2](https://github.com/americanexpress/jest-image-snapshot) – Jest matcher for image comparisons.
 [melonJS 13.3](https://github.com/melonjs/melonJS) – Browser-based 2D game engine.
 [peaks.js 2.0.5](https://github.com/bbc/peaks.js) – BBC-created audio waveform UI component.
 [github-script 6.2](https://github.com/actions/github-script) – Use JS in GitHub workflows.
 [Create Rust App 8.2](https://github.com/Wulf/create-rust-app) – Set up a Rust + React app in one command.
 [Ember Inspector 4.7](https://github.com/emberjs/ember-inspector) – An Ember tab for your DevTools.     

💻 Jobs  

[Senior JavaScript/TypeScript Developer (Remote or Warsaw) 🇵🇱](https://cksource.com/careers/?utm_source=jsweekly&utm_medium=email&utm_campaign=sep2#senior-javascript-typescript-developer) — Join CKEditor team to develop an Open Source project used by millions of users around the world 🚀and realize your true potential. 
CKEditor   

[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
