🇺🇦 #​580 — March 11, 2022

Unsubscribe  |  Read on the Web

🤦 Thanks to all readers who noticed we made a mistake with last week's subject line "TypeScript 2.6 released" – rather than the intended 4.6. We were only 4 years late with that news ;-) Rest assured, more caffeine has been consumed today..

JavaScript Weekly

Credit: Daniel Rosenwasser

An ECMAScript Proposal for Type Annotations in JavaScript (That Are Ignored at Runtime) — A huge amount of chatter this week over an interesting proposal to support type annotations directly in standard JavaScript code that are available for external type checkers to use but which are otherwise ignored at runtime. TypeScript’s Daniel Rosenwasser has written a lot more about the approach here. Dr. Axel has also written up his thoughts. Whatever the case, people seem pretty excited for the potential and Allen Wirfs-Brock has said "if I was still active on TC39 I’d be advocating for this proposal."

Tayar, Rosenwasser, Cintra, Palmer, et al.

Wallaby.js: 15x Faster JavaScript/Jest Testing and Debugging — Wallaby runs your tests immediately as you type, with runtime values, errors and code coverage displayed in real-time right next to your code. Features have been designed specifically for testing, including: time-travel debugging, edit-and-continue support, and much more.

Wallaby.js sponsor

React 18 Release Candidate Released — The full production release of React 18 is seemingly imminent: just out, the detailed documentation covering the upgrade to this week’s release candidate. The post also includes useful information about some of the major new features.

Rick Hanlon and React Core Team

🐦  Twitter Thread on Stripe Converting from Flow to TypeScript — And it took just one weekend: “We modified about 3.5 million lines of code, and then hundreds of developers came in Monday morning ready to write TS.”

Andrew Lunny on Twitter

WebGPU — All of the Cores, None of the Canvas — It’s always a pleasure to see Surma dig into something (especially Web Workers) and this time he turns to making the potential of WebGPU (an API that exposes the capabilities of GPU hardware that, admittedly, isn't available by default in any standard browser yet) more accessible to us all.

Surma

IN BRIEF:

RELEASES:

Partytown 0.5.0 – Moves scripts into Web Workers for perf.
AVA 4.1.0 – Node.js test runner.
Rollup.js 2.70.0 – ES module bundler.
Node 17.7.0 and 17.7.1
React Native DateTimePicker 6.0

💻 Jobs

JavaScript Developer at X-Team (Remote) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more.
X-Team

Senior React Engineer @ Nebulab (Remote) — Join our distributed team and build high-volume eCommerce applications in a workplace made by developers for developers.
Nebulab

Find JavaScript Jobs with Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
Hired

📒 Articles & Tutorials

Naming Conflicts – or How Existing Code Can Force Proposed Features to Be Renamed — Phil Karlton once said “cache invalidation and naming things” were the two hardest things in computer science, and JavaScript has had its fair share of trouble around the latter.

Dr. Axel Rauschmayer

A Lightweight GitHub REST API in 34 Lines of Code — The power of ES proxies strikes again. Not a tutorial, but you might learn something from the code.

David Wells

Project Management for Today's (And Tomorrow's) Software Team — We bring the flow to your software team's workflow. Plan, collaborate, build, and measure success with Shortcut.

Shortcut (formerly Clubhouse.io) sponsor

Building Serverless Multi-Region WebSocket APIs on AWS — A look at an interesting (and very AWS-y!) architecture for a global real-time chat app by using WebSockets and cross-region communications behind the scenes.

Freiberg and Ziller (AWS)

My Experience Building a Chess App in React — The author describes himself as a self-taught, relative newcomer to React development. As a result, he describes his approach to this well-defined problem in terms that those at a similar point in the learning curve will find easy to understand.

Fred Litt

Creating Native Web Components — Looks at how to create native web components using the Minze JavaScript framework.

Sergej Samsonenko

The Tools that Developers Need–and Don't Need–to Build Great Chatbots

Botpress Technologies, Inc. sponsor

How to Build a File Upload Service with Vanilla JavaScript
Pankaj Tanwar

A Complete Guide to TypeScript’s never Type
Zhenghao He

Making a Discord Playlist Bot with Serverless Cloud
Ben Miner

🛠 Code & Tools

LemonadeJS V2: A Reactive JavaScript Library with Zero Transpiling Needed — Simple, straightforward reactivity anywhere with as little tooling surrounding it as possible.

LemonadeJS Team

striff: Real Simple String Diffing — Given two strings, you can find out which characters were added or removed, and where.

Alex MacArthur

PSD: A Zero-Dependency PSD (Photoshop) Parser — Will parse info for each layer including text and also supports Photoshop’s .PSB (big image) format. GitHub repo.

webtoon

Studio 3T Manages Your Data, While You Wrestle Your App into Shape — Studio 3T's full suite of MongoDB tools lets you develop with data even faster and turn queries into code.

Studio 3T sponsor

Tygo: Generate TypeScript Types from Go(lang) Source Code — Let’s say you’re building an app with Go on the backend and TypeScript on the frontend. This tool scans your Go-based API and creates the relevant TypeScript types for you.

Guido Zuidhof

Reason: Write Fast, Type Safe Code in OCaml, But for the JS Ecosystem — You essentially get to write OCaml but compile to JavaScript.

Facebook

Ultra: A Modern Streaming React Framework for Deno — Built around native browser features like ES modules, import maps, and web streams. The source of the project’s own Ultra-powered homepage may help you weigh up if you like its cutting edge approach or not.

Omar Mashaal et al.

🎮 And for some fun..

micropolisJS: A JavaScript Clone of a SimCity-Like Game — I didn’t get on to the SimCity train until SimCity 2000, but if you liked the vibe of the earlier 1989 version of SimCity, this might be a reasonable way to fritter away some time.

Graeme McCutcheon