Exploring JavaScript symbols
#714 — November 21, 2024
🦃 We’re taking next week off for Thanksgiving. We don’t celebrate it in our country, but we know many of you do, so it seemed a good time for a break. We’ll be back on Thursday December 5.
__
Your editor, Peter Cooper
JavaScript Weekly
Importing a Frontend JavaScript Library Without a Build System — Many developers prefer to eschew complex, modern build processes and use JavaScript in a more old-school way. You can definitely get by without a build system, and Julia explores some ways to import libraries in such a setup.
Julia Evans
Angular v19 Released — The latest version of the popular enterprise-scale app framework is here with a ▶️ 22 minute introductory video running through what’s changed and what’s new, including incremental hydration (in preview), two new core reactivity primitives, event replay, and the ability to specify which routes are rendered server or client side.
Minko Gechev
Ship Code Confidently When You Take Testing Fundamentals — Join Steve Kinney for this video course on test-driven development workflows and nail the testing fundamentals. You’ll learn about automation, equality, mocks and spies, integration testing, the tools to help you along the way, and much more.
Frontend Masters sponsor
IN BRIEF:
🗳️ The latest State of JS survey is now open and taking your responses. It’s open until December 3.
🇫🇷 dotJS 2025 is taking place next April in Paris, France. If you’d like to speak, the CFP is open until November 29.
AWS Lambda, the serverless functions platform, turns ten years old this week. Its first runtime was JavaScript-based.
Nova is an interesting new JavaScript engine that takes a CPU cache friendly data-oriented approach.
RELEASES:
Bun v1.1.35 – The fast JavaScriptCore-based runtime adds native support for Musl and Alpine Linux, the Bun binary is a lot smaller, console.group and groupEnd are now supported, and fs.readFile is faster on small files.
Payload 3.0 – Headless Next.js-native CMS platform.
📊 Mantine v7.14.0 – The popular React component suite adds new ‘angle slider’, radial bar chart, funnel chart, and stacking modal/drawer components.
Node.js v23.3.0 (Current) and v20.18.1 (LTS)
Ionic 8.4, ESLint v9.15.0, Turborepo 2.3, Deno 2.1, QuickJS 0.7
🤞 It wasn’t released by the time we hit ‘send’ but we suspect TypeScript 5.7 will be out later today – you can check on the TypeScript blog.
📒 Articles & Tutorials
Exploring JavaScript Symbols — Symbols were a new ‘quirky little primitive’ (as Trevor puts it) that arrived with ES6 ten years ago, but they continue to be poorly understood. Trevor boils them down really well, including a little side quest into the likely-to-be-deprecated ‘species.’
Trevor I. Lasn
Breakpoints and console.log Is the Past, Time Travel Is the Future — Next-level testing in any editor, 15x faster with Interactive Time Travel Debugger, real-time insights & advanced coverage in a new UI.
Wallaby Team sponsor
Building Self-Contained Executable Programs with Deno — One of Deno’s compelling features is its deno compile command that can turn JavaScript and TypeScript programs into single, easy to distribute cross-platform binaries. Here’s a bit more about what makes it tick.
Ryan Dahl and Andy Jiang
Mapping Over Promises in JavaScript — A quick look at three approaches: for..of, Promise.all, and p-map
Peter Mbanugo
Explore Sentry Launch Week: New Products and Community Highlights — Join us for daily video drops on YouTube at 9am PT, and on Discord to chat live with the engineers building Sentry.
Sentry sponsor
📄 Migrating from VuePress to VitePress Henry Bley-Vroman
📄 Why Alpine is the ‘New jQuery’ and Why That’s Awesome Raymond Camden
📄 How to Prerelease an npm Package Scott Vandehey
📄 Precise Decimal Math in JavaScript with Fraction.js Trevor I. Lasn
📄 How to Avoid Flaky Tests in Playwright Zanini and Ackerson
📄 Adding Interactive Charts in Astro Pavlin BG
🛠 Code & Tools
Viselect: Let Users Visually Select DOM Elements — If you’ve got a variety of elements and you want users to be able to select them in groups, individually, or even in multiple groups, this lets you offer that functionality easily. Can be used in a vanilla fashion or with integrations for P/React or Vue.js.
Simon Reinisch
Perfectionist 4: ESLint Plugin for Sorting Things in Your Code — It doesn’t care what you want to sort (props, imports, types, decorators, modules..) but if you want to enforce something is sorted using ESLint, this is for you. It supports alphabetical and natural sorting, plus sorting by line length which results in this sort of aesthetic.
Azat S.
Your Vectors Are Too Big — Are your massive full-fidelity vectors slowing down your search? Compress, cut costs, and boost speed with MongoDB Atlas!
MongoDB sponsor
React Scan: Detect Performance Issues in Your App — A pure JavaScript tool you can drop into your app to automatically ‘scan’ for problematic renders without doing lots of integration work. There’s a simple demo on the homepage or you can see Aiden’s view of Twitter/X being scanned. GitHub repo.
Aiden Bai
💬 Discordeno v19: A Powerful Discord API Library — A long-standing way to work with, and build bots for, the popular Discord chat system. v19 is a big update with breaking changes. GitHub repo.
Discordeno Team
🤖 Vercel’s AI Chatbot Starter Template — An open source AI chatbot app template built using Next.js. It uses Vercel’s AI SDK and other Vercel APIs for the heavy lifting.
Vercel
Glide.js 3.7: A Dependency-Free Slider and Carousel Control — “Designed to slide. No less, no more” says the creator. MIT licensed and mature.
Jędrzej Chałubek
📰 Classifieds
Meticulous automatically creates & maintains E2E UI tests. Zero flakes. Used by Lattice, Bilt Rewards and others.
Hookdeck: An alternative to Amazon API Gateway + Lambda + SQS. With local dev, debugging, and observability built-in.
pretty-ms 9.2 – Convert milliseconds to human readable strings. Now with options to hide years, seconds and days, as preferred.
☕ Javet 4.1 – Embed Node.js and V8 into Java. Updates to Node v22.11.0 and adds Float16 support.
Embla Carousel 8.5 – Lightweight carousel library with fluid motion.
Sortable 4.0 – Make tables sortable with class=”sortable”
📊 Vue Data UI 2.4 – Vue 3 data visualization components.
Capacitor 6.2 – Build cross-platform native apps with JS.
Peggy 4.2 – Parser generator for JavaScript.