---
title: "How to run third party scripts in a Web Worker"
publication: "JavaScript Weekly"
issue: 557
published_at: "2021-09-24"
canonical_url: "https://javascriptweekly.com/issues/557"
---

Plus a JS engine for use on microcontrollers, a new JavaScript driven watch, and Gatsby 4 is in beta. |        

#​557 — September 24, 2021 

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

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1632498609/lgr76jspi3g85ejaxlhn.png)](https://dev.to/adamdbradley/introducing-partytown-run-third-party-scripts-from-a-web-worker-2cnp)   

[Partytown: Run Third-Party Scripts from a Web Worker](https://dev.to/adamdbradley/introducing-partytown-run-third-party-scripts-from-a-web-worker-2cnp) — A clever (though _experimental_) library to let you relocate third party scripts into a Web Worker, yet the worker can perform synchronous main thread operations on the DOM using [a rather clever mechanism..](https://twitter.com/Rich_Harris/status/1441101927798820869) or, as Rich Harris puts it, _“truly next-level mad scientist”_ stuff. [GitHub repo.](https://github.com/BuilderIO/partytown) 

Adam Bradley   

[You (Possibly) Don't Need Moment.js](https://github.com/you-dont-need/You-Dont-Need-Momentjs) — [Moment.js](https://momentjs.com/) remains a popular date and time manipulation library but this repo shows off (a lot of) alternative approaches, including many native functions that do similar things. 

Various Contributors   [![\](https://copm.s3.amazonaws.com/3181a4ee.png)](https://frontendmasters.com/learn/functional-javascript/?utm_source=javascript&utm_medium=email&utm_campaign=learningpath) 

[Power Up Your JavaScript with Functional Programming](https://frontendmasters.com/learn/functional-javascript/?utm_source=javascript&utm_medium=email&utm_campaign=learningpath) — Learn core functional JS programming techniques by coding with pure functions, learning recursion, higher-order functions, closures, currying, function composition, and more. 

Frontend Masters sponsor   

[A Look at 40+ Non-V8 JavaScript Implementations](https://notes.eatonphil.com/javascript-implementations.html) — With such a large number, you’re not getting a lot of analysis, but it’s neat to see just how many options and experiments there have been. 

Phil Eaton   

[Introducing Gatsby 4: Now in Beta](https://www.gatsbyjs.com/gatsby-4/) — Gatsby 4, the latest version of the popular React and GraphQL-based site generation framework, introduces new content rendering methods, new build and deployments architecture, new CMS APIs, and more. 

Gatsby Team   

**QUICK BITS:** 

- The [V8 9.5](https://v8.dev/blog/v8-release-95) branch has taken flight. What's new? Small things. Enhancements to `Intl.DisplayNames` and `Intl.DateTimeFormat`, and extended exception handling in WebAssembly.
- A quick look at [what's new in the Chrome 95 DevTools.](https://developer.chrome.com/blog/new-in-devtools-95/) Including, handily, historical bulletpoint roundups of older versions too.
- 👾 [Bomberland is a new Bomberman-themed AI dev competition](https://www.gocoder.one/blog/bomberland-multi-agent-artificial-intelligence-competition) and while it's language agnostic, there's a TypeScript based '[starter kit](https://github.com/CoderOneHQ/bomberland/tree/master/typescript)' if you want to dabble.
- The latest version of Rollup, the module bundler, [can output 'modern' ES code](https://twitter.com/lukastaegert/status/1440543481059938305) for more efficiency.   

**RELEASES:** 

[Stimulus 3.0](https://world.hey.com/hotwired/stimulus-3-c438d432) – HTML decoration oriented JS framework.
 [Meteor 2.4](https://blog.meteor.com/announcing-meteor-2-4-and-the-new-installer-254c5f8f39f) – Full-stack JS framework.
 [NeutralinoJS 2.8](https://github.com/neutralinojs/neutralinojs) – X-platform desktop app framework. Now supports Raspberry Pi with a new 32 bit ARM port.
 [vuex-persistedstate 4.1](https://github.com/robinvdvleuten/vuex-persistedstate) – Persist state in Vue between page reloads.
 [Passport 0.5.0](https://github.com/jaredhanson/passport) – Auth system for Node.js apps.
 [D3 v7.0.3](https://github.com/d3/d3) – Popular data visualization framework.
 [Node.js 16.10.0](https://nodejs.org/en/blog/release/v16.10.0/)    

💻 Jobs  

[k6 Developer Advocate (Remote)](https://jobs.lever.co/grafana/c1d02e30-0dca-438c-b4bb-72444f95d28a) — We’re looking for someone to engage the OSS community on performance & reliability, and to develop and maintain k6 extensions. 
K6 - A Grafana Labs Company   

[JavaScript Developer at X-Team (Remote)](https://x-team.com/remote-javascript-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=cooperpress-js&utm_content=js) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more. 
X-Team   

[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    

📖 Tutorials, Opinions & Stories  

[What's New in React 18?](https://yagmurcetintas.com/journal/whats-new-in-react-18) — A general roundup of what’s turning up in the next (not yet released) major version of React. 

Yagmur Cetin Tas   

▶[A Live Look at _Serverless Cloud_](https://www.youtube.com/watch?v=1TKedWps7nU) — Jeremy Daly of Serverless Inc (and GM of Serverless Cloud, specifically) demonstrates the new platform live in person in a 50 minute session. A particularly useful and practical talk especially for JavaScript developers keen to give serverless a try. 

FooBar Serverless   

[[Guide\] Ship Fast. Stay Ahead of the Competition](https://learn.launchdarkly.com/digital-transformation/?utm_source=cooperpress&utm_medium=display&utm_campaign=21q3-cooperpress&utm_content=ebook_adt) — Intuit & Atlassian don't let process stand in their way. Learn their strategies to ship faster, safer & stay ahead. 

LaunchDarkly sponsor   

▶[From React to SvelteKit](https://syntax.fm/show/390/from-react-to-sveltekit) — The two hosts of the popular Syntax webdev podcast talk about moving a site from using React to [SvelteKit](https://kit.svelte.dev/) and why it made sense. _55-minutes._ 

Syntax Podcast podcast   

[Rendering a Fourier Series Vizualisation with D3.js](https://bl.ocks.org/jinroh/7524988) — A lovely little example complete with source code. 

Pierre Guilleminor   

[The Story of Five RCEs Found in `npm` for $15,000](https://robertchen.cc/blog/2021/09/20/npm-rce) — A security researcher explains some remote code execution vulnerabilities he found in the `npm` tool and how they added up to $15K in payouts. 

Robert Chen   

[Build a Mobile-Responsive Telehealth Pager App Using Stream’s Chat API](https://getstream.io/blog/build-a-medical-pager-app/?utm_source=javascript_weekly&utm_medium=promoted_newsletter&utm_content=developer&utm_campaign=09_23_2021&utm_term=javascript_mastery) 

Stream sponsor   

[Index Signatures in TypeScript](https://dmitripavlutin.com/typescript-index-signatures/) — Index signatures in TypeScript let you annotate objects of unknown structure. 

Dmitri Pavlutin  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/af2xsenikmshu3uh5njd.jpg%0A)](https://github.com/cesanta/elk)   

[Elk: A Low Footprint JavaScript Engine for Embedded Systems](https://github.com/cesanta/elk) — A tiny embeddable engine that implements a subset of ES6 for use on microcontrollers (right down to 8-bit). Certainly makes a change from using C. Dual GPL or commercial licensed. 

Cesanta Software   

[Theatre.js: A JavaScript Motion Design for the Web](https://www.theatrejs.com/) — Can be used both programmatically and visually to animate 3D objects created with things like Three.js, HTML/SVG, and even just small page elements or JS variable values. [Docs](https://docs.theatrejs.com/) and [GitHub repo](https://github.com/AriaMinaei/theatre). 

Theatre.js   

[Hotkey 1.5: 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. GitHub built and uses it (look for the `data-hotkey` attributes on their pages). In the new 1.5 release you can define _scoped_ hotkeys. 

GitHub   

[Tried. Tested. Trusted. Studio 3T - Power Tools for MongoDB](https://studio3t.com/download?utm_source=newsletter&utm_medium=jsweekly&utm_campaign=sept24) — Intuitive IntelliShell. Generate JavaScript from queries. Reshape data with Reschema. Try Studio 3T free for 30 days. 

Studio 3T sponsor   

[Electron 15.0.0 Released](https://www.electronjs.org/blog/electron-15-0/) — Following on rather quickly from v14, Electron is now on a new eight week release cadence. v15 of the popular cross-platform desktop app framework upgrade to Chromium 94, V8 9.4, and Node.js 16.5.0 – none of which are huge advancements (though [WebCodecs support](https://web.dev/webcodecs/) may interest some), but it’s always great to see how up to date Electron is kept. 

Sofia Nguy and Keeley Hammond   

[Code2flow: Generate Call Graphs for Dynamic Languages](https://github.com/scottrogowski/code2flow/) — Including JavaScript, Python, Ruby and PHP. Turns your source into ASTs, finds function definitions, where those functions are called, and turns that into diagrams. 

Scott Rogowski   

[React Countup 6.0: Configurable React Component Wrapper around CountUp.js](https://github.com/glennreyes/react-countup) — For situations where you want a numeric value to count up from one value to another. Want the same thing _without_ React? [CountUp.js](https://inorganik.github.io/countUp.js/) is for you. 

Glenn Reyes   

[nbb: Adhoc ClojureScript Scripting on Node.js](https://github.com/borkdude/nbb) — If you want to write ClojureScript and run it quickly on top of Node, this provides a way. 

Michiel Borkent    

“The purpose of software engineering is to control complexity, not to create it.” 

___
Pamela Zave          

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
