spf13 / viper

Go configuration with fangs
MIT License
26.32k stars 2.01k forks source link

feat: add errors.Is support to all errors #1735

Open gwvandesteeg opened 6 months ago

gwvandesteeg commented 6 months ago

Add functionality to support errors.Is on all generated errors to keep in line with best practice on checking whether an error is of the specified type as per changes to error handling in go1.13.

This allows code to go from

if _, ok := err.(viper.ConfigFileNotFoundError); !ok {
  // do things
}

to

if !errors.Is(err, viper.ConfigFileNotFoundError{}) {
  // do things
}
CLAassistant commented 6 months ago

CLA assistant check
All committers have signed the CLA.

github-actions[bot] commented 6 months ago

👋 Thanks for contributing to Viper! You are awesome! 🎉

A maintainer will take a look at your pull request shortly. 👀

In the meantime: We are working on Viper v2 and we would love to hear your thoughts about what you like or don't like about Viper, so we can improve or fix those issues.

⏰ If you have a couple minutes, please take some time and share your thoughts: https://forms.gle/R6faU74qPRPAzchZ9

📣 If you've already given us your feedback, you can still help by spreading the news, either by sharing the above link or telling people about this on Twitter:

https://twitter.com/sagikazarmark/status/1306904078967074816

Thank you! ❤️

gwvandesteeg commented 6 months ago

This resolves #1736

andig commented 1 week ago

Imho errors.Is() already does this. The real discrepancy here is checking *Error vs Error.