jscs-ember-deprecations
v2.3.0
Published
Ember deprecation warnings for JSCS
Downloads
1,491
Readme
jscs-ember-deprecations
This is a JSCS plugin to include errors for features that are deprecated in Ember.js
Installation
npm install jscs-ember-deprecations --save-dev
You'll also need to tell JSCS to load the plugin. Modify your .jscsrc
file to include
"plugins": [
"jscs-ember-deprecations"
],
"disallowObjectController": true,
"disallowInstanceInInitializer": true,
"disallowPrototypeExtension": true,
"disallowAtEachLeafNode": true,
// ...
If you invoke JSCS with --fix
(see http://jscs.info/overview#cli) some deprecation errors can be fixed automatically.
See Supported deprecations for valid keys
Why
Migrating to a newer Ember version can be tricky if you haven't already gone back and removed all uses of deprecated features. Instead, this plugin intends to enable a migration path in a codebase, where developers can be warned when they use deprecated features.
A sample use case is to:
- Use a tool like Lint Review to automagically annotate pull requests. Developers will be warned if they're using a feature that is deprecated. Put these "aspirational" rules in
.toolbot_jscsrc
- Use
broccoli-jscs
so that JSCS gets run at the same time you're running unit tests. Put rules that are "mandatory" in your codebase's.jscsrc
. Any violations of those rules will result in the test suite failing.
This way a codebase can be gradually brought into compliance over time.
Supported deprecations
Deprecations added in Ember 1.11
disallowObjectController
will warn you if you use the deprecatedEmber.ObjectController
. See http://emberjs.com/deprecations/v1.x/#toc_objectcontroller for details.disallowInstanceInInitializer
will warn you if you are looking up instances within an initializer. See http://emberjs.com/deprecations/v1.x/#toc_access-to-instances-in-initializers for details.
Deprecations added in Ember 1.12
disallowCoreView
will warn you if you use the deprecatedEmber.CoreView
. See https://github.com/emberjs/ember.js/pull/10585 for details.disallowEmberTryCatch
will warn you if you use the deprecatedEmber.tryCatch
orEmber.tryCatchFinally
helpers. See https://github.com/emberjs/ember.js/pull/10667 for details.disallowEmberRequired
will warn you if you use the deprecatedEmber.required()
helper. See https://github.com/emberjs/ember.js/pull/10668 for details.disallowDualGetterSetter
will warn you if you use a dual setter/getter function argument toEmber.computed()
. See http://emberjs.com/deprecations/v1.x/#toc_computed-properties-with-a-shared-getter-and-setter for details.
Deprecations added in Ember 1.13
disallowAtEachLeafNode
will warn you if you use the deprecatedfoo.@each
notation. See https://github.com/emberjs/ember.js/pull/11994 for details.disallowArrayComputed
will warn you if you use the deprecatedEmber.ArrayComputedProperty
orEmber.arrayComputed()
. See https://github.com/emberjs/ember.js/pull/11403 for details.disallowReduceComputed
will warn you if you use the deprecatedEmber.ReduceComputedProperty
orEmber.reduceComputed()
. See https://github.com/emberjs/ember.js/pull/11403 for details.disallowEmberCreate
will warn you if you use the deprecatedEmber.create()
function. See http://emberjs.com/deprecations/v1.x/#toc_ember-create for details.disallowEmberKeys
will warn you if you use the deprecatedEmber.keys()
function. See http://emberjs.com/deprecations/v1.x/#toc_ember-keys for details.disallowEmberOneway
will warn you if you use the deprecatedEmber.oneWay()
function. See http://emberjs.com/deprecations/v1.x/#toc_ember-oneway for details.disallowEmberView
will warn you if you use the deprecatedEmber.View
,Ember.LinkView
,Ember.Select
,Ember.ContainerView
, orEmber.CollectionView
classes. See http://emberjs.com/deprecations/v1.x/#toc_ember-view for details.disallowPositionalParamsExtend
will warn you if you usepositionalParams
within.extend()
instead of setting it as a static property on the class itself. See http://emberjs.com/deprecations/v1.x/#toc_set-code-positionalparams-code-as-a-static-property-on-the-class for details.disallowBeforeObserver
will warn you if you use the deprecatedEmber.addBeforeObserver()
,Ember.removeBeforeObserver()
, orEmber.beforeObserversFor()
functions. Additionally, it will warn you if you use the deprecated.observesBefore()
prototype extenion. Note that.observesBefore()
is also deprecated in disallowPrototypeExtension. See http://emberjs.com/deprecations/v1.x/#toc_beforeobserver for details.disallowImmediateObserver
will warn you if you use the deprecatedEmber.immediateObserver
helper. See http://emberjs.com/deprecations/v1.x/#toc_ember-immediateobserver for details.disallowArrayController
will warn you if you use the deprecatedEmber.ArrayController
. See http://emberjs.com/deprecations/v1.x/#toc_arraycontroller for details.disallowControllerNeeds
will warn you if you're doing dependency injection via theneeds
property on a controller. See http://emberjs.com/deprecations/v1.x/#toc_controller-needs for details.disallowFreezableMixin
will warn you if you use the deprecatedEmber.Freezable
mixin. See http://emberjs.com/deprecations/v1.x/#toc_ember-freezeable for details.disallowObserverArgumentOrdering
requires thatEmber.observer()
takes callable argument as the final argument. See http://emberjs.com/deprecations/v1.x/#toc_reversed-ember-observer-arguments for details.disallowCreateWithMixins
will warn you if you use the deprecatedEmber.Object.createWithMixins
method. See http://emberjs.com/deprecations/v1.x/#toc_ember-createwithmixins for details.disallowComputedAny
will warn you if you use the deprecatedEmber.computed.any()
helper. See http://emberjs.com/deprecations/v1.x/#toc_ember-computed-any for details.disallowHandlebarsHelpers
will warn you if you use the deprecatedEmber.HTMLBars.makeBoundHelper()
orEmber.Handlebars.registerHelper()
helpers. See http://emberjs.com/deprecations/v1.x/#toc_handlebars-htmlbars-helpers for details.
Deprecations added in Ember 2.0
None. Ember 2.0 removed support for the above deprecations.
Deprecations added in Ember 2.1
disallowInitializerArity
will warn you if you have more than 1 argument to an initializer. See http://emberjs.com/deprecations/v2.x/#toc_initializer-arity for details.disallowPrivateRegistryProperty
will warn you if you use one of the privateapp.registry.*
deprecations. See http://emberjs.com/deprecations/v2.x/#toc_ember-application-registry-ember-applicationinstance-registry for details.disallowAppInstanceContainer
will warn you if you use the privateapp.container.lookup()
depreprecation in an initializer. See http://emberjs.com/deprecations/v2.x/#toc_ember-applicationinstance-container for details.disallowDebugMissingArguments
will warn you if you use one of theEmber.warn()
,Ember.deprecate()
,Ember.deprecateFunc()
orEmber.computed.deprecatingAlias()
function without passing in an options object that at a minimum contains anid
property. See http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options for details.disallowDefaultLayout
will warn you if you use thedefaultLayout
property inside a Component. See http://emberjs.com/deprecations/v2.x/#toc_ember-component-defaultlayout for details.disallowCurrentState
will warn you if you use the privatecurrentState
or_currentState
property inside a Component. See http://emberjs.com/deprecations/v2.x/#toc_ember-component-currentstate for details.
Other Ember best practices
disallowPrototypeExtension
will warn you if you are using.property()
,.observes()
orobservesBefore()
. See http://guides.emberjs.com/v1.10.0/configuring-ember/disabling-prototype-extensions/#toc_functions for details.
Deprecations added in Ember 2.3
disallowInjectedContainerAccess
will warn you if you are using the injected container (this.container
). See http://emberjs.com/deprecations/v2.x/#toc_injected-container-access for details.
License
This library is lovingly brought to you by @minichate. It is released under the MIT license.