JSON data for RFC #176
Before | After |
---|---|
Ember.$ |
import $ from 'jquery'; |
Ember.A |
import { A } from '@ember/array'; |
Ember.Application |
import Application from '@ember/application'; |
Ember.ApplicationInstance |
import ApplicationInstance from '@ember/application/instance'; |
Ember.Array |
import EmberArray from '@ember/array'; |
Ember.ArrayProxy |
import ArrayProxy from '@ember/array/proxy'; |
Ember.AutoLocation |
import AutoLocation from '@ember/routing/auto-location'; |
Ember.Checkbox |
import Checkbox from '@ember/component/checkbox'; |
Ember.Component |
import Component from '@ember/component'; |
Ember.ComputedProperty |
import ComputedProperty from '@ember/object/computed'; |
Ember.ContainerDebugAdapter |
import ContainerDebugAdapter from '@ember/debug/container-debug-adapter'; |
Ember.Controller |
import Controller from '@ember/controller'; |
Ember.CoreObject |
import CoreObject from '@ember/object/core'; |
Ember.DataAdapter |
import DataAdapter from '@ember/debug/data-adapter'; |
Ember.Debug.registerDeprecationHandler |
import { registerDeprecationHandler } from '@ember/debug'; |
Ember.Debug.registerWarnHandler |
import { registerWarnHandler } from '@ember/debug'; |
Ember.DefaultResolver |
import GlobalsResolver from '@ember/application/globals-resolver'; |
Ember.Engine |
import Engine from '@ember/engine'; |
Ember.EngineInstance |
import EngineInstance from '@ember/engine/instance'; |
Ember.Enumerable |
import Enumerable from '@ember/enumerable'; |
Ember.Error |
import EmberError from '@ember/error'; |
Ember.Evented |
import Evented from '@ember/object/evented'; |
Ember.HashLocation |
import HashLocation from '@ember/routing/hash-location'; |
Ember.Helper |
import Helper from '@ember/component/helper'; |
Ember.Helper.helper |
import { helper } from '@ember/component/helper'; |
Ember.HistoryLocation |
import HistoryLocation from '@ember/routing/history-location'; |
Ember.LinkComponent |
import LinkComponent from '@ember/routing/link-component'; |
Ember.Location |
import Location from '@ember/routing/location'; |
Ember.Map |
import EmberMap from '@ember/map'; |
Ember.MapWithDefault |
import MapWithDefault from '@ember/map/with-default'; |
Ember.Mixin |
import Mixin from '@ember/object/mixin'; |
Ember.MutableArray |
import MutableArray from '@ember/array/mutable'; |
Ember.NoneLocation |
import NoneLocation from '@ember/routing/none-location'; |
Ember.Object |
import EmberObject from '@ember/object'; |
Ember.ObjectProxy |
import ObjectProxy from '@ember/object/proxy'; |
Ember.Observable |
import Observable from '@ember/object/observable'; |
Ember.PromiseProxyMixin |
import PromiseProxyMixin from '@ember/object/promise-proxy-mixin'; |
Ember.RSVP |
import RSVP from 'rsvp'; |
Ember.RSVP.Promise |
import { Promise } from 'rsvp'; |
Ember.RSVP.all |
import { all } from 'rsvp'; |
Ember.RSVP.allSettled |
import { allSettled } from 'rsvp'; |
Ember.RSVP.defer |
import { defer } from 'rsvp'; |
Ember.RSVP.denodeify |
import { denodeify } from 'rsvp'; |
Ember.RSVP.filter |
import { filter } from 'rsvp'; |
Ember.RSVP.hash |
import { hash } from 'rsvp'; |
Ember.RSVP.hashSettled |
import { hashSettled } from 'rsvp'; |
Ember.RSVP.map |
import { map } from 'rsvp'; |
Ember.RSVP.off |
import { off } from 'rsvp'; |
Ember.RSVP.on |
import { on } from 'rsvp'; |
Ember.RSVP.race |
import { race } from 'rsvp'; |
Ember.RSVP.reject |
import { reject } from 'rsvp'; |
Ember.RSVP.resolve |
import { resolve } from 'rsvp'; |
Ember.Resolver |
import Resolver from '@ember/application/resolver'; |
Ember.Route |
import Route from '@ember/routing/route'; |
Ember.Router |
import EmberRouter from '@ember/routing/router'; |
Ember.Service |
import Service from '@ember/service'; |
Ember.String.camelize |
import { camelize } from '@ember/string'; |
Ember.String.capitalize |
import { capitalize } from '@ember/string'; |
Ember.String.classify |
import { classify } from '@ember/string'; |
Ember.String.dasherize |
import { dasherize } from '@ember/string'; |
Ember.String.decamelize |
import { decamelize } from '@ember/string'; |
Ember.String.fmt |
import { fmt } from '@ember/string'; |
Ember.String.htmlSafe |
import { htmlSafe } from '@ember/string'; |
Ember.String.isHTMLSafe |
import { isHTMLSafe } from '@ember/string'; |
Ember.String.loc |
import { loc } from '@ember/string'; |
Ember.String.underscore |
import { underscore } from '@ember/string'; |
Ember.String.w |
import { w } from '@ember/string'; |
Ember.Test.Adapter |
import TestAdapter from '@ember/test/adapter'; |
Ember.Test.registerAsyncHelper |
import { registerAsyncHelper } from '@ember/test'; |
Ember.Test.registerHelper |
import { registerHelper } from '@ember/test'; |
Ember.Test.registerWaiter |
import { registerWaiter } from '@ember/test'; |
Ember.Test.unregisterHelper |
import { unregisterHelper } from '@ember/test'; |
Ember.Test.unregisterWaiter |
import { unregisterWaiter } from '@ember/test'; |
Ember.TextArea |
import TextArea from '@ember/component/text-area'; |
Ember.TextField |
import TextField from '@ember/component/text-field'; |
Ember.addListener |
import { addListener } from '@ember/object/events'; |
Ember.addObserver |
import { addObserver } from '@ember/object/observers'; |
Ember.aliasMethod |
import { aliasMethod } from '@ember/object'; |
Ember.assert |
import { assert } from '@ember/debug'; |
Ember.assign |
import { assign } from '@ember/polyfills'; |
Ember.cacheFor |
import { cacheFor } from '@ember/object/internals'; |
Ember.compare |
import { compare } from '@ember/utils'; |
Ember.computed |
import { computed } from '@ember/object'; |
Ember.computed.alias |
import { alias } from '@ember/object/computed'; |
Ember.computed.and |
import { and } from '@ember/object/computed'; |
Ember.computed.bool |
import { bool } from '@ember/object/computed'; |
Ember.computed.collect |
import { collect } from '@ember/object/computed'; |
Ember.computed.deprecatingAlias |
import { deprecatingAlias } from '@ember/object/computed'; |
Ember.computed.empty |
import { empty } from '@ember/object/computed'; |
Ember.computed.equal |
import { equal } from '@ember/object/computed'; |
Ember.computed.filter |
import { filter } from '@ember/object/computed'; |
Ember.computed.filterBy |
import { filterBy } from '@ember/object/computed'; |
Ember.computed.filterProperty |
import { filterProperty } from '@ember/object/computed'; |
Ember.computed.gt |
import { gt } from '@ember/object/computed'; |
Ember.computed.gte |
import { gte } from '@ember/object/computed'; |
Ember.computed.intersect |
import { intersect } from '@ember/object/computed'; |
Ember.computed.lt |
import { lt } from '@ember/object/computed'; |
Ember.computed.lte |
import { lte } from '@ember/object/computed'; |
Ember.computed.map |
import { map } from '@ember/object/computed'; |
Ember.computed.mapBy |
import { mapBy } from '@ember/object/computed'; |
Ember.computed.mapProperty |
import { mapProperty } from '@ember/object/computed'; |
Ember.computed.match |
import { match } from '@ember/object/computed'; |
Ember.computed.max |
import { max } from '@ember/object/computed'; |
Ember.computed.min |
import { min } from '@ember/object/computed'; |
Ember.computed.none |
import { none } from '@ember/object/computed'; |
Ember.computed.not |
import { not } from '@ember/object/computed'; |
Ember.computed.notEmpty |
import { notEmpty } from '@ember/object/computed'; |
Ember.computed.oneWay |
import { oneWay } from '@ember/object/computed'; |
Ember.computed.or |
import { or } from '@ember/object/computed'; |
Ember.computed.readOnly |
import { readOnly } from '@ember/object/computed'; |
Ember.computed.reads |
import { reads } from '@ember/object/computed'; |
Ember.computed.setDiff |
import { setDiff } from '@ember/object/computed'; |
Ember.computed.sort |
import { sort } from '@ember/object/computed'; |
Ember.computed.sum |
import { sum } from '@ember/object/computed'; |
Ember.computed.union |
import { union } from '@ember/object/computed'; |
Ember.computed.uniq |
import { uniq } from '@ember/object/computed'; |
Ember.computed.uniqBy |
import { uniqBy } from '@ember/object/computed'; |
Ember.copy |
import { copy } from '@ember/object/internals'; |
Ember.create |
import { create } from '@ember/polyfills'; |
Ember.debug |
import { debug } from '@ember/debug'; |
Ember.defineProperty |
import { defineProperty } from '@ember/object'; |
Ember.deprecate |
import { deprecate } from '@ember/application/deprecations'; |
Ember.deprecateFunc |
import { deprecateFunc } from '@ember/application/deprecations'; |
Ember.expandProperties |
import { expandProperties } from '@ember/object/computed'; |
Ember.get |
import { get } from '@ember/object'; |
Ember.getEngineParent |
import { getEngineParent } from '@ember/engine'; |
Ember.getOwner |
import { getOwner } from '@ember/application'; |
Ember.getProperties |
import { getProperties } from '@ember/object'; |
Ember.getWithDefault |
import { getWithDefault } from '@ember/object'; |
Ember.guidFor |
import { guidFor } from '@ember/object/internals'; |
Ember.inject.controller |
import { inject } from '@ember/controller'; |
Ember.inject.service |
import { inject } from '@ember/service'; |
Ember.inspect |
import { inspect } from '@ember/debug'; |
Ember.Instrumentation.instrument |
import { instrument } from '@ember/instrumentation'; |
Ember.isArray |
import { isArray } from '@ember/array'; |
Ember.isBlank |
import { isBlank } from '@ember/utils'; |
Ember.isEmpty |
import { isEmpty } from '@ember/utils'; |
Ember.isEqual |
import { isEqual } from '@ember/utils'; |
Ember.isNone |
import { isNone } from '@ember/utils'; |
Ember.isPresent |
import { isPresent } from '@ember/utils'; |
Ember.keys |
import { keys } from '@ember/polyfills'; |
Ember.makeArray |
import { makeArray } from '@ember/array'; |
Ember.merge |
import { merge } from '@ember/polyfills'; |
Ember.observer |
import { observer } from '@ember/object'; |
Ember.on |
import { on } from '@ember/object/evented'; |
Ember.onLoad |
import { onLoad } from '@ember/application'; |
Ember.platform.hasPropertyAccessors |
import { hasPropertyAccessors } from '@ember/polyfills'; |
Ember.removeListener |
import { removeListener } from '@ember/object/events'; |
Ember.removeObserver |
import { removeObserver } from '@ember/object/observers'; |
Ember.Instrumentation.reset |
import { reset } from '@ember/instrumentation'; |
Ember.run |
import { run } from '@ember/runloop'; |
Ember.run.begin |
import { begin } from '@ember/runloop'; |
Ember.run.bind |
import { bind } from '@ember/runloop'; |
Ember.run.cancel |
import { cancel } from '@ember/runloop'; |
Ember.run.debounce |
import { debounce } from '@ember/runloop'; |
Ember.run.end |
import { end } from '@ember/runloop'; |
Ember.run.join |
import { join } from '@ember/runloop'; |
Ember.run.later |
import { later } from '@ember/runloop'; |
Ember.run.next |
import { next } from '@ember/runloop'; |
Ember.run.once |
import { once } from '@ember/runloop'; |
Ember.run.schedule |
import { schedule } from '@ember/runloop'; |
Ember.run.scheduleOnce |
import { scheduleOnce } from '@ember/runloop'; |
Ember.run.throttle |
import { throttle } from '@ember/runloop'; |
Ember.runInDebug |
import { runInDebug } from '@ember/debug'; |
Ember.runLoadHooks |
import { runLoadHooks } from '@ember/application'; |
Ember.sendEvent |
import { sendEvent } from '@ember/object/events'; |
Ember.set |
import { set } from '@ember/object'; |
Ember.setOwner |
import { setOwner } from '@ember/application'; |
Ember.setProperties |
import { setProperties } from '@ember/object'; |
Ember.Instrumentation.subscribe |
import { subscribe } from '@ember/instrumentation'; |
Ember.tryInvoke |
import { tryInvoke } from '@ember/utils'; |
Ember.trySet |
import { trySet } from '@ember/object'; |
Ember.typeOf |
import { typeOf } from '@ember/utils'; |
Ember.Instrumentation.unsubscribe |
import { unsubscribe } from '@ember/instrumentation'; |
Ember.warn |
import { warn } from '@ember/debug'; |
@ember/application
Module | Global |
---|---|
import Application from '@ember/application'; |
Ember.Application |
import { getOwner } from '@ember/application'; |
Ember.getOwner |
import { onLoad } from '@ember/application'; |
Ember.onLoad |
import { runLoadHooks } from '@ember/application'; |
Ember.runLoadHooks |
import { setOwner } from '@ember/application'; |
Ember.setOwner |
import { deprecate } from '@ember/application/deprecations'; |
Ember.deprecate |
import { deprecateFunc } from '@ember/application/deprecations'; |
Ember.deprecateFunc |
import GlobalsResolver from '@ember/application/globals-resolver'; |
Ember.DefaultResolver |
import ApplicationInstance from '@ember/application/instance'; |
Ember.ApplicationInstance |
import Resolver from '@ember/application/resolver'; |
Ember.Resolver |
@ember/array
Module | Global |
---|---|
import EmberArray from '@ember/array'; |
Ember.Array |
import { A } from '@ember/array'; |
Ember.A |
import { isArray } from '@ember/array'; |
Ember.isArray |
import { makeArray } from '@ember/array'; |
Ember.makeArray |
import MutableArray from '@ember/array/mutable'; |
Ember.MutableArray |
import ArrayProxy from '@ember/array/proxy'; |
Ember.ArrayProxy |
@ember/component
Module | Global |
---|---|
import Component from '@ember/component'; |
Ember.Component |
import Checkbox from '@ember/component/checkbox'; |
Ember.Checkbox |
import Helper from '@ember/component/helper'; |
Ember.Helper |
import { helper } from '@ember/component/helper'; |
Ember.Helper.helper |
import TextArea from '@ember/component/text-area'; |
Ember.TextArea |
import TextField from '@ember/component/text-field'; |
Ember.TextField |
@ember/controller
Module | Global |
---|---|
import Controller from '@ember/controller'; |
Ember.Controller |
import { inject } from '@ember/controller'; |
Ember.inject.controller |
@ember/debug
Module | Global |
---|---|
import { assert } from '@ember/debug'; |
Ember.assert |
import { debug } from '@ember/debug'; |
Ember.debug |
import { inspect } from '@ember/debug'; |
Ember.inspect |
import { registerDeprecationHandler } from '@ember/debug'; |
Ember.Debug.registerDeprecationHandler |
import { registerWarnHandler } from '@ember/debug'; |
Ember.Debug.registerWarnHandler |
import { runInDebug } from '@ember/debug'; |
Ember.runInDebug |
import { warn } from '@ember/debug'; |
Ember.warn |
import ContainerDebugAdapter from '@ember/debug/container-debug-adapter'; |
Ember.ContainerDebugAdapter |
import DataAdapter from '@ember/debug/data-adapter'; |
Ember.DataAdapter |
@ember/engine
Module | Global |
---|---|
import Engine from '@ember/engine'; |
Ember.Engine |
import { getEngineParent } from '@ember/engine'; |
Ember.getEngineParent |
import EngineInstance from '@ember/engine/instance'; |
Ember.EngineInstance |
@ember/enumerable
Module | Global |
---|---|
import Enumerable from '@ember/enumerable'; |
Ember.Enumerable |
@ember/error
Module | Global |
---|---|
import EmberError from '@ember/error'; |
Ember.Error |
@ember/instrumentation
Module | Global |
---|---|
import { instrument } from '@ember/instrumentation'; |
Ember.Instrumentation.instrument |
import { reset } from '@ember/instrumentation'; |
Ember.Instrumentation.reset |
import { subscribe } from '@ember/instrumentation'; |
Ember.Instrumentation.subscribe |
import { unsubscribe } from '@ember/instrumentation'; |
Ember.Instrumentation.unsubscribe |
@ember/map
Module | Global |
---|---|
import EmberMap from '@ember/map'; |
Ember.Map |
import MapWithDefault from '@ember/map/with-default'; |
Ember.MapWithDefault |
@ember/object
Module | Global |
---|---|
import EmberObject from '@ember/object'; |
Ember.Object |
import { aliasMethod } from '@ember/object'; |
Ember.aliasMethod |
import { computed } from '@ember/object'; |
Ember.computed |
import { defineProperty } from '@ember/object'; |
Ember.defineProperty |
import { get } from '@ember/object'; |
Ember.get |
import { getProperties } from '@ember/object'; |
Ember.getProperties |
import { getWithDefault } from '@ember/object'; |
Ember.getWithDefault |
import { observer } from '@ember/object'; |
Ember.observer |
import { set } from '@ember/object'; |
Ember.set |
import { setProperties } from '@ember/object'; |
Ember.setProperties |
import { trySet } from '@ember/object'; |
Ember.trySet |
import ComputedProperty from '@ember/object/computed'; |
Ember.ComputedProperty |
import { alias } from '@ember/object/computed'; |
Ember.computed.alias |
import { and } from '@ember/object/computed'; |
Ember.computed.and |
import { bool } from '@ember/object/computed'; |
Ember.computed.bool |
import { collect } from '@ember/object/computed'; |
Ember.computed.collect |
import { deprecatingAlias } from '@ember/object/computed'; |
Ember.computed.deprecatingAlias |
import { empty } from '@ember/object/computed'; |
Ember.computed.empty |
import { equal } from '@ember/object/computed'; |
Ember.computed.equal |
import { expandProperties } from '@ember/object/computed'; |
Ember.expandProperties |
import { filter } from '@ember/object/computed'; |
Ember.computed.filter |
import { filterBy } from '@ember/object/computed'; |
Ember.computed.filterBy |
import { filterProperty } from '@ember/object/computed'; |
Ember.computed.filterProperty |
import { gt } from '@ember/object/computed'; |
Ember.computed.gt |
import { gte } from '@ember/object/computed'; |
Ember.computed.gte |
import { intersect } from '@ember/object/computed'; |
Ember.computed.intersect |
import { lt } from '@ember/object/computed'; |
Ember.computed.lt |
import { lte } from '@ember/object/computed'; |
Ember.computed.lte |
import { map } from '@ember/object/computed'; |
Ember.computed.map |
import { mapBy } from '@ember/object/computed'; |
Ember.computed.mapBy |
import { mapProperty } from '@ember/object/computed'; |
Ember.computed.mapProperty |
import { match } from '@ember/object/computed'; |
Ember.computed.match |
import { max } from '@ember/object/computed'; |
Ember.computed.max |
import { min } from '@ember/object/computed'; |
Ember.computed.min |
import { none } from '@ember/object/computed'; |
Ember.computed.none |
import { not } from '@ember/object/computed'; |
Ember.computed.not |
import { notEmpty } from '@ember/object/computed'; |
Ember.computed.notEmpty |
import { oneWay } from '@ember/object/computed'; |
Ember.computed.oneWay |
import { or } from '@ember/object/computed'; |
Ember.computed.or |
import { readOnly } from '@ember/object/computed'; |
Ember.computed.readOnly |
import { reads } from '@ember/object/computed'; |
Ember.computed.reads |
import { setDiff } from '@ember/object/computed'; |
Ember.computed.setDiff |
import { sort } from '@ember/object/computed'; |
Ember.computed.sort |
import { sum } from '@ember/object/computed'; |
Ember.computed.sum |
import { union } from '@ember/object/computed'; |
Ember.computed.union |
import { uniq } from '@ember/object/computed'; |
Ember.computed.uniq |
import { uniqBy } from '@ember/object/computed'; |
Ember.computed.uniqBy |
import CoreObject from '@ember/object/core'; |
Ember.CoreObject |
import Evented from '@ember/object/evented'; |
Ember.Evented |
import { on } from '@ember/object/evented'; |
Ember.on |
import { addListener } from '@ember/object/events'; |
Ember.addListener |
import { removeListener } from '@ember/object/events'; |
Ember.removeListener |
import { sendEvent } from '@ember/object/events'; |
Ember.sendEvent |
import { cacheFor } from '@ember/object/internals'; |
Ember.cacheFor |
import { copy } from '@ember/object/internals'; |
Ember.copy |
import { guidFor } from '@ember/object/internals'; |
Ember.guidFor |
import Mixin from '@ember/object/mixin'; |
Ember.Mixin |
import Observable from '@ember/object/observable'; |
Ember.Observable |
import { addObserver } from '@ember/object/observers'; |
Ember.addObserver |
import { removeObserver } from '@ember/object/observers'; |
Ember.removeObserver |
import PromiseProxyMixin from '@ember/object/promise-proxy-mixin'; |
Ember.PromiseProxyMixin |
import ObjectProxy from '@ember/object/proxy'; |
Ember.ObjectProxy |
@ember/polyfills
Module | Global |
---|---|
import { assign } from '@ember/polyfills'; |
Ember.assign |
import { create } from '@ember/polyfills'; |
Ember.create |
import { hasPropertyAccessors } from '@ember/polyfills'; |
Ember.platform.hasPropertyAccessors |
import { keys } from '@ember/polyfills'; |
Ember.keys |
import { merge } from '@ember/polyfills'; |
Ember.merge |
@ember/routing
Module | Global |
---|---|
import AutoLocation from '@ember/routing/auto-location'; |
Ember.AutoLocation |
import HashLocation from '@ember/routing/hash-location'; |
Ember.HashLocation |
import HistoryLocation from '@ember/routing/history-location'; |
Ember.HistoryLocation |
import LinkComponent from '@ember/routing/link-component'; |
Ember.LinkComponent |
import Location from '@ember/routing/location'; |
Ember.Location |
import NoneLocation from '@ember/routing/none-location'; |
Ember.NoneLocation |
import Route from '@ember/routing/route'; |
Ember.Route |
import EmberRouter from '@ember/routing/router'; |
Ember.Router |
@ember/runloop
Module | Global |
---|---|
import { begin } from '@ember/runloop'; |
Ember.run.begin |
import { bind } from '@ember/runloop'; |
Ember.run.bind |
import { cancel } from '@ember/runloop'; |
Ember.run.cancel |
import { debounce } from '@ember/runloop'; |
Ember.run.debounce |
import { end } from '@ember/runloop'; |
Ember.run.end |
import { join } from '@ember/runloop'; |
Ember.run.join |
import { later } from '@ember/runloop'; |
Ember.run.later |
import { next } from '@ember/runloop'; |
Ember.run.next |
import { once } from '@ember/runloop'; |
Ember.run.once |
import { run } from '@ember/runloop'; |
Ember.run |
import { schedule } from '@ember/runloop'; |
Ember.run.schedule |
import { scheduleOnce } from '@ember/runloop'; |
Ember.run.scheduleOnce |
import { throttle } from '@ember/runloop'; |
Ember.run.throttle |
@ember/service
Module | Global |
---|---|
import Service from '@ember/service'; |
Ember.Service |
import { inject } from '@ember/service'; |
Ember.inject.service |
@ember/string
Module | Global |
---|---|
import { camelize } from '@ember/string'; |
Ember.String.camelize |
import { capitalize } from '@ember/string'; |
Ember.String.capitalize |
import { classify } from '@ember/string'; |
Ember.String.classify |
import { dasherize } from '@ember/string'; |
Ember.String.dasherize |
import { decamelize } from '@ember/string'; |
Ember.String.decamelize |
import { fmt } from '@ember/string'; |
Ember.String.fmt |
import { htmlSafe } from '@ember/string'; |
Ember.String.htmlSafe |
import { isHTMLSafe } from '@ember/string'; |
Ember.String.isHTMLSafe |
import { loc } from '@ember/string'; |
Ember.String.loc |
import { underscore } from '@ember/string'; |
Ember.String.underscore |
import { w } from '@ember/string'; |
Ember.String.w |
@ember/test
Module | Global |
---|---|
import { registerAsyncHelper } from '@ember/test'; |
Ember.Test.registerAsyncHelper |
import { registerHelper } from '@ember/test'; |
Ember.Test.registerHelper |
import { registerWaiter } from '@ember/test'; |
Ember.Test.registerWaiter |
import { unregisterHelper } from '@ember/test'; |
Ember.Test.unregisterHelper |
import { unregisterWaiter } from '@ember/test'; |
Ember.Test.unregisterWaiter |
import TestAdapter from '@ember/test/adapter'; |
Ember.Test.Adapter |
@ember/utils
Module | Global |
---|---|
import { compare } from '@ember/utils'; |
Ember.compare |
import { isBlank } from '@ember/utils'; |
Ember.isBlank |
import { isEmpty } from '@ember/utils'; |
Ember.isEmpty |
import { isEqual } from '@ember/utils'; |
Ember.isEqual |
import { isNone } from '@ember/utils'; |
Ember.isNone |
import { isPresent } from '@ember/utils'; |
Ember.isPresent |
import { tryInvoke } from '@ember/utils'; |
Ember.tryInvoke |
import { typeOf } from '@ember/utils'; |
Ember.typeOf |
jquery
Module | Global |
---|---|
import $ from 'jquery'; |
Ember.$ |
rsvp
Module | Global |
---|---|
import RSVP from 'rsvp'; |
Ember.RSVP |
import { Promise } from 'rsvp'; |
Ember.RSVP.Promise |
import { all } from 'rsvp'; |
Ember.RSVP.all |
import { allSettled } from 'rsvp'; |
Ember.RSVP.allSettled |
import { defer } from 'rsvp'; |
Ember.RSVP.defer |
import { denodeify } from 'rsvp'; |
Ember.RSVP.denodeify |
import { filter } from 'rsvp'; |
Ember.RSVP.filter |
import { hash } from 'rsvp'; |
Ember.RSVP.hash |
import { hashSettled } from 'rsvp'; |
Ember.RSVP.hashSettled |
import { map } from 'rsvp'; |
Ember.RSVP.map |
import { off } from 'rsvp'; |
Ember.RSVP.off |
import { on } from 'rsvp'; |
Ember.RSVP.on |
import { race } from 'rsvp'; |
Ember.RSVP.race |
import { reject } from 'rsvp'; |
Ember.RSVP.reject |
import { resolve } from 'rsvp'; |
Ember.RSVP.resolve |
The tables above can be generated using the scripts in the scripts
folder, e.g.:
scripts/generate-markdown-table
If you want to change how globals are mapped into modules, you will find
the data structure that controls that in globals.json
. The structure
is:
{
"globalPath": ["moduleName", "namedExport"?, "localName"?]
}
Only the first item in the array is mandatory. The second item is only needed for named exports. The third item is only necessary if the local identifier the import is bound to should be different than named export (or the previous global version, in the case of default exports).
A few examples:
Ember.Application
⟹ "Application": ["@ember/application"]
⟹ import Application from "@ember/application"
Ember.computed.or
⟹ "computed.or": ["@ember/object/computed", "or"]
⟹ import { or } from "@ember/object/computed"
Ember.DefaultResolver
⟹ "DefaultResolver": ["@ember/application/globals-resolver", null, "GlobalsResolver"]
⟹ import GlobalsResolver from "@ember/application/globals-resolver"
In some cases, Ember's names may conflict with names built in to the language. In those cases, we should not inadvertently shadow those identifiers.
import Object from "@ember/object";
// ...later
Object.keys(obj);
// oops! TypeError: Object.keys is not a function
A list of reserved identifiers (including Object
) is included in
reserved.json
. Anything that appears in this list should be prefixed with
Ember
; so, for example, import Object from "@ember/object"
should become
import EmberObject from "@ember/object"
.
ember-rfc176-data ============================================================================== JSON data for [RFC #176](https://github.com/emberjs/rfcs/blob/master/text/0176-javascript-module-api.md) ### Related Projects - [babel-plugin-ember-modules-api-polyfill](https://github.com/ember-cli/babel-plugin-ember-modules-api-polyfill) - [ember-modules-codemod](https://github.com/ember-cli/ember-modules-codemod) ## Contents ### New Modules to Globals | Before | After | | --- | --- | | `Ember.$` | `import $ from 'jquery';` | | `Ember.A` | `import { A } from '@ember/array';` | | `Ember.Application` | `import Application from '@ember/application';` | | `Ember.ApplicationInstance` | `import ApplicationInstance from '@ember/application/instance';` | | `Ember.Array` | `import EmberArray from '@ember/array';` | | `Ember.ArrayProxy` | `import ArrayProxy from '@ember/array/proxy';` | | `Ember.AutoLocation` | `import AutoLocation from '@ember/routing/auto-location';` | | `Ember.Checkbox` | `import Checkbox from '@ember/component/checkbox';` | | `Ember.Component` | `import Component from '@ember/component';` | | `Ember.ComputedProperty` | `import ComputedProperty from '@ember/object/computed';` | | `Ember.ContainerDebugAdapter` | `import ContainerDebugAdapter from '@ember/debug/container-debug-adapter';` | | `Ember.Controller` | `import Controller from '@ember/controller';` | | `Ember.CoreObject` | `import CoreObject from '@ember/object/core';` | | `Ember.DataAdapter` | `import DataAdapter from '@ember/debug/data-adapter';` | | `Ember.Debug.registerDeprecationHandler` | `import { registerDeprecationHandler } from '@ember/debug';` | | `Ember.Debug.registerWarnHandler` | `import { registerWarnHandler } from '@ember/debug';` | | `Ember.DefaultResolver` | `import GlobalsResolver from '@ember/application/globals-resolver';` | | `Ember.Engine` | `import Engine from '@ember/engine';` | | `Ember.EngineInstance` | `import EngineInstance from '@ember/engine/instance';` | | `Ember.Enumerable` | `import Enumerable from '@ember/enumerable';` | | `Ember.Error` | `import EmberError from '@ember/error';` | | `Ember.Evented` | `import Evented from '@ember/object/evented';` | | `Ember.HashLocation` | `import HashLocation from '@ember/routing/hash-location';` | | `Ember.Helper` | `import Helper from '@ember/component/helper';` | | `Ember.Helper.helper` | `import { helper } from '@ember/component/helper';` | | `Ember.HistoryLocation` | `import HistoryLocation from '@ember/routing/history-location';` | | `Ember.LinkComponent` | `import LinkComponent from '@ember/routing/link-component';` | | `Ember.Location` | `import Location from '@ember/routing/location';` | | `Ember.Map` | `import EmberMap from '@ember/map';` | | `Ember.MapWithDefault` | `import MapWithDefault from '@ember/map/with-default';` | | `Ember.Mixin` | `import Mixin from '@ember/object/mixin';` | | `Ember.MutableArray` | `import MutableArray from '@ember/array/mutable';` | | `Ember.NoneLocation` | `import NoneLocation from '@ember/routing/none-location';` | | `Ember.Object` | `import EmberObject from '@ember/object';` | | `Ember.ObjectProxy` | `import ObjectProxy from '@ember/object/proxy';` | | `Ember.Observable` | `import Observable from '@ember/object/observable';` | | `Ember.PromiseProxyMixin` | `import PromiseProxyMixin from '@ember/object/promise-proxy-mixin';` | | `Ember.RSVP` | `import RSVP from 'rsvp';` | | `Ember.RSVP.Promise` | `import { Promise } from 'rsvp';` | | `Ember.RSVP.all` | `import { all } from 'rsvp';` | | `Ember.RSVP.allSettled` | `import { allSettled } from 'rsvp';` | | `Ember.RSVP.defer` | `import { defer } from 'rsvp';` | | `Ember.RSVP.denodeify` | `import { denodeify } from 'rsvp';` | | `Ember.RSVP.filter` | `import { filter } from 'rsvp';` | | `Ember.RSVP.hash` | `import { hash } from 'rsvp';` | | `Ember.RSVP.hashSettled` | `import { hashSettled } from 'rsvp';` | | `Ember.RSVP.map` | `import { map } from 'rsvp';` | | `Ember.RSVP.off` | `import { off } from 'rsvp';` | | `Ember.RSVP.on` | `import { on } from 'rsvp';` | | `Ember.RSVP.race` | `import { race } from 'rsvp';` | | `Ember.RSVP.reject` | `import { reject } from 'rsvp';` | | `Ember.RSVP.resolve` | `import { resolve } from 'rsvp';` | | `Ember.Resolver` | `import Resolver from '@ember/application/resolver';` | | `Ember.Route` | `import Route from '@ember/routing/route';` | | `Ember.Router` | `import EmberRouter from '@ember/routing/router';` | | `Ember.Service` | `import Service from '@ember/service';` | | `Ember.String.camelize` | `import { camelize } from '@ember/string';` | | `Ember.String.capitalize` | `import { capitalize } from '@ember/string';` | | `Ember.String.classify` | `import { classify } from '@ember/string';` | | `Ember.String.dasherize` | `import { dasherize } from '@ember/string';` | | `Ember.String.decamelize` | `import { decamelize } from '@ember/string';` | | `Ember.String.fmt` | `import { fmt } from '@ember/string';` | | `Ember.String.htmlSafe` | `import { htmlSafe } from '@ember/string';` | | `Ember.String.isHTMLSafe` | `import { isHTMLSafe } from '@ember/string';` | | `Ember.String.loc` | `import { loc } from '@ember/string';` | | `Ember.String.underscore` | `import { underscore } from '@ember/string';` | | `Ember.String.w` | `import { w } from '@ember/string';` | | `Ember.Test.Adapter` | `import TestAdapter from '@ember/test/adapter';` | | `Ember.Test.registerAsyncHelper` | `import { registerAsyncHelper } from '@ember/test';` | | `Ember.Test.registerHelper` | `import { registerHelper } from '@ember/test';` | | `Ember.Test.registerWaiter` | `import { registerWaiter } from '@ember/test';` | | `Ember.Test.unregisterHelper` | `import { unregisterHelper } from '@ember/test';` | | `Ember.Test.unregisterWaiter` | `import { unregisterWaiter } from '@ember/test';` | | `Ember.TextArea` | `import TextArea from '@ember/component/text-area';` | | `Ember.TextField` | `import TextField from '@ember/component/text-field';` | | `Ember.addListener` | `import { addListener } from '@ember/object/events';` | | `Ember.addObserver` | `import { addObserver } from '@ember/object/observers';` | | `Ember.aliasMethod` | `import { aliasMethod } from '@ember/object';` | | `Ember.assert` | `import { assert } from '@ember/debug';` | | `Ember.assign` | `import { assign } from '@ember/polyfills';` | | `Ember.cacheFor` | `import { cacheFor } from '@ember/object/internals';` | | `Ember.compare` | `import { compare } from '@ember/utils';` | | `Ember.computed` | `import { computed } from '@ember/object';` | | `Ember.computed.alias` | `import { alias } from '@ember/object/computed';` | | `Ember.computed.and` | `import { and } from '@ember/object/computed';` | | `Ember.computed.bool` | `import { bool } from '@ember/object/computed';` | | `Ember.computed.collect` | `import { collect } from '@ember/object/computed';` | | `Ember.computed.deprecatingAlias` | `import { deprecatingAlias } from '@ember/object/computed';` | | `Ember.computed.empty` | `import { empty } from '@ember/object/computed';` | | `Ember.computed.equal` | `import { equal } from '@ember/object/computed';` | | `Ember.computed.filter` | `import { filter } from '@ember/object/computed';` | | `Ember.computed.filterBy` | `import { filterBy } from '@ember/object/computed';` | | `Ember.computed.filterProperty` | `import { filterProperty } from '@ember/object/computed';` | | `Ember.computed.gt` | `import { gt } from '@ember/object/computed';` | | `Ember.computed.gte` | `import { gte } from '@ember/object/computed';` | | `Ember.computed.intersect` | `import { intersect } from '@ember/object/computed';` | | `Ember.computed.lt` | `import { lt } from '@ember/object/computed';` | | `Ember.computed.lte` | `import { lte } from '@ember/object/computed';` | | `Ember.computed.map` | `import { map } from '@ember/object/computed';` | | `Ember.computed.mapBy` | `import { mapBy } from '@ember/object/computed';` | | `Ember.computed.mapProperty` | `import { mapProperty } from '@ember/object/computed';` | | `Ember.computed.match` | `import { match } from '@ember/object/computed';` | | `Ember.computed.max` | `import { max } from '@ember/object/computed';` | | `Ember.computed.min` | `import { min } from '@ember/object/computed';` | | `Ember.computed.none` | `import { none } from '@ember/object/computed';` | | `Ember.computed.not` | `import { not } from '@ember/object/computed';` | | `Ember.computed.notEmpty` | `import { notEmpty } from '@ember/object/computed';` | | `Ember.computed.oneWay` | `import { oneWay } from '@ember/object/computed';` | | `Ember.computed.or` | `import { or } from '@ember/object/computed';` | | `Ember.computed.readOnly` | `import { readOnly } from '@ember/object/computed';` | | `Ember.computed.reads` | `import { reads } from '@ember/object/computed';` | | `Ember.computed.setDiff` | `import { setDiff } from '@ember/object/computed';` | | `Ember.computed.sort` | `import { sort } from '@ember/object/computed';` | | `Ember.computed.sum` | `import { sum } from '@ember/object/computed';` | | `Ember.computed.union` | `import { union } from '@ember/object/computed';` | | `Ember.computed.uniq` | `import { uniq } from '@ember/object/computed';` | | `Ember.computed.uniqBy` | `import { uniqBy } from '@ember/object/computed';` | | `Ember.copy` | `import { copy } from '@ember/object/internals';` | | `Ember.create` | `import { create } from '@ember/polyfills';` | | `Ember.debug` | `import { debug } from '@ember/debug';` | | `Ember.defineProperty` | `import { defineProperty } from '@ember/object';` | | `Ember.deprecate` | `import { deprecate } from '@ember/application/deprecations';` | | `Ember.deprecateFunc` | `import { deprecateFunc } from '@ember/application/deprecations';` | | `Ember.expandProperties` | `import { expandProperties } from '@ember/object/computed';` | | `Ember.get` | `import { get } from '@ember/object';` | | `Ember.getEngineParent` | `import { getEngineParent } from '@ember/engine';` | | `Ember.getOwner` | `import { getOwner } from '@ember/application';` | | `Ember.getProperties` | `import { getProperties } from '@ember/object';` | | `Ember.getWithDefault` | `import { getWithDefault } from '@ember/object';` | | `Ember.guidFor` | `import { guidFor } from '@ember/object/internals';` | | `Ember.inject.controller` | `import { inject } from '@ember/controller';` | | `Ember.inject.service` | `import { inject } from '@ember/service';` | | `Ember.inspect` | `import { inspect } from '@ember/debug';` | | `Ember.Instrumentation.instrument` | `import { instrument } from '@ember/instrumentation';` | | `Ember.isArray` | `import { isArray } from '@ember/array';` | | `Ember.isBlank` | `import { isBlank } from '@ember/utils';` | | `Ember.isEmpty` | `import { isEmpty } from '@ember/utils';` | | `Ember.isEqual` | `import { isEqual } from '@ember/utils';` | | `Ember.isNone` | `import { isNone } from '@ember/utils';` | | `Ember.isPresent` | `import { isPresent } from '@ember/utils';` | | `Ember.keys` | `import { keys } from '@ember/polyfills';` | | `Ember.makeArray` | `import { makeArray } from '@ember/array';` | | `Ember.merge` | `import { merge } from '@ember/polyfills';` | | `Ember.observer` | `import { observer } from '@ember/object';` | | `Ember.on` | `import { on } from '@ember/object/evented';` | | `Ember.onLoad` | `import { onLoad } from '@ember/application';` | | `Ember.platform.hasPropertyAccessors` | `import { hasPropertyAccessors } from '@ember/polyfills';` | | `Ember.removeListener` | `import { removeListener } from '@ember/object/events';` | | `Ember.removeObserver` | `import { removeObserver } from '@ember/object/observers';` | | `Ember.Instrumentation.reset` | `import { reset } from '@ember/instrumentation';` | | `Ember.run` | `import { run } from '@ember/runloop';` | | `Ember.run.begin` | `import { begin } from '@ember/runloop';` | | `Ember.run.bind` | `import { bind } from '@ember/runloop';` | | `Ember.run.cancel` | `import { cancel } from '@ember/runloop';` | | `Ember.run.debounce` | `import { debounce } from '@ember/runloop';` | | `Ember.run.end` | `import { end } from '@ember/runloop';` | | `Ember.run.join` | `import { join } from '@ember/runloop';` | | `Ember.run.later` | `import { later } from '@ember/runloop';` | | `Ember.run.next` | `import { next } from '@ember/runloop';` | | `Ember.run.once` | `import { once } from '@ember/runloop';` | | `Ember.run.schedule` | `import { schedule } from '@ember/runloop';` | | `Ember.run.scheduleOnce` | `import { scheduleOnce } from '@ember/runloop';` | | `Ember.run.throttle` | `import { throttle } from '@ember/runloop';` | | `Ember.runInDebug` | `import { runInDebug } from '@ember/debug';` | | `Ember.runLoadHooks` | `import { runLoadHooks } from '@ember/application';` | | `Ember.sendEvent` | `import { sendEvent } from '@ember/object/events';` | | `Ember.set` | `import { set } from '@ember/object';` | | `Ember.setOwner` | `import { setOwner } from '@ember/application';` | | `Ember.setProperties` | `import { setProperties } from '@ember/object';` | | `Ember.Instrumentation.subscribe` | `import { subscribe } from '@ember/instrumentation';` | | `Ember.tryInvoke` | `import { tryInvoke } from '@ember/utils';` | | `Ember.trySet` | `import { trySet } from '@ember/object';` | | `Ember.typeOf` | `import { typeOf } from '@ember/utils';` | | `Ember.Instrumentation.unsubscribe` | `import { unsubscribe } from '@ember/instrumentation';` | | `Ember.warn` | `import { warn } from '@ember/debug';` | ### New Modules to Globals #### `@ember/application` | Module | Global | | --- | --- | | `import Application from '@ember/application';` | `Ember.Application` | | `import { getOwner } from '@ember/application';` | `Ember.getOwner` | | `import { onLoad } from '@ember/application';` | `Ember.onLoad` | | `import { runLoadHooks } from '@ember/application';` | `Ember.runLoadHooks` | | `import { setOwner } from '@ember/application';` | `Ember.setOwner` | | `import { deprecate } from '@ember/application/deprecations';` | `Ember.deprecate` | | `import { deprecateFunc } from '@ember/application/deprecations';` | `Ember.deprecateFunc` | | `import GlobalsResolver from '@ember/application/globals-resolver';` | `Ember.DefaultResolver` | | `import ApplicationInstance from '@ember/application/instance';` | `Ember.ApplicationInstance` | | `import Resolver from '@ember/application/resolver';` | `Ember.Resolver` | #### `@ember/array` | Module | Global | | --- | --- | | `import EmberArray from '@ember/array';` | `Ember.Array` | | `import { A } from '@ember/array';` | `Ember.A` | | `import { isArray } from '@ember/array';` | `Ember.isArray` | | `import { makeArray } from '@ember/array';` | `Ember.makeArray` | | `import MutableArray from '@ember/array/mutable';` | `Ember.MutableArray` | | `import ArrayProxy from '@ember/array/proxy';` | `Ember.ArrayProxy` | #### `@ember/component` | Module | Global | | --- | --- | | `import Component from '@ember/component';` | `Ember.Component` | | `import Checkbox from '@ember/component/checkbox';` | `Ember.Checkbox` | | `import Helper from '@ember/component/helper';` | `Ember.Helper` | | `import { helper } from '@ember/component/helper';` | `Ember.Helper.helper` | | `import TextArea from '@ember/component/text-area';` | `Ember.TextArea` | | `import TextField from '@ember/component/text-field';` | `Ember.TextField` | #### `@ember/controller` | Module | Global | | --- | --- | | `import Controller from '@ember/controller';` | `Ember.Controller` | | `import { inject } from '@ember/controller';` | `Ember.inject.controller` | #### `@ember/debug` | Module | Global | | --- | --- | | `import { assert } from '@ember/debug';` | `Ember.assert` | | `import { debug } from '@ember/debug';` | `Ember.debug` | | `import { inspect } from '@ember/debug';` | `Ember.inspect` | | `import { registerDeprecationHandler } from '@ember/debug';` | `Ember.Debug.registerDeprecationHandler` | | `import { registerWarnHandler } from '@ember/debug';` | `Ember.Debug.registerWarnHandler` | | `import { runInDebug } from '@ember/debug';` | `Ember.runInDebug` | | `import { warn } from '@ember/debug';` | `Ember.warn` | | `import ContainerDebugAdapter from '@ember/debug/container-debug-adapter';` | `Ember.ContainerDebugAdapter` | | `import DataAdapter from '@ember/debug/data-adapter';` | `Ember.DataAdapter` | #### `@ember/engine` | Module | Global | | --- | --- | | `import Engine from '@ember/engine';` | `Ember.Engine` | | `import { getEngineParent } from '@ember/engine';` | `Ember.getEngineParent` | | `import EngineInstance from '@ember/engine/instance';` | `Ember.EngineInstance` | #### `@ember/enumerable` | Module | Global | | --- | --- | | `import Enumerable from '@ember/enumerable';` | `Ember.Enumerable` | #### `@ember/error` | Module | Global | | --- | --- | | `import EmberError from '@ember/error';` | `Ember.Error` | #### `@ember/instrumentation` | Module | Global | | --- | --- | | `import { instrument } from '@ember/instrumentation';` | `Ember.Instrumentation.instrument` | | `import { reset } from '@ember/instrumentation';` | `Ember.Instrumentation.reset` | | `import { subscribe } from '@ember/instrumentation';` | `Ember.Instrumentation.subscribe` | | `import { unsubscribe } from '@ember/instrumentation';` | `Ember.Instrumentation.unsubscribe` | #### `@ember/map` | Module | Global | | --- | --- | | `import EmberMap from '@ember/map';` | `Ember.Map` | | `import MapWithDefault from '@ember/map/with-default';` | `Ember.MapWithDefault` | #### `@ember/object` | Module | Global | | --- | --- | | `import EmberObject from '@ember/object';` | `Ember.Object` | | `import { aliasMethod } from '@ember/object';` | `Ember.aliasMethod` | | `import { computed } from '@ember/object';` | `Ember.computed` | | `import { defineProperty } from '@ember/object';` | `Ember.defineProperty` | | `import { get } from '@ember/object';` | `Ember.get` | | `import { getProperties } from '@ember/object';` | `Ember.getProperties` | | `import { getWithDefault } from '@ember/object';` | `Ember.getWithDefault` | | `import { observer } from '@ember/object';` | `Ember.observer` | | `import { set } from '@ember/object';` | `Ember.set` | | `import { setProperties } from '@ember/object';` | `Ember.setProperties` | | `import { trySet } from '@ember/object';` | `Ember.trySet` | | `import ComputedProperty from '@ember/object/computed';` | `Ember.ComputedProperty` | | `import { alias } from '@ember/object/computed';` | `Ember.computed.alias` | | `import { and } from '@ember/object/computed';` | `Ember.computed.and` | | `import { bool } from '@ember/object/computed';` | `Ember.computed.bool` | | `import { collect } from '@ember/object/computed';` | `Ember.computed.collect` | | `import { deprecatingAlias } from '@ember/object/computed';` | `Ember.computed.deprecatingAlias` | | `import { empty } from '@ember/object/computed';` | `Ember.computed.empty` | | `import { equal } from '@ember/object/computed';` | `Ember.computed.equal` | | `import { expandProperties } from '@ember/object/computed';` | `Ember.expandProperties` | | `import { filter } from '@ember/object/computed';` | `Ember.computed.filter` | | `import { filterBy } from '@ember/object/computed';` | `Ember.computed.filterBy` | | `import { filterProperty } from '@ember/object/computed';` | `Ember.computed.filterProperty` | | `import { gt } from '@ember/object/computed';` | `Ember.computed.gt` | | `import { gte } from '@ember/object/computed';` | `Ember.computed.gte` | | `import { intersect } from '@ember/object/computed';` | `Ember.computed.intersect` | | `import { lt } from '@ember/object/computed';` | `Ember.computed.lt` | | `import { lte } from '@ember/object/computed';` | `Ember.computed.lte` | | `import { map } from '@ember/object/computed';` | `Ember.computed.map` | | `import { mapBy } from '@ember/object/computed';` | `Ember.computed.mapBy` | | `import { mapProperty } from '@ember/object/computed';` | `Ember.computed.mapProperty` | | `import { match } from '@ember/object/computed';` | `Ember.computed.match` | | `import { max } from '@ember/object/computed';` | `Ember.computed.max` | | `import { min } from '@ember/object/computed';` | `Ember.computed.min` | | `import { none } from '@ember/object/computed';` | `Ember.computed.none` | | `import { not } from '@ember/object/computed';` | `Ember.computed.not` | | `import { notEmpty } from '@ember/object/computed';` | `Ember.computed.notEmpty` | | `import { oneWay } from '@ember/object/computed';` | `Ember.computed.oneWay` | | `import { or } from '@ember/object/computed';` | `Ember.computed.or` | | `import { readOnly } from '@ember/object/computed';` | `Ember.computed.readOnly` | | `import { reads } from '@ember/object/computed';` | `Ember.computed.reads` | | `import { setDiff } from '@ember/object/computed';` | `Ember.computed.setDiff` | | `import { sort } from '@ember/object/computed';` | `Ember.computed.sort` | | `import { sum } from '@ember/object/computed';` | `Ember.computed.sum` | | `import { union } from '@ember/object/computed';` | `Ember.computed.union` | | `import { uniq } from '@ember/object/computed';` | `Ember.computed.uniq` | | `import { uniqBy } from '@ember/object/computed';` | `Ember.computed.uniqBy` | | `import CoreObject from '@ember/object/core';` | `Ember.CoreObject` | | `import Evented from '@ember/object/evented';` | `Ember.Evented` | | `import { on } from '@ember/object/evented';` | `Ember.on` | | `import { addListener } from '@ember/object/events';` | `Ember.addListener` | | `import { removeListener } from '@ember/object/events';` | `Ember.removeListener` | | `import { sendEvent } from '@ember/object/events';` | `Ember.sendEvent` | | `import { cacheFor } from '@ember/object/internals';` | `Ember.cacheFor` | | `import { copy } from '@ember/object/internals';` | `Ember.copy` | | `import { guidFor } from '@ember/object/internals';` | `Ember.guidFor` | | `import Mixin from '@ember/object/mixin';` | `Ember.Mixin` | | `import Observable from '@ember/object/observable';` | `Ember.Observable` | | `import { addObserver } from '@ember/object/observers';` | `Ember.addObserver` | | `import { removeObserver } from '@ember/object/observers';` | `Ember.removeObserver` | | `import PromiseProxyMixin from '@ember/object/promise-proxy-mixin';` | `Ember.PromiseProxyMixin` | | `import ObjectProxy from '@ember/object/proxy';` | `Ember.ObjectProxy` | #### `@ember/polyfills` | Module | Global | | --- | --- | | `import { assign } from '@ember/polyfills';` | `Ember.assign` | | `import { create } from '@ember/polyfills';` | `Ember.create` | | `import { hasPropertyAccessors } from '@ember/polyfills';` | `Ember.platform.hasPropertyAccessors` | | `import { keys } from '@ember/polyfills';` | `Ember.keys` | | `import { merge } from '@ember/polyfills';` | `Ember.merge` | #### `@ember/routing` | Module | Global | | --- | --- | | `import AutoLocation from '@ember/routing/auto-location';` | `Ember.AutoLocation` | | `import HashLocation from '@ember/routing/hash-location';` | `Ember.HashLocation` | | `import HistoryLocation from '@ember/routing/history-location';` | `Ember.HistoryLocation` | | `import LinkComponent from '@ember/routing/link-component';` | `Ember.LinkComponent` | | `import Location from '@ember/routing/location';` | `Ember.Location` | | `import NoneLocation from '@ember/routing/none-location';` | `Ember.NoneLocation` | | `import Route from '@ember/routing/route';` | `Ember.Route` | | `import EmberRouter from '@ember/routing/router';` | `Ember.Router` | #### `@ember/runloop` | Module | Global | | --- | --- | | `import { begin } from '@ember/runloop';` | `Ember.run.begin` | | `import { bind } from '@ember/runloop';` | `Ember.run.bind` | | `import { cancel } from '@ember/runloop';` | `Ember.run.cancel` | | `import { debounce } from '@ember/runloop';` | `Ember.run.debounce` | | `import { end } from '@ember/runloop';` | `Ember.run.end` | | `import { join } from '@ember/runloop';` | `Ember.run.join` | | `import { later } from '@ember/runloop';` | `Ember.run.later` | | `import { next } from '@ember/runloop';` | `Ember.run.next` | | `import { once } from '@ember/runloop';` | `Ember.run.once` | | `import { run } from '@ember/runloop';` | `Ember.run` | | `import { schedule } from '@ember/runloop';` | `Ember.run.schedule` | | `import { scheduleOnce } from '@ember/runloop';` | `Ember.run.scheduleOnce` | | `import { throttle } from '@ember/runloop';` | `Ember.run.throttle` | #### `@ember/service` | Module | Global | | --- | --- | | `import Service from '@ember/service';` | `Ember.Service` | | `import { inject } from '@ember/service';` | `Ember.inject.service` | #### `@ember/string` | Module | Global | | --- | --- | | `import { camelize } from '@ember/string';` | `Ember.String.camelize` | | `import { capitalize } from '@ember/string';` | `Ember.String.capitalize` | | `import { classify } from '@ember/string';` | `Ember.String.classify` | | `import { dasherize } from '@ember/string';` | `Ember.String.dasherize` | | `import { decamelize } from '@ember/string';` | `Ember.String.decamelize` | | `import { fmt } from '@ember/string';` | `Ember.String.fmt` | | `import { htmlSafe } from '@ember/string';` | `Ember.String.htmlSafe` | | `import { isHTMLSafe } from '@ember/string';` | `Ember.String.isHTMLSafe` | | `import { loc } from '@ember/string';` | `Ember.String.loc` | | `import { underscore } from '@ember/string';` | `Ember.String.underscore` | | `import { w } from '@ember/string';` | `Ember.String.w` | #### `@ember/test` | Module | Global | | --- | --- | | `import { registerAsyncHelper } from '@ember/test';` | `Ember.Test.registerAsyncHelper` | | `import { registerHelper } from '@ember/test';` | `Ember.Test.registerHelper` | | `import { registerWaiter } from '@ember/test';` | `Ember.Test.registerWaiter` | | `import { unregisterHelper } from '@ember/test';` | `Ember.Test.unregisterHelper` | | `import { unregisterWaiter } from '@ember/test';` | `Ember.Test.unregisterWaiter` | | `import TestAdapter from '@ember/test/adapter';` | `Ember.Test.Adapter` | #### `@ember/utils` | Module | Global | | --- | --- | | `import { compare } from '@ember/utils';` | `Ember.compare` | | `import { isBlank } from '@ember/utils';` | `Ember.isBlank` | | `import { isEmpty } from '@ember/utils';` | `Ember.isEmpty` | | `import { isEqual } from '@ember/utils';` | `Ember.isEqual` | | `import { isNone } from '@ember/utils';` | `Ember.isNone` | | `import { isPresent } from '@ember/utils';` | `Ember.isPresent` | | `import { tryInvoke } from '@ember/utils';` | `Ember.tryInvoke` | | `import { typeOf } from '@ember/utils';` | `Ember.typeOf` | #### `jquery` | Module | Global | | --- | --- | | `import $ from 'jquery';` | `Ember.$` | #### `rsvp` | Module | Global | | --- | --- | | `import RSVP from 'rsvp';` | `Ember.RSVP` | | `import { Promise } from 'rsvp';` | `Ember.RSVP.Promise` | | `import { all } from 'rsvp';` | `Ember.RSVP.all` | | `import { allSettled } from 'rsvp';` | `Ember.RSVP.allSettled` | | `import { defer } from 'rsvp';` | `Ember.RSVP.defer` | | `import { denodeify } from 'rsvp';` | `Ember.RSVP.denodeify` | | `import { filter } from 'rsvp';` | `Ember.RSVP.filter` | | `import { hash } from 'rsvp';` | `Ember.RSVP.hash` | | `import { hashSettled } from 'rsvp';` | `Ember.RSVP.hashSettled` | | `import { map } from 'rsvp';` | `Ember.RSVP.map` | | `import { off } from 'rsvp';` | `Ember.RSVP.off` | | `import { on } from 'rsvp';` | `Ember.RSVP.on` | | `import { race } from 'rsvp';` | `Ember.RSVP.race` | | `import { reject } from 'rsvp';` | `Ember.RSVP.reject` | | `import { resolve } from 'rsvp';` | `Ember.RSVP.resolve` | ### Scripts The tables above can be generated using the scripts in the `scripts` folder, e.g.: ``` scripts/generate-markdown-table ``` ## Contributing ### Module Changes If you want to change how globals are mapped into modules, you will find the data structure that controls that in `globals.json`. The structure is: ```js { "globalPath": ["moduleName", "namedExport"?, "localName"?] } ``` Only the first item in the array is mandatory. The second item is only needed for named exports. The third item is only necessary if the local identifier the import is bound to should be different than named export (or the previous global version, in the case of default exports). A few examples: 1. `Ember.Application` ⟹ `"Application": ["@ember/application"]` ⟹ `import Application from "@ember/application"` 1. `Ember.computed.or` ⟹ `"computed.or": ["@ember/object/computed", "or"]` ⟹ `import { or } from "@ember/object/computed"` 1. `Ember.DefaultResolver` ⟹ `"DefaultResolver": ["@ember/application/globals-resolver", null, "GlobalsResolver"]` ⟹ `import GlobalsResolver from "@ember/application/globals-resolver"` ### Reserved Words In some cases, Ember's names may conflict with names built in to the language. In those cases, we should not inadvertently shadow those identifiers. ```js import Object from "@ember/object"; // ...later Object.keys(obj); // oops! TypeError: Object.keys is not a function ``` A list of reserved identifiers (including `Object`) is included in `reserved.json`. Anything that appears in this list should be prefixed with `Ember`; so, for example, `import Object from "@ember/object"` should become `import EmberObject from "@ember/object"`.