Nicolas Dubien
banner
nicolas.dubien.me
Nicolas Dubien
@nicolas.dubien.me
580 followers 820 following 380 posts
Author of @fast-check.dev (🌐 https://fast-check.dev) ∙ Lead Principal Software Engineer @GoPigment ∙ Opinions are my own #Testing #JavaScript #TypeScript #React
Posts Media Videos Starter Packs
Reposted by Nicolas Dubien
@nico.dev learning us how to build K.I.T.T. with Javascript.
Reposted by Nicolas Dubien
ECMAScript excitement 😉

Congrats to proposal champion Dan Minor @mozilla.org on shipping the TC39 Stage 3 Upsert proposal in Firefox 144 🎉

let map = new Map();
map.getOrInsert(key, defaultVal);

It lets you set a default value on a map key without overwriting an existing value 👍
Reposted by Nicolas Dubien
ECMAScript excitement 😉

Congrats to Evan Wallace on shipping the TC39 Stage 2.7 Import Bytes proposal in ESBuild 0.25.11 🎉

It lets you import raw bytes as a readonly Uint8Array 👍

import buf from "./a.png" with { type: "bytes" }

Also available in Deno, Bun, & webpack.
Reposted by Nicolas Dubien
As for the launch of Vite+, I'm glad we now have the demo and the website.

Probably it's best to wait for the blog post (promised for Monday) to really understand it and continue the conversation.

viteplus.dev
Reposted by Nicolas Dubien
Better suited for the need 😅
Awesome 😍 I'll definitely give it a try for the CI of @fast-check.dev
we now have an @e18e.dev github action which can diff your dependencies in PRs

things like:
- change in trust level (loss of trusted publisher)
- adding >threshold dependencies
- adding >threshold install size
- bundle size difference (vs main)
- duplicate deps

early days so please give feedback!
GitHub - e18e/action-dependency-diff: A GitHub action to report dependency changes and potential problems
A GitHub action to report dependency changes and potential problems - e18e/action-dependency-diff
github.com
Reposted by Nicolas Dubien
This is great news! GitHub will require use of passkeys for 2FA when publishing to NPM. What a huge step up in security compared to other phishable 2FA methods that were historically supported 🎉

github.blog/security/sup...
Our plan for a more secure npm supply chain
GitHub is strengthening npm's security with stricter authentication, granular tokens, and enhanced trusted publishing.
github.blog
Reposted by Nicolas Dubien
Rolldown v1.0.0-beta.39 has been released!

⚡ macOS Performance Boost: 10%-30% faster bundling, up to 45% in extreme cases.

🎯 Cross-Chunk Optimization: Support for __NO_SIDE_EFFECTS__ annotation, as well as
better tree-shaking across module boundaries and more efficient DCE
Reposted by Nicolas Dubien
ECMAScript excitement 😉

Next week's TC39 meeting has a packed agenda:

🔼 Amount
🔼 Array.prototype.pushAll
🔶 AsyncContext
🔶 Await Dictionary
🔼 Import Bytes
🔶 Intl Era Month Code
🔼 Iterator Chunking
🔶 new Global()
🔼 Non-extensible applies to private
🔼 Promise Adoption
🔼 Promise Predicate
🔶 Temporal
Reposted by Nicolas Dubien
ArkType @arktype.io · Sep 20
our two-step process for fast typescript types:

1️⃣ build a type-level benchmarking library
2️⃣ spend the prime of your life on cache optimizations
@ssalbdivad.dev haven't you planned the same for @arktype.io too?
Reposted by Nicolas Dubien
Writing tests is hard, and I'm lazy. I'd rather write a few invariants, and let fast-check fuzz test the rest.

That's why I built @​traversable/valibot-test.

Here it is in action:
Reposted by Nicolas Dubien
TIL: the "sync" in @react.dev's useSyncExternalStore isn't for "synchronise", it's for "synchronous".

As: it's not for synchronising against an external store,

It's for synchronously (ie: disabling concurrent features) updating against a store's changes.

h/t @tkdodo.eu 🤯
Reposted by Nicolas Dubien
I wanna write a blogpost about Suspense, Transitions and React Query but it would mostly be "here's how I understand it, here's what I think doesn't work and here's what we might have to change internally to make it work"
Reposted by Nicolas Dubien
nuqs @nuqs.dev · Sep 19
Why do nuqs URL updates occur client-side only by default?

Because you're guaranteed to run @react.dev on the client, but not all frameworks do SSR.

With `shallow: false`, you opt-out of this client-only behaviour, and cross the network boundary for search params you need during SSR.
Got exactly the same issues: one package at a time and rate limited 😅 Not the best UX/DX
I'm enabling OICD trusted publishing in all my npm packages. What a terrible DX 🫠 Not only I needed to click through the options manually in THIRTY NINE packages, but also got rate-limited and had to wait a full hour before I was able to continue 🤣 It's like they *didn't want* people to enable OICD!
Reposted by Nicolas Dubien
✨ We’re thrilled to welcome our new Gold Sponsor: LambdaTest! 🎉
Your support helps us keep improving fast-check for the whole community 💛

More about them at www.lambdatest.com
Reposted by Nicolas Dubien
🚨 Major active supply chain attack just hit npm.

Popular package @​ctrl/tinycolor was trojanized — and it didn’t stop there. Over 40 packages were silently modified to steal secrets from dev machines & CI pipelines.

Our team at Socket caught it. Full report coming soon. Stay safe out there.
Reposted by Nicolas Dubien
🚊 On my way to Prague for @react-prague.bsky.social. I will be talking about how we use knip @sentry.io to remove unused code 🙌