npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ember-rfc176-data

v0.3.18

Published

JSON data for Ember.js RFC #176

Downloads

812,786

Readme

ember-rfc176-data

JSON data for RFC #176

Related Projects

Contents

New Modules to Globals

| Before | After | | --- | --- | | Ember._action | import { action } from '@ember/object'; | | Ember._array | import { array } from '@ember/helper'; | | Ember._assertDestroyablesDestroyed | import { assertDestroyablesDestroyed } from '@ember/destroyable'; | | Ember._associateDestroyableChild | import { associateDestroyableChild } from '@ember/destroyable'; | | Ember._cached | import { cached } from '@glimmer/tracking'; | | Ember._cacheGetValue | import { getValue } from '@glimmer/tracking/primitives/cache'; | | Ember._cacheIsConst | import { isConst } from '@glimmer/tracking/primitives/cache'; | | Ember._componentManagerCapabilities | import { capabilities } from '@ember/component'; | | Ember._concat | import { concat } from '@ember/helper'; | | Ember._createCache | import { createCache } from '@glimmer/tracking/primitives/cache'; | | Ember._dependentKeyCompat | import { dependentKeyCompat } from '@ember/object/compat'; | | Ember._enableDestroyableTracking | import { enableDestroyableTracking } from '@ember/destroyable'; | | Ember._fn | import { fn } from '@ember/helper'; | | Ember._get | import { get } from '@ember/helper'; | | Ember._getComponentTemplate | import { getComponentTemplate } from '@ember/component'; | | Ember._hash | import { hash } from '@ember/helper'; | | Ember._helperManagerCapabilities | import { capabilities } from '@ember/helper'; | | Ember._Input | import { Input } from '@ember/component'; | | Ember._invokeHelper | import { invokeHelper } from '@ember/helper'; | | Ember._isDestroyed | import { isDestroyed } from '@ember/destroyable'; | | Ember._isDestroying | import { isDestroying } from '@ember/destroyable'; | | Ember._modifierManagerCapabilities | import { capabilities } from '@ember/modifier'; | | Ember._on | import { on } from '@ember/modifier'; | | Ember._registerDestructor | import { registerDestructor } from '@ember/destroyable'; | | Ember._setComponentManager | import { setComponentManager } from '@ember/component'; | | Ember._setComponentTemplate | import { setComponentTemplate } from '@ember/component'; | | Ember._setHelperManager | import { setHelperManager } from '@ember/helper'; | | Ember._setModifierManager | import { setModifierManager } from '@ember/modifier'; | | Ember._templateOnlyComponent | import templateOnlyComponent from '@ember/component/template-only'; | | Ember._TextArea | import { Textarea } from '@ember/component'; | | Ember._tracked | import { tracked } from '@glimmer/tracking'; | | Ember._unregisterDestructor | import { unregisterDestructor } from '@ember/destroyable'; | | Ember.$ | import $ from 'jquery'; | | Ember.A | import { A } from '@ember/array'; | | Ember.addListener | import { addListener } from '@ember/object/events'; | | Ember.addObserver | import { addObserver } from '@ember/object/observers'; | | Ember.aliasMethod | import { aliasMethod } from '@ember/object'; | | 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.assert | import { assert } from '@ember/debug'; | | Ember.assign | import { assign } from '@ember/polyfills'; | | Ember.AutoLocation | import AutoLocation from '@ember/routing/auto-location'; | | Ember.cacheFor | import { cacheFor } from '@ember/object/internals'; | | Ember.Checkbox | import Checkbox from '@ember/component/checkbox'; | | Ember.compare | import { compare } from '@ember/utils'; | | Ember.Component | import Component from '@ember/component'; | | 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.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.copy | import { copy } from '@ember/object/internals'; | | Ember.CoreObject | import CoreObject from '@ember/object/core'; | | Ember.create | import { create } from '@ember/polyfills'; | | Ember.DataAdapter | import DataAdapter from '@ember/debug/data-adapter'; | | Ember.debug | import { debug } from '@ember/debug'; | | 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.defineProperty | import { defineProperty } from '@ember/object'; | | Ember.deprecate | import { deprecate } from '@ember/debug'; | | Ember.destroy | import { destroy } from '@ember/destroyable'; | | 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.expandProperties | import { expandProperties } from '@ember/object/computed'; | | Ember.FEATURES | import { FEATURES } from '@ember/canary-features'; | | Ember.FEATURES.isEnabled | import { isEnabled } from '@ember/canary-features'; | | 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.HashLocation | import HashLocation from '@ember/routing/hash-location'; | | Ember.Helper | import Helper from '@ember/component/helper'; | | Ember.Helper.helper | import { helper as buildHelper } from '@ember/component/helper'; | | Ember.HistoryLocation | import HistoryLocation from '@ember/routing/history-location'; | | Ember.HTMLBars.compile | import { compileTemplate } from '@ember/template-compilation'; | | Ember.HTMLBars.precompile | import { precompileTemplate } from '@ember/template-compilation'; | | Ember.HTMLBars.template | import { createTemplateFactory } from '@ember/template-factory'; | | 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.Instrumentation.reset | import { reset } from '@ember/instrumentation'; | | Ember.Instrumentation.subscribe | import { subscribe } from '@ember/instrumentation'; | | Ember.Instrumentation.unsubscribe | import { unsubscribe } 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.LinkComponent | import { LinkTo } from '@ember/routing'; | | Ember.LinkComponent | import LinkComponent from '@ember/routing/link-component'; | | Ember.Location | import Location from '@ember/routing/location'; | | Ember.makeArray | import { makeArray } from '@ember/array'; | | Ember.Map | import EmberMap from '@ember/map'; | | Ember.MapWithDefault | import MapWithDefault from '@ember/map/with-default'; | | Ember.merge | import { merge } from '@ember/polyfills'; | | Ember.Mixin | import Mixin from '@ember/object/mixin'; | | Ember.MutableArray | import MutableArray from '@ember/array/mutable'; | | Ember.Namespace | import Namespace from '@ember/application/namespace'; | | Ember.NoneLocation | import NoneLocation from '@ember/routing/none-location'; | | Ember.notifyPropertyChange | import { notifyPropertyChange } from '@ember/object'; | | Ember.Object | import EmberObject from '@ember/object'; | | Ember.ObjectProxy | import ObjectProxy from '@ember/object/proxy'; | | Ember.Observable | import Observable from '@ember/object/observable'; | | 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.PromiseProxyMixin | import PromiseProxyMixin from '@ember/object/promise-proxy-mixin'; | | Ember.removeListener | import { removeListener } from '@ember/object/events'; | | Ember.removeObserver | import { removeObserver } from '@ember/object/observers'; | | 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.RSVP | import RSVP 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.Promise | import { Promise } from 'rsvp'; | | Ember.RSVP.race | import { race } from 'rsvp'; | | Ember.RSVP.reject | import { reject } from 'rsvp'; | | Ember.RSVP.resolve | import { resolve } from 'rsvp'; | | Ember.run | import { run } from '@ember/runloop'; | | Ember.run._getCurrentRunLoop | import { _getCurrentRunLoop } from '@ember/runloop'; | | Ember.run.backburner | import { _backburner } 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.cancelTimers | import { _cancelTimers } from '@ember/runloop'; | | Ember.run.debounce | import { debounce } from '@ember/runloop'; | | Ember.run.end | import { end } from '@ember/runloop'; | | Ember.run.hasScheduledTimers | import { _hasScheduledTimers } 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.Service | import Service from '@ember/service'; | | Ember.set | import { set } from '@ember/object'; | | Ember.setOwner | import { setOwner } from '@ember/application'; | | Ember.setProperties | import { setProperties } from '@ember/object'; | | 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/template'; | | Ember.String.isHTMLSafe | import { isHTMLSafe } from '@ember/template'; | | 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.tryInvoke | import { tryInvoke } from '@ember/utils'; | | Ember.trySet | import { trySet } from '@ember/object'; | | Ember.typeOf | import { typeOf } from '@ember/utils'; | | Ember.VERSION | import { VERSION } from '@ember/version'; | | 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 GlobalsResolver from '@ember/application/globals-resolver'; | Ember.DefaultResolver | | import ApplicationInstance from '@ember/application/instance'; | Ember.ApplicationInstance | | import Namespace from '@ember/application/namespace'; | Ember.Namespace | | 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/canary-features

