better-result 3.0

tosh1 pts0 comments

Dillon Mulroy on X: "better-result 3.0 is now available

npm i better-result@3

highlights below https://t.co/TM6KbNSGxs" / X<br>Post

Log inSign up

Post

Dillon Mulroy on X: "better-result 3.0 is now available

npm i better-result@3

highlights below https://t.co/TM6KbNSGxs"

Dillon Mulroy

@dillon_mulroy

better-result 3.0 is now available

npm i better-result@3

highlights below

span:not(:empty)~span:not(:empty)]:before:content-['·'] [&>span:not(:empty)~span:not(:empty)]:before:px-1 [&>span:not(:empty)~span:not(:empty)]:before:shrink-0">9:47 PM · Aug 1, 2026200KViews

32<br>76<br>1.4K<br>1.2K

span:not(:empty)~span:not(:empty)]:before:content-['·'] [&>span:not(:empty)~span:not(:empty)]:before:px-1 [&>span:not(:empty)~span:not(:empty)]:before:shrink-0 min-w-0 overflow-hidden">Dillon Mulroy

@dillon_mulroy

Aug 1

Validated Result codecs

Result.codec replaces the unvalidated serialization helpers with Standard Schema-compatible validation for both Ok and Err payloads

Codecs support different domain and wire types, preserve synchronous or asynchronous schema behavior, and report Show more

61<br>14K

span:not(:empty)~span:not(:empty)]:before:content-['·'] [&>span:not(:empty)~span:not(:empty)]:before:px-1 [&>span:not(:empty)~span:not(:empty)]:before:shrink-0 min-w-0 overflow-hidden">Dillon Mulroy

@dillon_mulroy

Aug 1

Result collections

New collection combinators make concurrent and heterogeneous Result workflows easier:

Result.all collects successful values or returns the first error.

Result.allAsync awaits inputs concurrently while preserving input-order error selection.

Result.partition Show more

40<br>11K

span:not(:empty)~span:not(:empty)]:before:content-['·'] [&>span:not(:empty)~span:not(:empty)]:before:px-1 [&>span:not(:empty)~span:not(:empty)]:before:shrink-0 min-w-0 overflow-hidden">Dillon Mulroy

@dillon_mulroy

Aug 1

Better asynchronous retries

Result.tryPromise now supports:

AbortSignal propagation through TryPromiseContext;

cancellation of pending retry delays;

dynamic delayMs(error, context) policies;

configurable retry jitter;

attempt-aware shouldRetry(error, context) predicates. Show more

35<br>8.7K

span:not(:empty)~span:not(:empty)]:before:content-['·'] [&>span:not(:empty)~span:not(:empty)]:before:px-1 [&>span:not(:empty)~span:not(:empty)]:before:shrink-0 min-w-0 overflow-hidden">Dillon Mulroy

@dillon_mulroy

Aug 1

TaggedError instance matching

Tagged errors now provide exhaustive instance-level matching

matchError remains available for structurally tagged errors and data-last composition.

Tagged errors are also iterable, allowing them to short-circuit directly inside Result.gen:

const Show more

25<br>6.5K

span:not(:empty)~span:not(:empty)]:before:content-['·'] [&>span:not(:empty)~span:not(:empty)]:before:px-1 [&>span:not(:empty)~span:not(:empty)]:before:shrink-0 min-w-0 overflow-hidden">Dillon Mulroy

@dillon_mulroy

Aug 1

TaggedError syntax

Remove the trailing factory call.

TaggedErrorClass is now TaggedErrorClass, with the payload type supplied by the subclass.

21<br>6.2K

span:not(:empty)~span:not(:empty)]:before:content-['·'] [&>span:not(:empty)~span:not(:empty)]:before:px-1 [&>span:not(:empty)~span:not(:empty)]:before:shrink-0 min-w-0 overflow-hidden">Dillon Mulroy

@dillon_mulroy

Aug 1

The following APIs have been removed:

Result.serialize<br>Result.deserialize<br>Result.hydrate

Use Result.codec with explicit Standard Schema-compatible serializers and deserializers.

24<br>5.9K

span:not(:empty)~span:not(:empty)]:before:content-['·'] [&>span:not(:empty)~span:not(:empty)]:before:px-1 [&>span:not(:empty)~span:not(:empty)]:before:shrink-0 min-w-0 overflow-hidden">Ben Vinegar

@bentlegen

Aug 1

How should I think of this vs Effect?

13<br>5K

Log in or sign up for X<br>See what’s happening and join the conversation<br>Continue with phoneContinue with AppleContinue with Google<br>or<br>Log in with username or email

Relevant people

Dillon Mulroy@dillon_mulroyFollow<br>principal engineer @cloudflare • tweets about functional programming, typescript, neovim, & formula 1 • https://t.co/6Vr6DiQUoM • https://t.co/tlUe9v9eZC

Trending now

span empty before result dillon mulroy

Related Articles