spf13 / viper

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

feat: allow finding origin of value #1812

Open phm07 opened 2 months ago

phm07 commented 2 months ago

This PR proposes a new function viper.Origin that allows finding the origin of a configuration value. It might be used for following use cases:

The implementation is largely based on (*Viper).find, but instead of returning the option values, it returns a viper.ValueOrigin based on the current code path.

Alternatively, you could also return a ValueOrigin from (*Viper).find and then expose that through viper.Origin. This way there would be less code duplication. Let me know if you prefer this approach.

What still needs to be done/discussed:

CLAassistant commented 2 months ago

CLA assistant check
All committers have signed the CLA.

github-actions[bot] commented 2 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! ❤️