ember-optional-features
ember-optional-features copied to clipboard
Expose a module for runtime detection of opt-in/opt-out.
At times, addons will need to know if specific optional features are enabled or not. With the current architecture it is only possible to detect at runtime via window.EmberENV._SOME_FLAG_HERE, but we should not encourage that type of coupling to EmberENV.
As I see it we have a few options:
- Provide a
@ember/optional-featuresmodule that can be imported and checked for various opt-in's. This would allow consumers to use an import and conditionals in their code based on a given optional flag value. - Expose a custom babel plugin that can be used when an addon includes
@ember/optional-featuresas a direct dependency. This babel plugin would provide custom build time replacement of@ember/optional-featuresbased conditionals, and would therefore allow addons to include support for multiple variations of features without bloating the total asset size.
@chancancode - Thoughts?
Oh, also, IMHO we should do both options...
This should probably also expose whether the user explicitly opted in/out (as opposed to simply accepting the default), so it can be used to address https://github.com/emberjs/ember.js/issues/16849.
Ya, agreed, though I think that it may need to be a separate API. I think most of the time you just want to know enabled or disabled, but in a somewhat rare set of cases you care if the user explicitly chose the setting or not...
As there has been no movement on this, Ember Twiddle will be using EmberENV as an intimate api.