| Module | Global | | --- | --- | | import { FEATURES } from '@ember/canary-features'; | Ember.FEATURES | | import { isEnabled } from '@ember/canary-features'; | Ember.FEATURES.isEnabled |

@ember/component

| Module | Global | | --- | --- | | import Component from '@ember/component'; | Ember.Component | | import { Input } from '@ember/component'; | Ember._Input | | import { Textarea } from '@ember/component'; | Ember._TextArea | | import { capabilities } from '@ember/component'; | Ember._componentManagerCapabilities | | import { getComponentTemplate } from '@ember/component'; | Ember._getComponentTemplate | | import { setComponentManager } from '@ember/component'; | Ember._setComponentManager | | import { setComponentTemplate } from '@ember/component'; | Ember._setComponentTemplate | | import Checkbox from '@ember/component/checkbox'; | Ember.Checkbox | | import Helper from '@ember/component/helper'; | Ember.Helper | | import { helper as buildHelper } from '@ember/component/helper'; | Ember.Helper.helper | | import templateOnlyComponent from '@ember/component/template-only'; | Ember._templateOnlyComponent | | 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 { deprecate } from '@ember/debug'; | Ember.deprecate | | 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/destroyable

| Module | Global | | --- | --- | | import { assertDestroyablesDestroyed } from '@ember/destroyable'; | Ember._assertDestroyablesDestroyed | | import { associateDestroyableChild } from '@ember/destroyable'; | Ember._associateDestroyableChild | | import { destroy } from '@ember/destroyable'; | Ember.destroy | | import { enableDestroyableTracking } from '@ember/destroyable'; | Ember._enableDestroyableTracking | | import { isDestroyed } from '@ember/destroyable'; | Ember._isDestroyed | | import { isDestroying } from '@ember/destroyable'; | Ember._isDestroying | | import { registerDestructor } from '@ember/destroyable'; | Ember._registerDestructor | | import { unregisterDestructor } from '@ember/destroyable'; | Ember._unregisterDestructor |

