supermacro/neverthrow

Type-Safe Errors for JS & TypeScript

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 53 minutes ago
Added to GitGenius on September 8th, 2026
Created on April 28th, 2019
Open Issues & Pull Requests: 83 (+0)
GitHub issues: Enabled
Number of forks: 152
Total Stargazers: 7,708 (+0)
Total Subscribers: 17 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.9 days
Mean response time: 42.5 days
90th percentile: 173.1 days
Tracked items: 59

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 2% of issues opened in the past year have been closed. Three people close 75% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 46
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 521 days
Stale 30+ days: 45
Stale 90+ days: 39

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • hacktoberfest (2)
  • help wanted (1)

Most active issues this week

Detailed Description

Neverthrow is a TypeScript library that provides type-safe error handling through a Result type.

The library addresses the problem of unhandled errors and type-unsafe error propagation in JavaScript and TypeScript. It encodes failure into your program by offering a Result type that explicitly represents either success (Ok) or failure (Err). For asynchronous operations, neverthrow provides a ResultAsync class that wraps a Promise<Result<T, E>>, allowing you to chain operations and handle errors without constantly awaiting or using .then callbacks. ResultAsync behaves like a native Promise but exposes the same chainable methods as the synchronous Result type, giving you consistent expressivity whether working with synchronous or asynchronous code.

Developers should consider neverthrow when building applications where explicit error handling and type safety are priorities. It suits projects that want to avoid try-catch blocks and ensure all error paths are accounted for at compile time. The approach works well in functional programming contexts where error handling is treated as a first-class concern rather than an exceptional case. Teams already familiar with functional programming patterns or languages like Rust will find the Result abstraction natural.

The project shows consistent maintenance with regular updates addressing user feedback and edge cases. Development demonstrates responsiveness to issues raised by users, with fixes and improvements being incorporated into the codebase. The maintainers actively engage with the community through documentation and examples, including references to real-world usage patterns. The project maintains a focus on keeping the API stable and predictable while gradually expanding capabilities based on practical needs identified by users.