#675 — February 15, 2024
JavaScript Weekly
Tempo: An Easier Way to Work with Dates — We think they nailed their own summary: “A collection of utilities for working with the native Date object — an important distinction from other libraries that provide custom date primitives. Under the hood, Tempo mines Intl.DateTimeFormat to extract complex data like timezones offsets and locale aware date formats, giving you a simple API to format, parse, and manipulate dates.” Fantastic docs, too.
FormKit
LLRT (Low Latency Runtime): Amazon’s New JS Runtime — Amazon has open sourced a runtime entirely focused on fast startups – something that’s useful for ephemeral use cases like serverless (*cough* AWS Lambda). It uses Fabrice Bellard’s QuickJS as the underlying engine, so has almost full ES2023 spec support out of the box.
Amazon Web Services Labs
Effortless GraphQL with Hasura and TypeScript Functions — Hasura connects to your data sources, generates a GraphQL API, and deploys it globally — instantly. But, what if you could also write and use TypesScript functions directly in your GraphQL API? With Hasura, you can. Check it out on GitHub.
Hasura sponsor
The Node.js Valentine’s Day Security Releases — Security releases had been expected to land in the past week for Node and they’re now here as v21.6.2 (Current), v20.11.1 (LTS), and v18.19.1 (LTS). They include fixes for a variety of vulnerabilities, including some high severity ones involving HTTP-based DoS attacks and privilege escalation.
Rafael Gonzaga and Marco Ippolito
IN BRIEF:
You know how features and proposals for the ECMAScript language pass through a multi-stage process with the TC39 committee? There’s a new stage: stage 2.7! The new stage is what 3 used to be with 3 now having extra testing requirements.
Talking of TC39, here’s the latest state of different proposals covered at the recent 100th TC39 meeting.
There have been some updates on the state of Express and suggested plans for Express 5.0, 6.0 and 7.0.
Google has unveiled the newest version of its Gemini AI model. Of particular note is its support for 1 million tokens of context, as shown in ▶️ this example working upon the entirety of three.js’s source code (~820k tokens).
A new JavaScript registry is on the way called jsr. Waitlist only, for now.
Breakpoints and console.log Is the Past, Time Travel Is the Future — 15x faster JavaScript debugging than with breakpoints and console.log, supports Vitest, jest, karma, jasmine, and more.
Wallaby Team sponsor
RELEASES:
Vue.js DevTools 6.6 – Now with a new UI.
Hono 4.0 – The lightweight, runs-anywhere Web framework takes a big step forward.
JointJS 4.0 – The powerful interactive diagramming/flowchart library now has no external dependencies.
Astro 4.4, Angular 17.2, Billboard.js 3.11
📒 Articles & Tutorials
Union, Intersection, Difference, and More Coming to JavaScript Sets — Set was introduced back in ECMAScript 2015 (a.k.a. ES6) but only had some basic methods built-in. Phil looks at what sets can do and what new features are on the way.
Phil Nash
Immutable Array Updates with Array.prototype.with — How to use this new, widely supported method to update an array without mutating the original array.
Jad Joubran
Intro to Error and Performance Monitoring with Sentry — Track, trace, debug and resolve JavaScript errors across platforms. Are your releases that easy? Join us live.
Sentry sponsor
▶ So You Think You Know Git.. — GitHub co-founder Scott Chacon gave a spirited talk at FOSDEM 2024 digging into many interesting parts of git, as well as a few GitHub bits. If you’d prefer to read rather than watch, he has some blog posts covering it all too.
Scott Chacon
An Example of Creating a React App with Google Sheets as a Backend — Not as unorthodox an approach as you might think.
Musthaq Ahamad
Safely Accessing the DOM with Angular SSR — Learn how to safely use the DOM together with SSR in Angular.
Gerald Monaco (Google)
🛠 Code & Tools
Peggy 4.0: A Parser Generator for JavaScript — Produces fast parsers with good error reporting. Use it to process complex data or computer languages and build transformers, interpreters, compilers, and similar tools. The online demo is pretty effective. The official successor to PEG.js.
Majda, Hildebrand, and Contributors
vue-metamorph 1.0: A Codemod Framework for Vue.js Projects — A developer needed to make a large number of small changes to a variety of Vue components and built this tool to help. GitHub repo.
UnrefinedBrain
canvas-size 2.0: Determine Max Area, Height, Width, and Custom Dimensions of HTML Canvases — The Canvas element is broadly supported across browsers but there are differences in its size limitations, which this library can determine for you. GitHub repo.
John Hildenbiddle
Securing Your APIs: Verifying API Keys And Using Scopes — You have APIs. You need to make sure you know who is calling them and what they can do. What are your options?
FusionAuth sponsor
txiki.js: A Small Yet Powerful JavaScript Runtime — Standing on the shoulders of QuickJS and libuv.
Saúl Ibarra Corretgé
Svelte Stepper: Build Animated Stepped Flows with Svelte — You can add and customize props on the component to adjust the number of steps and transition duration, among other features. See a simple but neat demo here.
Jason Efstathiou
🙈 NSFW.js 3.0 – Client-side NSFW image detection via TensorFlow.js.
🗓 React Big Calendar 1.10 – GCal/Outlook-like calendar component.
Tedious 17.0 – TDS module for connecting to Microsoft SQL Server.
Inspire Tree 7.0 – Perf-driven headless tree component.
Heat.js 2.1 – Render customizable heat maps.
Mineflayer 4.19 – Create Minecraft bots in JavaScript.
Spacetime 7.6 – Lightweight timezone library.
React Tags 6.9 – Tagging component.