@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/helper

| Module | Global | | --- | --- | | import { array } from '@ember/helper'; | Ember._array | | import { capabilities } from '@ember/helper'; | Ember._helperManagerCapabilities | | import { concat } from '@ember/helper'; | Ember._concat | | import { fn } from '@ember/helper'; | Ember._fn | | import { get } from '@ember/helper'; | Ember._get | | import { hash } from '@ember/helper'; | Ember._hash | | import { invokeHelper } from '@ember/helper'; | Ember._invokeHelper | | import { setHelperManager } from '@ember/helper'; | Ember._setHelperManager |

@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/modifier

| Module | Global | | --- | --- | | import { capabilities } from '@ember/modifier'; | Ember._modifierManagerCapabilities | | import { on } from '@ember/modifier'; | Ember._on | | import { setModifierManager } from '@ember/modifier'; | Ember._setModifierManager |

@ember/object

| Module | Global | | --- | --- | | import EmberObject from '@ember/object'; | Ember.Object | | import { action } from '@ember/object'; | Ember._action | | 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 { notifyPropertyChange } from '@ember/object'; | Ember.notifyPropertyChange | | 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 { dependentKeyCompat } from '@ember/object/compat'; | Ember._dependentKeyCompat | | 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 { LinkTo } from '@ember/routing'; | Ember.LinkComponent | | 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 { _backburner } from '@ember/runloop'; | Ember.run.backburner | | import { _cancelTimers } from '@ember/runloop'; | Ember.run.cancelTimers | | import { _getCurrentRunLoop } from '@ember/runloop'; | Ember.run._getCurrentRunLoop | | import { _hasScheduledTimers } from '@ember/runloop'; | Ember.run.hasScheduledTimers | | 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 { loc } from '@ember/string'; | Ember.String.loc | | import { underscore } from '@ember/string'; | Ember.String.underscore | | import { w } from '@ember/string'; | Ember.String.w |

@ember/template

| Module | Global | | --- | --- | | import { htmlSafe } from '@ember/template'; | Ember.String.htmlSafe | | import { isHTMLSafe } from '@ember/template'; | Ember.String.isHTMLSafe |

@ember/template-compilation

| Module | Global | | --- | --- | | import { compileTemplate } from '@ember/template-compilation'; | Ember.HTMLBars.compile | | import { precompileTemplate } from '@ember/template-compilation'; | Ember.HTMLBars.precompile |

@ember/template-factory

| Module | Global | | --- | --- | | import { createTemplateFactory } from '@ember/template-factory'; | Ember.HTMLBars.template |

@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 |

@ember/version

| Module | Global | | --- | --- | | import { VERSION } from '@ember/version'; | Ember.VERSION |

@glimmer/tracking

| Module | Global | | --- | --- | | import { cached } from '@glimmer/tracking'; | Ember._cached | | import { tracked } from '@glimmer/tracking'; | Ember._tracked | | import { createCache } from '@glimmer/tracking/primitives/cache'; | Ember._createCache | | import { getValue } from '@glimmer/tracking/primitives/cache'; | Ember._cacheGetValue | | import { isConst } from '@glimmer/tracking/primitives/cache'; | Ember._cacheIsConst |

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.:

node scripts/generate-markdown-table.js

Contributing

mappings.json format

The mappings.json file contains an array of entries with the following format:

interface Mapping {
  /**
    The globals based API that this module and export replace.
   */
  global: string;

  /**
    The module to import.
   */
  module: string;

  /**
    The export name from the module.
   */
  export: string;

  /**
    `true` if this module / export combination has been deprecated.
   */
  deprecated: boolean;

  /**
    The recommended `localName` to use for a given module/export. Only present
    when a name other than the value for `export` should be used.

    This is useful for things like ember-modules-codemod or eslint-plugin-ember
    so that they can provide a nice suggested import for a given global path usage.
   */
  localName?: string;

  /**
    When this mapping is deprecated it may include a replacement module/export which
    should be used instead.
  */
  replacement?: {
    module: string;
    export: string;
  }
}

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.

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".