This package is the officially supported mechanism for declaring and detecting the specific edition that a given application is using.
In order to declare which edition of Ember your application (or addon's test bed application) is compatible with
you would update your package.json
to include the following:
{
"name": "project-name",
// ...snip
"ember": {
"edition": "octane"
}
}
In order to detect if the currently running application is using at least a
specific edition, you would call has
. This will most commonly be used from
within various addon's to determine which blueprint code to run. For example:
const { has } = require('@ember/edition-utils');
if (has('octane', this.project.root)) {
// do octane stuff
} else {
// do classic mode stuff
}
The edition flag should only be used by addons to determine what blueprint output to generate and to provide helpful warnings (or errors) at build time.
This does not allow for an addon to detect the edition configuration and change its fundamental implementation. This is quite intentional!
Instead, addons should rely on feature detection techniques like the following to alter implementations:
- Check to see if given methods/properties exist (this is essentially like how browser polyfills work)
- Use a tool like
ember-compatibility-helpers's
gte
method (e.g.if (gte('ember-source', '3.14.0')) { }
) - Use
@ember/optional-features's
isFeatureEnabled
method
This project is licensed under the MIT License.