Deprecations Added in Ember 6.x
What follows is a list of deprecations introduced to Ember during the 6.x cycle.
For more information on deprecations in Ember, see the main deprecations page.
Deprecations Added in 6.3.0
Importing inject from @ember/service
Importing inject from @ember/service is deprecated. Please import service instead.
Example:
import { Route } from '@ember/routing/route';
import { inject as service } from '@ember/service';
import { service } from '@ember/service';
export default class MyRoute extends Route {
@service store;
}
You may ignore this deprecation via babel plugin (for both app and addon code), here: babel-plugin-undeprecate-inject-from-at-ember-service.
For violations within your own code, this deprecation can be dealt with one a single pass via the ember-codemod-remove-inject-as-service codemod.
If you're working on a library that needs to support ember-source prior to 4.1, you can support both styles of service via:
import * as emberService from '@ember/service';
const service = emberService.service ?? emberService.inject;
Deprecations Added in 6.5.0
Ember.__loader
Previously, __loader could be accessed via the Ember import:
import Ember from 'ember';
Ember.__loader
There is no replacement for this API.
Ember._action
Previously, _action could be accessed via the Ember import:
import Ember from 'ember';
Ember._action
If needed, _action can be imported:
import { action } from '@ember/object';
Ember._array
Previously, _array could be accessed via the Ember import:
import Ember from 'ember';
Ember._array
If needed, _array can be imported:
import { array } from '@ember/helper';
Ember._assertDestroyablesDestroyed
Previously, _assertDestroyablesDestroyed could be accessed via the Ember import:
import Ember from 'ember';
Ember._assertDestroyablesDestroyed
If needed, _assertDestroyablesDestroyed can be imported:
import { assertDestroyablesDestroyed } from '@ember/destroyable';
Ember._associateDestroyableChild
Previously, _associateDestroyableChild could be accessed via the Ember import:
import Ember from 'ember';
Ember._associateDestroyableChild
If needed, _associateDestroyableChild can be imported:
import { associateDestroyableChild } from '@ember/destroyable';
Ember._Backburner
Previously, _Backburner could be accessed via the Ember import:
import Ember from 'ember';
Ember._Backburner
_Backburner is also private.
There is no replacement for this API.
Ember._Cache
Previously, _Cache could be accessed via the Ember import:
import Ember from 'ember';
Ember._Cache
There is no replacement for this API.
Ember._cacheGetValue
Previously, _cacheGetValue could be accessed via the Ember import:
import Ember from 'ember';
Ember._cacheGetValue
If needed, _cacheGetValue can be imported:
import { getValue } from '@glimmer/tracking/primitives/cache';
Ember._cacheIsConst
Previously, _cacheIsConst could be accessed via the Ember import:
import Ember from 'ember';
Ember._cacheIsConst
If needed, _cacheIsConst can be imported:
import { isConst } from '@glimmer/tracking/primitives/cache';
Ember._captureRenderTree
Previously, _captureRenderTree could be accessed via the Ember import:
import Ember from 'ember';
Ember._captureRenderTree
_captureRenderTree is also private.
If needed, _captureRenderTree can be imported:
import { captureRenderTree } from '@ember/debug';
However, due to _captureRenderTree being private, it is not recommended, nor supported.
Ember._componentManagerCapabilities
Previously, _componentManagerCapabilities could be accessed via the Ember import:
import Ember from 'ember';
Ember._componentManagerCapabilities
If needed, _componentManagerCapabilities can be imported:
import { capabilities } from '@ember/component';
Ember._concat
Previously, _concat could be accessed via the Ember import:
import Ember from 'ember';
Ember._concat
If needed, _concat can be imported:
import { concat } from '@ember/helper';
Ember._ContainerProxyMixin
Previously, _ContainerProxyMixin could be accessed via the Ember import:
import Ember from 'ember';
Ember._ContainerProxyMixin
_ContainerProxyMixin is also private.
There is no replacement for this API.
Ember._createCache
Previously, _createCache could be accessed via the Ember import:
import Ember from 'ember';
Ember._createCache
If needed, _createCache can be imported:
import { createCache } from '@glimmer/tracking/primitives/cache';
Ember._dependentKeyCompat
Previously, _dependentKeyCompat could be accessed via the Ember import:
import Ember from 'ember';
Ember._dependentKeyCompat
If needed, _dependentKeyCompat can be imported:
import { dependentKeyCompat } from '@ember/object/compat';
Ember._descriptor
Previously, _descriptor could be accessed via the Ember import:
import Ember from 'ember';
Ember._descriptor
There is no replacement for this API.
Ember._enableDestroyableTracking
Previously, _enableDestroyableTracking could be accessed via the Ember import:
import Ember from 'ember';
Ember._enableDestroyableTracking
If needed, _enableDestroyableTracking can be imported:
import { enableDestroyableTracking } from '@ember/destroyable';
Ember._fn
Previously, _fn could be accessed via the Ember import:
import Ember from 'ember';
Ember._fn
If needed, _fn can be imported:
import { fn } from '@ember/helper';
Ember._getComponentTemplate
Previously, _getComponentTemplate could be accessed via the Ember import:
import Ember from 'ember';
Ember._getComponentTemplate
If needed, _getComponentTemplate can be imported:
import { getComponentTemplate } from '@ember/component';
Ember._get
Previously, _get could be accessed via the Ember import:
import Ember from 'ember';
Ember._get
If needed, _get can be imported:
import { get } from '@ember/helper';
Ember._getPath
Previously, _getPath could be accessed via the Ember import:
import Ember from 'ember';
Ember._getPath
There is no replacement for this API.
Ember._hash
Previously, _hash could be accessed via the Ember import:
import Ember from 'ember';
Ember._hash
If needed, _hash can be imported:
import { hash } from '@ember/helper';
Ember._helperManagerCapabilities
Previously, _helperManagerCapabilities could be accessed via the Ember import:
import Ember from 'ember';
Ember._helperManagerCapabilities
If needed, _helperManagerCapabilities can be imported:
import { capabilities } from '@ember/helper';
Ember._Input
Previously, _Input could be accessed via the Ember import:
import Ember from 'ember';
Ember._Input
If needed, _Input can be imported:
import { Input } from '@ember/component';
Ember._invokeHelper
Previously, _invokeHelper could be accessed via the Ember import:
import Ember from 'ember';
Ember._invokeHelper
If needed, _invokeHelper can be imported:
import { invokeHelper } from '@ember/helper';
Ember._isDestroyed
Previously, _isDestroyed could be accessed via the Ember import:
import Ember from 'ember';
Ember._isDestroyed
If needed, _isDestroyed can be imported:
import { isDestroyed } from '@ember/destroyable';
Ember._isDestroying
Previously, _isDestroying could be accessed via the Ember import:
import Ember from 'ember';
Ember._isDestroying
If needed, _isDestroying can be imported:
import { isDestroying } from '@ember/destroyable';
Ember._modifierManagerCapabilities
Previously, _modifierManagerCapabilities could be accessed via the Ember import:
import Ember from 'ember';
Ember._modifierManagerCapabilities
If needed, _modifierManagerCapabilities can be imported:
import { capabilities } from '@ember/modifier';
Ember._on
Previously, _on could be accessed via the Ember import:
import Ember from 'ember';
Ember._on
If needed, _on can be imported:
import { on } from '@ember/modifier';
Ember._ProxyMixin
Previously, _ProxyMixin could be accessed via the Ember import:
import Ember from 'ember';
Ember._ProxyMixin
_ProxyMixin is also private.
There is no replacement for this API.
Ember._registerDestructor
Previously, _registerDestructor could be accessed via the Ember import:
import Ember from 'ember';
Ember._registerDestructor
If needed, _registerDestructor can be imported:
import { registerDestructor } from '@ember/destroyable';
Ember._RegistryProxyMixin
Previously, _RegistryProxyMixin could be accessed via the Ember import:
import Ember from 'ember';
Ember._RegistryProxyMixin
_RegistryProxyMixin is also private.
There is no replacement for this API.
Ember._setClassicDecorator
Previously, _setClassicDecorator could be accessed via the Ember import:
import Ember from 'ember';
Ember._setClassicDecorator
_setClassicDecorator is also private.
There is no replacement for this API.
Ember._setComponentManager
Previously, _setComponentManager could be accessed via the Ember import:
import Ember from 'ember';
Ember._setComponentManager
If needed, _setComponentManager can be imported:
import { setComponentManager } from '@ember/component';
Ember._setComponentTemplate
Previously, _setComponentTemplate could be accessed via the Ember import:
import Ember from 'ember';
Ember._setComponentTemplate
If needed, _setComponentTemplate can be imported:
import { setComponentTemplate } from '@ember/component';
Ember._setHelperManager
Previously, _setHelperManager could be accessed via the Ember import:
import Ember from 'ember';
Ember._setHelperManager
If needed, _setHelperManager can be imported:
import { setHelperManager } from '@ember/helper';
Ember._setModifierManager
Previously, _setModifierManager could be accessed via the Ember import:
import Ember from 'ember';
Ember._setModifierManager
If needed, _setModifierManager can be imported:
import { setModifierManager } from '@ember/modifier';
Ember._templateOnlyComponent
Previously, _templateOnlyComponent could be accessed via the Ember import:
import Ember from 'ember';
Ember._templateOnlyComponent
If needed, _templateOnlyComponent can be imported:
import templateOnly from '@ember/component/template-only';
Ember._tracked
Previously, _tracked could be accessed via the Ember import:
import Ember from 'ember';
Ember._tracked
If needed, _tracked can be imported:
import { tracked } from '@glimmer/tracking';
Ember._unregisterDestructor
Previously, _unregisterDestructor could be accessed via the Ember import:
import Ember from 'ember';
Ember._unregisterDestructor
If needed, _unregisterDestructor can be imported:
import { unregisterDestructor } from '@ember/destroyable';
Ember.A
Previously, A could be accessed via the Ember import:
import Ember from 'ember';
Ember.A
If needed, A can be imported:
import { A } from '@ember/array';
Ember.ActionHandler
Previously, ActionHandler could be accessed via the Ember import:
import Ember from 'ember';
Ember.ActionHandler
ActionHandler is also private.
There is no replacement for this API.
Ember.addListener
Previously, addListener could be accessed via the Ember import:
import Ember from 'ember';
Ember.addListener
If needed, addListener can be imported:
import { addListener } from '@ember/object/events';
Ember.addObserver
Previously, addObserver could be accessed via the Ember import:
import Ember from 'ember';
Ember.addObserver
If needed, addObserver can be imported:
import { addObserver } from '@ember/object/observers';
Ember.Application
Previously, Application could be accessed via the Ember import:
import Ember from 'ember';
Ember.Application
If needed, Application can be imported:
import Application from '@ember/application';
Ember.ApplicationInstance
Previously, ApplicationInstance could be accessed via the Ember import:
import Ember from 'ember';
Ember.ApplicationInstance
If needed, ApplicationInstance can be imported:
import ApplicationInstance from '@ember/application/instance';
Ember.Array
Previously, Array could be accessed via the Ember import:
import Ember from 'ember';
Ember.Array
If needed, Array can be imported:
import Array from '@ember/array';
Ember.ArrayProxy
Previously, ArrayProxy could be accessed via the Ember import:
import Ember from 'ember';
Ember.ArrayProxy
If needed, ArrayProxy can be imported:
import ArrayProxy from '@ember/array/proxy';
Ember.assert
Previously, assert could be accessed via the Ember import:
import Ember from 'ember';
Ember.assert
If needed, assert can be imported:
import { assert } from '@ember/debug';
Ember.beginPropertyChanges
Previously, beginPropertyChanges could be accessed via the Ember import:
import Ember from 'ember';
Ember.beginPropertyChanges
beginPropertyChanges is also private.
There is no replacement for this API.
Ember.BOOTED
Previously, BOOTED could be accessed via the Ember import:
import Ember from 'ember';
Ember.BOOTED
BOOTED is also private.
There is no replacement for this API.
Ember.cacheFor
Previously, cacheFor could be accessed via the Ember import:
import Ember from 'ember';
Ember.cacheFor
There is no replacement for this API.
Ember.canInvoke
Previously, canInvoke could be accessed via the Ember import:
import Ember from 'ember';
Ember.canInvoke
canInvoke is also private.
There is no replacement for this API.
Ember.changeProperties
Previously, changeProperties could be accessed via the Ember import:
import Ember from 'ember';
Ember.changeProperties
changeProperties is also private.
There is no replacement for this API.
Ember.Comparable
Previously, Comparable could be accessed via the Ember import:
import Ember from 'ember';
Ember.Comparable
Comparable is also private.
There is no replacement for this API.
Ember.compare
Previously, compare could be accessed via the Ember import:
import Ember from 'ember';
Ember.compare
If needed, compare can be imported:
import { compare } from '@ember/utils';
Ember.Component
Previously, Component could be accessed via the Ember import:
import Ember from 'ember';
Ember.Component
If needed, Component can be imported:
import Component from '@ember/component';
Ember.computed
Previously, computed could be accessed via the Ember import:
import Ember from 'ember';
Ember.computed
If needed, computed can be imported:
import { computed } from '@ember/object';
Ember.ComputedProperty
Previously, ComputedProperty could be accessed via the Ember import:
import Ember from 'ember';
Ember.ComputedProperty
There is no replacement for this API.
Ember.ContainerDebugAdapter
Previously, ContainerDebugAdapter could be accessed via the Ember import:
import Ember from 'ember';
Ember.ContainerDebugAdapter
If needed, ContainerDebugAdapter can be imported:
import ContainerDebugAdapter from '@ember/debug/container-debug-adapter';
Ember.Container
Previously, Container could be accessed via the Ember import:
import Ember from 'ember';
Ember.Container
Container is also private.
There is no replacement for this API.
Ember.controllerFor
Previously, controllerFor could be accessed via the Ember import:
import Ember from 'ember';
Ember.controllerFor
controllerFor is also private.
There is no replacement for this API.
Ember.Controller
Previously, Controller could be accessed via the Ember import:
import Ember from 'ember';
Ember.Controller
If needed, Controller can be imported:
import Controller from '@ember/controller';
Ember.ControllerMixin
Previously, ControllerMixin could be accessed via the Ember import:
import Ember from 'ember';
Ember.ControllerMixin
ControllerMixin is also private.
If needed, ControllerMixin can be imported:
import { ControllerMixin } from '@ember/controller';
However, due to ControllerMixin being private, it is not recommended, nor supported.
Ember.CoreObject
Previously, CoreObject could be accessed via the Ember import:
import Ember from 'ember';
Ember.CoreObject
If needed, CoreObject can be imported:
import EmberObject from '@ember/object';
Ember.DataAdapter
Previously, DataAdapter could be accessed via the Ember import:
import Ember from 'ember';
Ember.DataAdapter
If needed, DataAdapter can be imported:
import DataAdapter from '@ember/debug/data-adapter';
Ember.debug
Previously, debug could be accessed via the Ember import:
import Ember from 'ember';
Ember.debug
If needed, debug can be imported:
import { debug } from '@ember/debug';
Ember.defineProperty
Previously, defineProperty could be accessed via the Ember import:
import Ember from 'ember';
Ember.defineProperty
If needed, defineProperty can be imported:
import { defineProperty } from '@ember/object';
Ember.deprecate
Previously, deprecate could be accessed via the Ember import:
import Ember from 'ember';
Ember.deprecate
If needed, deprecate can be imported:
import { deprecate } from '@ember/debug';
Ember.deprecateFunc
Previously, deprecateFunc could be accessed via the Ember import:
import Ember from 'ember';
Ember.deprecateFunc
If needed, deprecateFunc can be imported:
import { deprecateFunc } from '@ember/debug';
Ember.destroy
Previously, destroy could be accessed via the Ember import:
import Ember from 'ember';
Ember.destroy
If needed, destroy can be imported:
import { destroy } from '@ember/destroyable';
Ember.endPropertyChanges
Previously, endPropertyChanges could be accessed via the Ember import:
import Ember from 'ember';
Ember.endPropertyChanges
endPropertyChanges is also private.
There is no replacement for this API.
Ember.Engine
Previously, Engine could be accessed via the Ember import:
import Ember from 'ember';
Ember.Engine
If needed, Engine can be imported:
import Engine from '@ember/engine';
Ember.EngineInstance
Previously, EngineInstance could be accessed via the Ember import:
import Ember from 'ember';
Ember.EngineInstance
If needed, EngineInstance can be imported:
import Engine from '@ember/engine/instance';
Ember.Enumerable
Previously, Enumerable could be accessed via the Ember import:
import Ember from 'ember';
Ember.Enumerable
Enumerable is also private.
If needed, Enumerable can be imported:
import Enumerable from '@ember/enumerable';
However, due to Enumerable being private, it is not recommended, nor supported.
Ember.ENV
Previously, ENV could be accessed via the Ember import:
import Ember from 'ember';
Ember.ENV
If needed, ENV can be imported:
import MyEnv from '<my-app>/config/environment';
For addons, getting access to the environment requires having access to the owner:
import { getOwner } from '@ember/owner';
// ...
let env = getOwner(this).resolveRegistration('config:environment');
Ember.Evented
Previously, Evented could be accessed via the Ember import:
import Ember from 'ember';
Ember.Evented
If needed, Evented can be imported:
import Evented from '@ember/object/evented';
Ember.expandProperties
Previously, expandProperties could be accessed via the Ember import:
import Ember from 'ember';
Ember.expandProperties
If needed, expandProperties can be imported:
import { expandProperties } from '@ember/object/computed';
Ember.FEATURES
Previously, FEATURES could be accessed via the Ember import:
import Ember from 'ember';
Ember.FEATURES
If needed, FEATURES can be imported:
import { isEnabled, FEATURES } from '@ember/canary-features';
Ember.generateControllerFactory
Previously, generateControllerFactory could be accessed via the Ember import:
import Ember from 'ember';
Ember.generateControllerFactory
generateControllerFactory is also private.
There is no replacement for this API.
Ember.generateController
Previously, generateController could be accessed via the Ember import:
import Ember from 'ember';
Ember.generateController
generateController is also private.
There is no replacement for this API.
Ember.generateGuid
Previously, generateGuid could be accessed via the Ember import:
import Ember from 'ember';
Ember.generateGuid
generateGuid is also private.
There is no replacement for this API.
Ember.get
Previously, get could be accessed via the Ember import:
import Ember from 'ember';
Ember.get
If needed, get can be imported:
import { get } from '@ember/object';
Ember.getOwner
Previously, getOwner could be accessed via the Ember import:
import Ember from 'ember';
Ember.getOwner
If needed, getOwner can be imported:
import { getOwner } from '@ember/owner';
If you're working in a library and need to support earlier than ember-source@4.11, you may use @embroider/macros to selectively import from the old location
import {
macroCondition,
dependencySatisfies,
importSync,
} from '@embroider/macros';
let getOwner;
if (macroCondition(dependencySatisfies('ember-source', '>= 4.11'))) {
getOwner = importSync('@ember/owner').getOwner;
} else {
getOwner = importSync('@ember/application').getOwner;
}
Ember.getProperties
Previously, getProperties could be accessed via the Ember import:
import Ember from 'ember';
Ember.getProperties
If needed, getProperties can be imported:
import { getProperties } from '@ember/object';
Ember.guidFor
Previously, guidFor could be accessed via the Ember import:
import Ember from 'ember';
Ember.guidFor
If needed, guidFor can be imported:
import { guidFor } from '@ember/object/internals';
Ember.GUID_KEY
Previously, GUID_KEY could be accessed via the Ember import:
import Ember from 'ember';
Ember.GUID_KEY
GUID_KEY is also private.
There is no replacement for this API.
Ember.Handlebars
Previously, Handlebars could be accessed via the Ember import:
import Ember from 'ember';
Ember.Handlebars
There is no replacement for this API.
Ember.hasListeners
Previously, hasListeners could be accessed via the Ember import:
import Ember from 'ember';
Ember.hasListeners
There is no replacement for this API.
Ember.HashLocation
Previously, HashLocation could be accessed via the Ember import:
import Ember from 'ember';
Ember.HashLocation
If needed, HashLocation can be imported:
import HashLocation from '@ember/routing/hash-location';
Ember.Helper
Previously, Helper could be accessed via the Ember import:
import Ember from 'ember';
Ember.Helper
If needed, Helper can be imported:
import Helper from '@ember/component/helper';
Ember.HistoryLocation
Previously, HistoryLocation could be accessed via the Ember import:
import Ember from 'ember';
Ember.HistoryLocation
If needed, HistoryLocation can be imported:
import HistoryLocation from '@ember/routing/history-location';
Ember.HTMLBars
Previously, HTMLBars could be accessed via the Ember import:
import Ember from 'ember';
Ember.HTMLBars
There is no replacement for this API.
Ember.inject
Previously, inject could be accessed via the Ember import:
import Ember from 'ember';
Ember.inject
There is no replacement for this API.
Ember.inspect
Previously, inspect could be accessed via the Ember import:
import Ember from 'ember';
Ember.inspect
inspect is also private.
There is no replacement for this API.
Ember.instrument
Previously, instrument could be accessed via the Ember import:
import Ember from 'ember';
Ember.instrument
instrument is also private.
If needed, instrument can be imported:
import { instrument } from '@ember/instrumentation';
However, due to instrument being private, it is not recommended, nor supported.
Ember.Instrumentation
Previously, Instrumentation could be accessed via the Ember import:
import Ember from 'ember';
Ember.Instrumentation
Instrumentation is also private.
If needed, Instrumentation can be imported:
import { * } from '@ember/instrumentation';
However, due to Instrumentation being private, it is not recommended, nor supported.
Ember.isArray
Previously, isArray could be accessed via the Ember import:
import Ember from 'ember';
Ember.isArray
If needed, isArray can be imported:
import { isArray } from '@ember/array';
Ember.isBlank
Previously, isBlank could be accessed via the Ember import:
import Ember from 'ember';
Ember.isBlank
If needed, isBlank can be imported:
import { isBlank } from '@ember/utils';
Ember.isEmpty
Previously, isEmpty could be accessed via the Ember import:
import Ember from 'ember';
Ember.isEmpty
If needed, isEmpty can be imported:
import { isEmpty } from '@ember/utils';
Ember.isEqual
Previously, isEqual could be accessed via the Ember import:
import Ember from 'ember';
Ember.isEqual
If needed, isEqual can be imported:
import { isEqual } from '@ember/utils';
Ember.isNamespace
Previously, isNamespace could be accessed via the Ember import:
import Ember from 'ember';
Ember.isNamespace
There is no replacement for this API.
Ember.isPresent
Previously, isPresent could be accessed via the Ember import:
import Ember from 'ember';
Ember.isPresent
If needed, isPresent can be imported:
import { isPresent } from '@ember/utils';
Ember.libraries
Previously, libraries could be accessed via the Ember import:
import Ember from 'ember';
Ember.libraries
There is no replacement for this API.
If needed, libraries can be imported from a private module:
import { libraries } from '@ember/-internals/metal';
Instead of using this import, consider using a build plugin for your packager. Some options:
- https://github.com/ubilabs/webpack-node-modules-list
- https://github.com/yjl9903/unplugin-info
These are both more automatic than Ember's libraries utility.
Ember.lookup
Previously, lookup could be accessed via the Ember import:
import Ember from 'ember';
Ember.lookup
There is no replacement for this API.
Ember.makeArray
Previously, makeArray could be accessed via the Ember import:
import Ember from 'ember';
Ember.makeArray
makeArray is also private.
If needed, makeArray can be imported:
import { makeArray } from '@ember/array';
However, due to makeArray being private, it is not recommended, nor supported.
Ember.meta
Previously, meta could be accessed via the Ember import:
import Ember from 'ember';
Ember.meta
meta is also private.
If needed, meta can be imported:
import { meta } from '@ember/-internals/meta';
However, due to meta being private, it is not recommended, nor supported.
Ember.mixin
Previously, mixin could be accessed via the Ember import:
import Ember from 'ember';
Ember.mixin
mixin is also private.
If needed, mixin can be imported:
import { mixin } from '@ember/object/mixin';
However, due to mixin being private, it is not recommended, nor supported.
Ember.MutableArray
Previously, MutableArray could be accessed via the Ember import:
import Ember from 'ember';
Ember.MutableArray
If needed, MutableArray can be imported:
import MutableArray from '@ember/array/mutable';
Ember.MutableEnumerable
Previously, MutableEnumerable could be accessed via the Ember import:
import Ember from 'ember';
Ember.MutableEnumerable
MutableEnumerable is also private.
If needed, MutableEnumerable can be imported:
import MutableEnumerable from '@ember/enumerable/mutable';
However, due to MutableEnumerable being private, it is not recommended, nor supported.
Ember.Namespace
Previously, Namespace could be accessed via the Ember import:
import Ember from 'ember';
Ember.Namespace
If needed, Namespace can be imported:
import Namespace from '@ember/application/namespace';
Ember.NativeArray
Previously, NativeArray could be accessed via the Ember import:
import Ember from 'ember';
Ember.NativeArray
If needed, NativeArray can be imported:
import { NativeArray } from '@ember/array';
Ember.NoneLocation
Previously, NoneLocation could be accessed via the Ember import:
import Ember from 'ember';
Ember.NoneLocation
If needed, NoneLocation can be imported:
import NoneLocation from '@ember/routing/none-location';
Ember.notifyPropertyChange
Previously, notifyPropertyChange could be accessed via the Ember import:
import Ember from 'ember';
Ember.notifyPropertyChange
If needed, notifyPropertyChange can be imported:
import { notifyPropertyChange } from '@ember/object';
Ember.Object
Previously, Object could be accessed via the Ember import:
import Ember from 'ember';
Ember.Object
If needed, Object can be imported:
import Object from '@ember/object';
Ember.ObjectProxy
Previously, ObjectProxy could be accessed via the Ember import:
import Ember from 'ember';
Ember.ObjectProxy
If needed, ObjectProxy can be imported:
import ObjectProxy from '@ember/object/proxy';
Ember.Observable
Previously, Observable could be accessed via the Ember import:
import Ember from 'ember';
Ember.Observable
If needed, Observable can be imported:
import Observable from '@ember/object/observable';
Ember.observer
Previously, observer could be accessed via the Ember import:
import Ember from 'ember';
Ember.observer
If needed, observer can be imported:
import { observer } from '@ember/object';
Ember.on
Previously, on could be accessed via the Ember import:
import Ember from 'ember';
Ember.on
If needed, on can be imported:
import { on } from '@ember/object/evented';
Ember.onLoad
Previously, onLoad could be accessed via the Ember import:
import Ember from 'ember';
Ember.onLoad
If needed, onLoad can be imported:
import { onLoad } from '@ember/application';
Ember.onerror
Previously, onerror could be accessed via the Ember import:
import Ember from 'ember';
Ember.onerror
There is no replacement for this API.
Ember.PromiseProxyMixin
Previously, PromiseProxyMixin could be accessed via the Ember import:
import Ember from 'ember';
Ember.PromiseProxyMixin
If needed, PromiseProxyMixin can be imported:
import EmberPromiseProxyMixin from '@ember/object/promise-proxy-mixin';
Ember.Registry
Previously, Registry could be accessed via the Ember import:
import Ember from 'ember';
Ember.Registry
Registry is also private.
There is no replacement for this API.
Ember.removeListener
Previously, removeListener could be accessed via the Ember import:
import Ember from 'ember';
Ember.removeListener
If needed, removeListener can be imported:
import { removeListener } from '@ember/object/events';
Ember.removeObserver
Previously, removeObserver could be accessed via the Ember import:
import Ember from 'ember';
Ember.removeObserver
If needed, removeObserver can be imported:
import { removeObserver } from '@ember/object/observers';
Ember.Route
Previously, Route could be accessed via the Ember import:
import Ember from 'ember';
Ember.Route
If needed, Route can be imported:
import Route from '@ember/routing/route';
Ember.RouterDSL
Previously, RouterDSL could be accessed via the Ember import:
import Ember from 'ember';
Ember.RouterDSL
There is no replacement for this API.
Ember.RSVP
Previously, RSVP could be accessed via the Ember import:
import Ember from 'ember';
Ember.RSVP
If needed, RSVP can be imported:
import RSVP from 'rsvp';
Ember.run
Previously, run could be accessed via the Ember import:
import Ember from 'ember';
Ember.run
If needed, run can be imported:
import { run } from '@ember/runloop';
Ember.runInDebug
Previously, runInDebug could be accessed via the Ember import:
import Ember from 'ember';
Ember.runInDebug
If needed, runInDebug can be imported:
import { runInDebug } from '@ember/debug';
Ember.runLoadHooks
Previously, runLoadHooks could be accessed via the Ember import:
import Ember from 'ember';
Ember.runLoadHooks
If needed, runLoadHooks can be imported:
import { runLoadHooks } from '@ember/application';
Ember.sendEvent
Previously, sendEvent could be accessed via the Ember import:
import Ember from 'ember';
Ember.sendEvent
If needed, sendEvent can be imported:
import { sendEvent } from '@ember/object/events';
Ember.Service
Previously, Service could be accessed via the Ember import:
import Ember from 'ember';
Ember.Service
If needed, Service can be imported:
import Service from '@ember/service';
Ember.set
Previously, set could be accessed via the Ember import:
import Ember from 'ember';
Ember.set
If needed, set can be imported:
import { set } from '@ember/object';
Ember.setOwner
Previously, setOwner could be accessed via the Ember import:
import Ember from 'ember';
Ember.setOwner
If needed, setOwner can be imported:
import { setOwner } from '@ember/owner';
If you're working in a library and need to support earlier than ember-source@4.11, you may use @embroider/macros to selectively import from the old location
import {
macroCondition,
dependencySatisfies,
importSync,
} from '@embroider/macros';
let setOwner;
if (macroCondition(dependencySatisfies('ember-source', '>= 4.11'))) {
setOwner = importSync('@ember/owner').setOwner;
} else {
setOwner = importSync('@ember/application').setOwner;
}
Ember.setProperties
Previously, setProperties could be accessed via the Ember import:
import Ember from 'ember';
Ember.setProperties
If needed, setProperties can be imported:
import { setProperties } from '@ember/object';
Ember.setupForTesting
Previously, setupForTesting could be accessed via the Ember import:
import Ember from 'ember';
Ember.setupForTesting
There is no replacement for this API.
Ember.subscribe
Previously, subscribe could be accessed via the Ember import:
import Ember from 'ember';
Ember.subscribe
subscribe is also private.
If needed, subscribe can be imported:
import { subscribe } from '@ember/instrumentation';
However, due to subscribe being private, it is not recommended, nor supported.
Ember.TEMPLATES
Previously, TEMPLATES could be accessed via the Ember import:
import Ember from 'ember';
Ember.TEMPLATES
TEMPLATES is also private.
There is no replacement for this API.
Ember.Test
Previously, Test could be accessed via the Ember import:
import Ember from 'ember';
Ember.Test
There is no replacement for this API.
Ember.testing
Previously, testing could be accessed via the Ember import:
import Ember from 'ember';
Ember.testing
There is no replacement for this API.
Ember.toString
Previously, toString could be accessed via the Ember import:
import Ember from 'ember';
Ember.toString
There is no replacement for this API.
Ember.trySet
Previously, trySet could be accessed via the Ember import:
import Ember from 'ember';
Ember.trySet
If needed, trySet can be imported:
import { trySet } from '@ember/object';
Ember.typeOf
Previously, typeOf could be accessed via the Ember import:
import Ember from 'ember';
Ember.typeOf
If needed, typeOf can be imported:
import { typeOf } from '@ember/utils';
Ember.uuid
Previously, uuid could be accessed via the Ember import:
import Ember from 'ember';
Ember.uuid
There is no replacement for this API.
Ember.VERSION
Previously, VERSION could be accessed via the Ember import:
import Ember from 'ember';
Ember.VERSION
If needed, VERSION can be imported:
import { VERSION } from '@ember/version';
Ember.ViewUtils
Previously, ViewUtils could be accessed via the Ember import:
import Ember from 'ember';
Ember.ViewUtils
ViewUtils is also private.
If needed, ViewUtils can be imported:
import { isSerializationFirstNode } from '@ember/-internals/glimmer';
However, due to ViewUtils being private, it is not recommended, nor supported.