Skip to content

Conversation

@richieforeman
Copy link

Internally at Google, we have some company-wide conformance tests that ensure that all errors that are thrown, are subclasses of Error.

To ensure this, I adjusted the createNeverThrowError func to return a new NeverThrowError class, which both extends Error and overwrites the object's prototype to ensure that it is Error.

This allows for:

createNeverThrowError(...) instanceOf Error
> true

createNeverThrowError feels like an internal detail of the library and is only used in some fringe boundary cases. I added a quick test in a spot that felt the most obvious. Suggestions on alternatives are welcome!

@changeset-bot
Copy link

changeset-bot bot commented Apr 28, 2025

⚠️ No Changeset found

Latest commit: 1b25fb8

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@richieforeman
Copy link
Author

⚠️ No Changeset found

Latest commit: 1b25fb8

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

I'm going to yield to the maintainers on whether or not this is a version bump. LMK if you'd like me to click the button :)

@richieforeman richieforeman changed the title Ensure that createNeverThrowError throws an Error that is an instance of Error class. Ensure that createNeverThrowError returns an Error that is an instance of Error class. Apr 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant