Javascript Node

Let’s create some dependency graphs5 min read

#​498 — August 8, 2023

Read on the Web

☀️ We’re taking two weeks off and will be back on Tuesday, August 29. It’s true, we’re taking a rare vacation and will be back in a couple of weeks, so if you don’t see us in your inbox, it’s not a fault at your end 🙂
__
Peter Cooper and the Cooperpress team

npmgraph: A Way to Visualize Dependency Graphs — Give this Web-based tool one or more package names (or a package.json of your own) and you can see a visualization of the dependency graphs for those packages, including where they intersect. Packages can be colored by various criteria (such as number of maintainers) and you can download a SVG of the resulting graphs to paste into your reports and presentations if you like scaring people that way. There’s a lot more to this tool than meets the eye so have a play.

Kieffer, Brigante, et al.

On-Demand Webinar: Temporal Roadmap Summer 2023 — Get a sneak peak of Temporal’s product roadmap ahead of Replay, our annual conference dedicated to backend engineering. Just for watching, you’ll get an exclusive promo code for discounted tickets. We hope to see you in Seattle this September!

Temporal Technologies sponsor

A Compilation of Outstanding JS Testing Articles — Since we’re taking a couple of weeks off, you might be keen to have some Node related reading stacked up, and Yoni delivers with his opinionated list of 10 outstanding testing articles, all with a Node slant to them. He also mentions his own list of JavaScript and Node.js Testing Best Practices which is worth revisiting too.

Yoni Goldberg

ASIDES:

⚠️ There are several Node.js security releases due later today. They’ve not landed as of the time we’re going to press, but new versions of 16.x, 18.x and 20.x are expected imminently.

Alternative server side JS runtime Deno 1.36 has landed with extended security options, a polyfill for node:test, completion of the node:os polyfill, and a pile of other small Node compatibility improvements. It’s easier than ever to play with Deno as a Node developer, if you’re so inclined.

Krasimir Tsonev has built an Express.js-based source viewer app called view-source

ModelFusion is a new library for building AI apps, chatbots and agents. We plan to feature it in a future issue once it has seen further development, but wanted to slip it in before our break 🙂

Puppeteer in Node.js: More Antipatterns to Avoid

Greg Gorlen

Creating a Node API with Knex and Postgres

David Ekete

▶  How GitHub Actions 10x My Productivity

Fireship

🛠 Code & Tools

Fiddle: The Easiest Way to Get Started with Electron — If you’ve wanted to play with Electron for building a JavaScript-powered desktop app but didn’t have the time, Fiddle makes it into more of a quick-start ‘playground’ experience. GitHub repo.

Electron

node-jq 3.0: A Node Wrapper for jqjq is a popular and powerful command-line JSON processing tool that’s well worth having in your toolbox. It’s written in C, though, but this library simplifies calling out to it from Node.

sanack

React Authentication — Without Complexity — Userfront streamlines authentication & access control so engineers can focus on their core business. Read the docs now.

Userfront sponsor

🖼  Jimp: Image Processing in Node without Native Dependencies — Most image libraries, such as the powerful Sharp, lean on external libraries like libvps or ImageMagick to do the heavy lifting, but Jimp can handle BMPs, GIFs, JPEGs, PNGs, and TIFFs entirely on its own for operations including blur, color adjustments, masking, resizing, rotation, and more. It’s not new but continues to get frequent updates.

jimp Contributors

Filesize.js: Generate Human Readable Strings From File Sizes — For example, 123456 bytes could turn into “120.56 KB” – though different standards of conversion can also be used. GitHub repo.

Jason Mulligan

tsup 7.2: Bundle Your TypeScript Library with No Config — Throw your .js, .json, .mjs, .ts, and .tsx files at the esbuild-powered tsup and say hello to transpiled, bundled code for distribution. More in this tutorial.

egoist

delay: Delay a Promise a Specified Amount of Time“If you target Node.js only, you can use import {setTimeout} from ‘node:timers/promises’; await setTimeout(1000); instead. This package can still be useful if you need browser support or the extra features.”

Sindre Sorhus

Supercluster: A Fast Geospatial Point Clustering Library

Mapbox

📰 Classifieds

Emerge is looking for a Senior Software Engineer (Frontend Lead). Come lead Emerge’s web platform, used by teams like DoorDash, Square, Dropbox & Airbnb (our stack: Next.js, React, TS, Vercel).

💻 Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.

“In the beginning there was stdout….” Stop sampling, get Axiom — logging and tracing re-invented.

📢 If you have a community related event, project, podcast, or similar, that would be of interest to Node Weekly readers, let us know by replying to this email and we may be able to run a classified listing as above for free. We want to have a good mix of community and commercial listings.

QUICK RELEASES:

Puppeteer 21.0
↳ Headless Chrome/Chromium automation library.

express-rate-limit 6.9
↳ Basic rate limiting for Express apps.

node-html-to-image 4.0
↳ Generate images from HTML using Puppeteer.

Opossum 8.1
↳ Node circuit breaker. Plays dead and fails fast.

AutoCannon 7.12
↳ wrk-inspired HTTP/1.1 benchmarking tool.

Crawlee 3.5
↳ Web scraping and browser automation library.

graphql-constraint-directive 5.2
↳ Validate GraphQL fields.

Marked 7.0
↳ Fast Markdown parser and compiler.

Piscina 4.1 – Efficient worker thread pool.

Pino 8.15 – Fast JSON logger.

Undici 5.23 – The modern HTTP/1.1 client.

node-mysql2 3.6

👋 We’ll be back in three weeks on August 29, 2023. See you soon! If you have anything to submit for the next issue, hit reply and let us know (but appreciate we may be slow to reply since we’ll be on vacation 😉).

Pin It on Pinterest

Generated by Feedzy