Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

eslint-plugin-ember

ember-cli537.6kMIT12.3.3

ESLint plugin for Ember.js apps

eslint, eslintplugin, eslint-plugin, ember, ember.js, plugin, styleguide, rules

readme

eslint-plugin-ember

NPM version NPM downloads CI

An ESLint plugin that provides a set of rules for Ember applications based on commonly known good practices.

❗️Requirements

🚀 Usage

1. Install plugin

npm install --save-dev eslint-plugin-ember

2. Update your config

// eslint.config.js (flat config)
const eslintPluginEmberRecommended = require('eslint-plugin-ember/configs/recommended');

module.exports = [
  ...eslintPluginEmberRecommended,
];

or

// .eslintrc.js (legacy config)
module.exports = {
  plugins: ['ember'],
  extends: [
    'eslint:recommended',
    'plugin:ember/recommended' // or other configuration
  ],
  rules: {
    // override / enable optional rules
    'ember/no-replace-test-comments': 'error'
  }
};

gts/gjs

lint files having First-Class Component Templates (fcct)

learn more here

[!NOTE] special care should be used when setting up parsers, since they cannot be overwritten. thus they should be used in override only and specific to file types

gjs/gts support is provided by the ember-eslint-parser

[!NOTE] if you import .gts files in .ts files, then ember-eslint-parser is required for .ts as well to enable typed linting

// .eslintrc.js
module.exports = {
  overrides: [
    {
      files: ['**/*.{js,ts}'],
      plugins: ['ember'],
      parser: '@typescript-eslint/parser',
      extends: [
        'eslint:recommended',
        'plugin:ember/recommended', // or other configuration
      ],
      rules: {
        // override / enable optional rules
        'ember/no-replace-test-comments': 'error'
      }
    },
    {
      files: ['**/*.gts'],
      parser: 'ember-eslint-parser',
      plugins: ['ember'],
      extends: [
        'eslint:recommended',
        'plugin:@typescript-eslint/recommended',
        'plugin:ember/recommended',
        'plugin:ember/recommended-gts',
      ],
    },
    {
      files: ['**/*.gjs'],
      parser: 'ember-eslint-parser',
      plugins: ['ember'],
      extends: [
        'eslint:recommended',
        'plugin:ember/recommended',
        'plugin:ember/recommended-gjs',
      ],
    },
    {
      files: ['tests/**/*.{js,ts,gjs,gts}'],
      rules: {
        // override / enable optional rules
        'ember/no-replace-test-comments': 'error'
      }
    },
  ],
};

rules applied to fcct templates

  • semi rule, same as prettier plugin
  • no-undef rule will take effect for template vars (includes js scope)
  • no-unused rule will take effect for template block params

rules in templates can be disabled with eslint directives with mustache or html comments:

<template>
  <div>
    {{!eslint-disable-next-line}}
    {{test}}
  </div>
  <div>
    {{!--eslint-disable--}}
    {{test}}
    {{test}}
    {{test}}
    {{!--eslint-enable--}}
  </div>
</template>
<template>
  <div>
    <!--eslint-disable-next-line-->
    {{test}}
  </div>
  <div>
    <!-- eslint-disable -->
    {{test}}
    {{test}}
    {{test}}
    <!-- eslint-enable -->
  </div>
</template>

🧰 Configurations

| | Name | | :------------------------------ | :---------------- | | | base | | ✅ | recommended | | gjs logo | recommended-gjs | | gts logo | recommended-gts |

🍟 Rules

💼 Configurations enabled in.\ ✅ Set in the recommended configuration.\ gjs logo Set in the recommended-gjs configuration.\ gts logo Set in the recommended-gts configuration.\ 🔧 Automatically fixable by the --fix CLI option.\ 💡 Manually fixable by editor suggestions.

Components

Name Description 💼 🔧 💡
no-attrs-in-components disallow usage of this.attrs in components |
no-attrs-snapshot disallow use of attrs snapshot in the didReceiveAttrs and didUpdateAttrs component hooks |
no-classic-components enforce using Glimmer components |
no-component-lifecycle-hooks disallow usage of "classic" ember component lifecycle hooks. Render modifiers or custom functional modifiers should be used instead. |
no-on-calls-in-components disallow usage of on to call lifecycle hooks in components |
require-tagless-components disallow using the wrapper element of a component

Computed Properties

Name Description 💼 🔧 💡
computed-property-getters enforce the consistent use of getters in computed properties |
no-arrow-function-computed-properties disallow arrow functions in computed properties |
no-assignment-of-untracked-properties-used-in-tracking-contexts disallow assignment of untracked properties that are used as computed property dependencies 🔧
no-computed-properties-in-native-classes disallow using computed properties in native classes |
no-deeply-nested-dependent-keys-with-each disallow usage of deeply-nested computed property dependent keys with @each |
no-duplicate-dependent-keys disallow repeating computed property dependent keys 🔧
no-incorrect-computed-macros disallow incorrect usage of computed property macros 🔧
no-invalid-dependent-keys disallow invalid dependent keys in computed properties 🔧
no-side-effects disallow unexpected side effects in computed properties |
no-volatile-computed-properties disallow volatile computed properties |
require-computed-macros require using computed property macros when possible 🔧
require-computed-property-dependencies require dependencies to be declared statically in computed properties 🔧
require-return-from-computed disallow missing return statements in computed properties |
use-brace-expansion enforce usage of brace expansion in computed property dependent keys

Controllers

Name Description 💼 🔧 💡
alias-model-in-controller enforce aliasing model in controllers |
avoid-using-needs-in-controllers disallow using needs in controllers |
no-controllers disallow non-essential controllers |

Deprecations

Name Description 💼 🔧 💡
closure-actions enforce usage of closure actions |
new-module-imports enforce using "New Module Imports" from Ember RFC #176 |
no-array-prototype-extensions disallow usage of Ember's Array prototype extensions | 🔧
no-at-ember-render-modifiers disallow importing from @ember/render-modifiers |
no-deprecated-router-transition-methods enforce usage of router service transition methods 🔧
no-function-prototype-extensions disallow usage of Ember's function prototype extensions |
no-implicit-injections enforce usage of implicit service injections 🔧
no-mixins disallow the usage of mixins |
no-new-mixins disallow the creation of new mixins |
no-observers disallow usage of observers |
no-old-shims disallow usage of old shims for modules 🔧
no-string-prototype-extensions disallow usage of String prototype extensions

Ember Data

Name Description 💼 🔧 💡
no-empty-attrs disallow usage of empty attributes in Ember Data models |
require-async-inverse-relationship require inverse to be specified in @belongsTo and @hasMany decorators |
use-ember-data-rfc-395-imports enforce usage of @ember-data/ package imports instead ember-data 🔧

Ember Object

Name Description 💼 🔧 💡
avoid-leaking-state-in-ember-objects disallow state leakage |
no-get require using ES5 getters instead of Ember's get / getProperties functions 🔧
no-get-with-default disallow usage of the Ember's getWithDefault function 🔧
no-proxies disallow using array or object proxies |
no-try-invoke disallow usage of the Ember's tryInvoke util |
require-super-in-lifecycle-hooks require super to be called in lifecycle hooks 🔧
use-ember-get-and-set enforce usage of Ember.get and Ember.set | 🔧

Ember Octane

Name Description 💼 🔧 💡
classic-decorator-hooks enforce using correct hooks for both classic and non-classic classes |
classic-decorator-no-classic-methods disallow usage of classic APIs such as get/set in classes that aren't explicitly decorated with @classic |
no-actions-hash disallow the actions hash in components, controllers, and routes |
no-classic-classes disallow "classic" classes in favor of native JS classes |
no-ember-super-in-es-classes disallow use of this._super in ES class methods 🔧
no-empty-glimmer-component-classes disallow empty backing classes for Glimmer components |
no-tracked-properties-from-args disallow creating @tracked properties from this.args |
template-indent enforce consistent indentation for gts/gjs templates | 🔧
template-no-let-reference disallow referencing let variables in <template> gjs logo gts logo

jQuery

Name Description 💼 🔧 💡
jquery-ember-run disallow usage of jQuery without an Ember run loop |
no-global-jquery disallow usage of global jQuery object |
no-jquery disallow any usage of jQuery

Miscellaneous

Name Description 💼 🔧 💡
named-functions-in-promises enforce usage of named functions in promises |
no-html-safe disallow the use of htmlSafe |
no-incorrect-calls-with-inline-anonymous-functions disallow inline anonymous functions as arguments to debounce, once, and scheduleOnce |
no-invalid-debug-function-arguments disallow usages of Ember's assert() / warn() / deprecate() functions that have the arguments passed in the wrong order. |
no-restricted-property-modifications disallow modifying the specified properties | 🔧
no-runloop disallow usage of @ember/runloop functions |
require-fetch-import enforce explicit import for fetch() |

Routes

Name Description 💼 🔧 💡
no-capital-letters-in-routes disallow routes with uppercased letters in router.js |
no-controller-access-in-routes disallow routes from accessing the controller outside of setupController/resetController |
no-private-routing-service disallow injecting the private routing service |
no-shadow-route-definition enforce no route path definition shadowing |
no-unnecessary-index-route disallow unnecessary index route definition |
no-unnecessary-route-path-option disallow unnecessary usage of the route path option 🔧
route-path-style enforce usage of kebab-case (instead of snake_case or camelCase) in route paths | 💡
routes-segments-snake-case enforce usage of snake_cased dynamic segments in routes

Services

Name Description 💼 🔧 💡
no-implicit-service-injection-argument disallow omitting the injected service name argument | 🔧
no-restricted-service-injections disallow injecting certain services under certain paths |
no-unnecessary-service-injection-argument disallow unnecessary argument when injecting services | 🔧
no-unused-services disallow unused service injections (see rule doc for limitations) | 💡

Stylistic Issues

Name Description 💼 🔧 💡
order-in-components enforce proper order of properties in components | 🔧
order-in-controllers enforce proper order of properties in controllers | 🔧
order-in-models enforce proper order of properties in models | 🔧
order-in-routes enforce proper order of properties in routes | 🔧

Testing

Name Description 💼 🔧 💡
no-current-route-name disallow usage of the currentRouteName() test helper |
no-ember-testing-in-module-scope disallow use of Ember.testing in module scope |
no-invalid-test-waiters disallow incorrect usage of test waiter APIs |
no-legacy-test-waiters disallow the use of the legacy test waiter APIs |
no-noop-setup-on-error-in-before disallows using no-op setupOnerror in before or beforeEach 🔧
no-pause-test disallow usage of the pauseTest helper in tests |
no-replace-test-comments disallow 'Replace this with your real tests' comments in test files |
no-restricted-resolver-tests disallow the use of patterns that use the restricted resolver in tests |
no-settled-after-test-helper disallow usage of await settled() right after test helper that calls it internally 🔧
no-test-and-then disallow usage of the andThen test wait helper |
no-test-import-export disallow importing of "-test.js" in a test file and exporting from a test file |
no-test-module-for disallow usage of moduleFor, moduleForComponent, etc |
no-test-support-import disallow importing of "test-support" files in production code. |
no-test-this-render disallow usage of the this.render in tests, recommending to use @ember/test-helpers' render instead. |
prefer-ember-test-helpers enforce usage of @ember/test-helpers methods over native window methods |
require-valid-css-selector-in-test-helpers disallow using invalid CSS selectors in test helpers 🔧

🍻 Contribution Guide

If you have any suggestions, ideas, or problems, feel free to create an issue, but first please make sure your question does not repeat previous ones.

Creating a New Rule

  • Create an issue with a description of the proposed rule
  • Create files for the new rule:
    • lib/rules/new-rule.js (implementation, see no-proxies for an example)
    • docs/rules/new-rule.md (documentation, start from the template -- raw, rendered)
    • tests/lib/rules/new-rule.js (tests, see no-proxies for an example)
  • Run pnpm update to automatically update the README and other files (and re-run this if you change the rule name or description)
  • Make sure your changes will pass CI by running:
    • pnpm test
    • pnpm lint (pnpm lint:js --fix can fix many errors)
  • Create a PR and link the created issue in the description

Note that new rules should not immediately be added to the recommended configuration, as we only consider such breaking changes during major version updates.

🔓 License

See the LICENSE file for license rights and limitations (MIT).

changelog

Changelog

Release (2024-11-22)

eslint-plugin-ember 12.3.3 (patch)

:bug: Bug Fix

  • eslint-plugin-ember

Committers: 1

Release (2024-11-21)

eslint-plugin-ember 12.3.2 (patch)

:bug: Bug Fix

Committers: 1

Release (2024-10-25)

eslint-plugin-ember 12.3.1 (patch)

:bug: Bug Fix

  • eslint-plugin-ember
    • #2200 Fix no-component-lifecycle-hook in double extended classic component (@wagenet)

Committers: 1

Release (2024-10-23)

eslint-plugin-ember 12.3.0 (minor)

:rocket: Enhancement

  • eslint-plugin-ember

:bug: Bug Fix

:house: Internal

Committers: 2

v12.2.1 (2024-09-25)

:bug: Bug Fix

Committers: 2

v12.2.0 (2024-08-17)

:rocket: Enhancement

  • #2155 Add new ember-data rule: require-async-inverse-relationship (@wozny1989)
  • #2157 Consider _test.{js|ts|gjs|gts} as test file. (@HEYGUL)

:bug: Bug Fix

:house: Internal

Committers: 4

v12.1.1 (2024-05-21)

:bug: Bug Fix

Committers: 1

v12.1.0 (2024-05-14)

:rocket: Enhancement

:bug: Bug Fix

:memo: Documentation

  • #2142 Fix spread operator sample in no-array-prototype-extensions rule doc (@mkszepp)

Committers: 2

v12.0.2 (2024-02-15)

:bug: Bug Fix

:house: Internal

Committers: 2

v12.0.1 (2024-02-13)

:bug: Bug Fix

  • #2071 Fix nested classes case in no-ember-super-in-es-classes (@CvX)

:memo: Documentation

:house: Internal

Committers: 4

v12.0.0 (2024-01-13)

:boom: Breaking Change

  • #1962 Drop support for Node 14, 16, 19 (@patricklx)
  • #1963 Add new recommended rules: no-at-ember-render-modifiers, no-deprecated-router-transition-methods, no-implicit-injections, no-runloop, no-tracked-properties-from-args, (@patricklx)
  • #1977 Add new recommended rule: template-no-let-reference (@bmish)
  • #1981 Add template-no-let-reference rule to recommended-gjs and recommended-gts configs (@patricklx)
  • #1967 Drop support for ESLint 7 (@bmish)
  • #1978 Set config ecmaVersion to 2022 (@bmish)
  • #1965 Change useAt option default to true at in no-get rule (@patricklx)
  • #2028 Move gjs/gts parser to ember-eslint-parser library (@NullVoxPopuli)

:rocket: Enhancement

:bug: Bug Fix

  • #1994 [gjs/gts parser] fix locations for ast after templates (@patricklx)
  • #1992 [gjs/gts parser] fix references for tags with a dot & non standard html tags (@patricklx)
  • #1996 [gjs/gts parser] fix type aware linting when using ts+gts files (@patricklx)
  • #2005 [gjs/gts parser] fix parsing when there are multiple default <template> blocks (not allowed) (@patricklx)
  • #2055 Bump ember-eslint-parser to 0.2.5 - Includes fix for SVG scope parsing (@NullVoxPopuli)
  • #2048 Bump ember-eslint-parser to 0.2.4 (@NullVoxPopuli)
  • #2046 Fix issue with no-deprecated-router-transition-methods throwing errors outside of class usage (@NullVoxPopuli)
  • #2027 Allow ember-data type registry imports in use-ember-data-rfc-395-imports rule (@wagenet)

:memo: Documentation

  • #1969 Add automatic rule option lists with eslint-doc-generator (@bmish)
  • #1966 Automatically generate README configs list with eslint-doc-generator (@bmish)
  • #1980 Improve gts gjs configuration example (@patricklx)
  • #1990 Fix names for recommended-gts / recommended-gjs configs in readme (@c0rydoras)

:house: Internal

Committers: 4

v12.0.0-alpha.4 (2023-12-22)

:boom: Breaking Change

:house: Internal

Committers: 1

v12.0.0-alpha.3 (2023-12-13)

:rocket: Enhancement

:bug: Bug Fix

  • #1996 [gjs-gts-parser] fix type aware linting when using ts+gts files (@patricklx)
  • #2005 [gjs-gts-parser] fix parsing when there are multiple default <template> blocks (not allowed) (@patricklx)
  • #2027 Allow ember-data type registry imports in use-ember-data-rfc-395-imports rule (@wagenet)

:house: Internal

  • #2018 Switch to ESLint flat config internally (@bmish)

Committers: 2

v12.0.0-alpha.2 (2023-11-10)

:bug: Bug Fix

  • #1994 [gjs/gts parser] fix locations for ast after templates (@patricklx)
  • #1992 [gjs/gts parser] fix references for tags with a dot & non standard html tags (@patricklx)

Committers: 1

v12.0.0-alpha.1 (2023-11-07)

:boom: Breaking Change

  • #1981 Add template-no-let-reference rule to recommended-gjs and recommended-gts configs (@patricklx)

:rocket: Enhancement

:memo: Documentation

Committers: 2

v12.0.0-alpha.0 (2023-11-04)

:boom: Breaking Change

  • #1962 Drop support for Node 14, 16, 19 (@patricklx)
  • #1963 Add new recommended rules: no-at-ember-render-modifiers, no-deprecated-router-transition-methods, no-implicit-injections, no-runloop, no-tracked-properties-from-args, (@patricklx)
  • #1977 Add new recommended rule: template-no-let-reference (@bmish)
  • #1967 Drop support for ESLint 7 (@bmish)
  • #1978 Set config ecmaVersion to 2022 (@bmish)
  • #1965 Change useAt option default to true at in no-get rule (@patricklx)

:rocket: Enhancement

:memo: Documentation

  • #1969 Add automatic rule option lists with eslint-doc-generator (@bmish)
  • #1966 Automatically generate README configs list with eslint-doc-generator (@bmish)

:house: Internal

Committers: 2

v11.12.0 (2023-12-12)

:rocket: Enhancement

:bug: Bug Fix

  • #2027 Allow ember-data type registry imports in use-ember-data-rfc-395-imports rule (@wagenet)

Committers: 2

v11.11.1 (2023-08-22)

:bug: Bug Fix

  • #1941 Revert "Use custom parser for gts/gjs (#1920)" (@bmish)

Committers: 1

v11.11.0 (2023-08-21)

:rocket: Enhancement

Committers: 1

v11.10.0 (2023-07-07)

:rocket: Enhancement

Committers: 1

v11.9.0 (2023-06-26)

:rocket: Enhancement

  • #1899 Check template tags for service usages in no-unused-services (@lin-ll)

:house: Internal

  • #1898 [no-empty-glimmer-component-classes] Import the template tag value instead of hardcode (@chrisrng)

Committers: 2

v11.8.0 (2023-05-31)

:rocket: Enhancement

  • #1847 Add useAt option to autofix .lastObject to .at(-1) in no-get rule (@ArtixZ)

Committers: 1

v11.7.2 (2023-05-23)

:bug: Bug Fix

  • #1876 Allow generic type in TypeScript class in no-empty-glimmer-component-classes rule (@chrisrng)

Committers: 7

v11.7.1 (2023-05-21)

:bug: Bug Fix

  • #1870 Fix crash with default computed property import in no-unused-services rule (@bmish)
  • #1869 Avoid crash with inject decorator in no-restricted-service-injections rule (@bmish)
  • #1871 Avoid further decorator detection crashes in no-restricted-service-injections rule (@bmish)

Committers: 1

v11.7.0 (2023-05-19)

:rocket: Enhancement

  • #1865 Support autofix of numerical property access and ternary expressions in no-get rule (@evanjehl)

:bug: Bug Fix

  • #1866 Account for class only having template tag in no-empty-glimmer-component-classes rule (@chrisrng)

Committers: 2

v11.6.0 (2023-05-16)

:rocket: Enhancement

:bug: Bug Fix

Committers: 1

v11.5.2 (2023-04-22)

:bug: Bug Fix

  • #1841 Fix a bug in autofixer and autofix additional cases with firstObject andlastObjectinno-get` rule (@ArtixZ)

Committers: 1

v11.5.1 (2023-04-07)

:bug: Bug Fix

Committers: 1

v11.5.0 (2023-04-05)

:rocket: Enhancement

  • #1823 Add getProperties autofixer to no-get rule (@ArtixZ)

Committers: 1

v11.4.9 (2023-03-28)

:bug: Bug Fix

Committers: 1

v11.4.8 (2023-03-14)

:bug: Bug Fix

  • #1801 Fix issue with token mapping for lint errors on template tokens in gjs/gts files by displaying eslint error on the opening <template> tag (@hmajoros)
  • #1788 Fix no-array-prototype extensions undefined error from trying to access callee from non-CallExpression (@canrozanes)
  • #1795 refactor glimmer post-process, better handle template tag (@hmajoros)

Committers: 2

v11.4.7 (2023-03-02)

:bug: Bug Fix

  • #1793 [gjs] Fix bug with regex issues when parsing GLIMMER_TEMPLATE (@hmajoros)
  • #1792 [gjs] Return original diagnostic if transformed line matches original line in glimmer preprocessor (@hmajoros)

Committers: 1

v11.4.6 (2023-02-01)

:bug: Bug Fix

Committers: 1

v11.4.5 (2023-01-28)

:bug: Bug Fix

  • #1748 Ignore Ember Data store service calls in no-array-prototype-extensions rule (@bmish)
  • #1761 Fix false positive with Promise.any() in no-array-prototype-extensions rule (@bmish)

Committers: 1

v11.4.4 (2023-01-23)

:bug: Bug Fix

  • #1749 Ignore direct instantiation of EmberArray in no-array-prototype-extensions rule (@canrozanes)

Committers: 1

v11.4.3 (2023-01-15)

:bug: Bug Fix

  • #1735 Fix crash from attempting to access non-existent dependent key in no-tracked-property-from-args rule (@joancc)

Committers: 1

v11.4.2 (2023-01-04)

:bug: Bug Fix

  • #1731 Handle new service import style in several rules (@wagenet)

:house: Internal

Committers: 2

v11.4.1 (2023-01-03)

:bug: Bug Fix

  • #1722 Fix some crashes including with legacy classes in no-deprecated-router-transition-methods and no-implicit-injections rules (@rtablada)

Committers: 1

v11.4.0 (2022-12-30)

:rocket: Enhancement

:house: Internal

  • #1720 Deprecate trivial node type check helpers (@bmish)

Committers: 2

v11.3.1 (2022-12-21)

:bug: Bug Fix

  • #1712 Fix crash with no-tracked-properties-from-args rule (@joancc)

:house: Internal

  • #1713 Switch to config file for eslint-doc-generator (@bmish)

Committers: 2

v11.3.0 (2022-12-20)

:rocket: Enhancement

:memo: Documentation

  • #1693 Mention ESLint overrides for glob patterns in no-restricted-service-injections rule doc (@bmish)

Committers: 3

v11.2.1 (2022-11-30)

:bug: Bug Fix

  • #1687 Don't lose optional chaining with objectAt in autofix for no-array-prototype-extensions rule (@52052100)

:house: Internal

  • #1686 Temporarily skip failing test scenario for gjs/gts processor (@nlfurniss)

Committers: 2

v11.2.0 (2022-10-27)

:rocket: Enhancement

:bug: Bug Fix

  • #1640 Avoid in-place sorting in sortBy autofixer in no-array-prototype-extensions rule (@tgvrssanthosh)

:memo: Documentation

  • #1646 Automate docs with eslint-doc-generator (@bmish)

Committers: 3

v11.1.0 (2022-10-18)

:rocket: Enhancement

:bug: Bug Fix

  • #1635 Simpler autofix for sortBy with single arg for no-array-prototype-extension rule (@bmish)

:memo: Documentation

  • #1639 Explain what the autofixer covers in no-array-prototype-extensions rule doc (@bmish)
  • #1618 Add codemod links for jQuery-related rules (@bmish)
  • #1601 Switch to dash for markdown lists (@bmish)
  • #1582 Add link to deprecation RFC in no-array-prototype-extensions rule doc (@bmish)

Committers: 2

v11.0.6 (2022-08-18)

:bug: Bug Fix

  • #1562 Remove no-array-prototype-extensions rule from recommended config (@ef4)
  • #1555 Ignore super in no-array-prototype-extensions rule (@bmish)

:memo: Documentation

  • #1569 Add link to Ember function prototype extension deprecation RFC (@bmish)
  • #1554 Mention no-array-prototype-extensions ember-template-lint rule (@bmish)

Committers: 2

v11.0.5 (2022-08-02)

:bug: Bug Fix

  • #1552 Fix false positive with reject() on instance of RSVP.defer() in no-array-prototype-extensions rule (@bmish)
  • #1547 Improve false positive detection, especially for variable names containing Set/Map, in no-array-prototype-extensions rule (@bmish)

Committers: 1

v11.0.4 (2022-07-29)

:bug: Bug Fix

  • #1546 Fix false positives with RSVP.Promise.reject() in no-array-prototype-extensions rule (@bmish)

:memo: Documentation

  • #1545 Improve documentation for no-*-prototype-extensions rules (@bmish)

Committers: 1

v11.0.3 (2022-07-26)

:bug: Bug Fix

  • #1544 Fix false positive with Set/Map-initialized private class properties in no-array-prototype-extensions rule (@bmish)
  • #1543 Fix false positive with Set/Map-initialized public class properties in no-array-prototype-extensions rule (@bmish)

Committers: 1

v11.0.2 (2022-07-23)

:bug: Bug Fix

  • #1538 Fix false positive with simple Set/Map-initialized objects in no-array-prototype-extensions rule (@bmish)
  • #1539 Fix false positive with RSVP.reject() in no-array-prototype-extensions (@gilest)

Committers: 2

v11.0.1 (2022-07-21)

:bug: Bug Fix

  • #1536 Ignore some commonly-known non-array functions/objects to reduce false positives in no-array-prototype-extensions rule (@bmish)

Committers: 1

v11.0.0 (2022-07-20)

:boom: Breaking Change

  • #1517 Add no-array-prototype-extensions as recommended rule (NOTE: removed as recommended in v11.0.6) (@bmish)
  • #1515 Drop support for ESLint v6 (@bmish)
  • #1318 Drop support for Node 10, 12, 15, 17 (@aggmoulik)
  • #1519 Enable useOptionalChaining option by default for no-get rule (@bmish)
  • #1518 Remove base config (@bmish)
  • #1516 Set config ecmaVersion to 2020 (@bmish)
  • #1513 Stop exporting non-Ember utils (@bmish)
  • #1514 Strictly define Node API (@bmish)
  • #1512 Update avoid-leaking-state-in-ember-objects rule to augment instead of replace default config (@bmish)

:rocket: Enhancement

  • #1529 Better support native class property definitions (and update to ESLint v8 internally) (@bmish)

:memo: Documentation

  • #1484 Improve links in no-array-prototype-extensions rule doc (@bmish)
  • #1480 Update optional rule example to use actual optional rule (@bmish)

:house: Internal

  • #1481 Add Node 18 to CI (@ddzz)
  • #1352 Upgrade ESLint dependencies and fix new linting issues (@ddzz)

Committers: 3

v10.6.1 (2022-05-04)

:bug: Bug Fix

  • #1476 Catch replace in no-array-prototype-extensions rule (@smilland)

Committers: 1

v10.6.0 (2022-04-08)

:rocket: Enhancement

Committers: 1

v10.5.9 (2022-02-14)

:bug: Bug Fix

  • #1431 Fix crash in jquery-ember-run rule (@ef4)

:memo: Documentation

:house: Internal

  • #1402 Add GitHub Actions to Dependabot config (@ddzz)

Committers: 3

v10.5.8 (2021-11-23)

:bug: Bug Fix

  • #1374 Allow empty-but-decorated classes in no-empty-glimmer-component-classes rule (@adrigzr)

:memo: Documentation

  • #1364 Fix typos in violation message for classic-decorator-hooks rule (@nlfurniss)

Committers: 4

v10.5.7 (2021-10-13)

:bug: Bug Fix

  • #1336 Avoid crash when estraverse does not recognize node type during traversal (@bmish)

Committers: 1

v10.5.6 (2021-10-12)

:bug: Bug Fix

  • #1333 Support ESLint v8 by switching from ESLint's internal traverser to estraverse (@bmish)

Committers: 1

v10.5.5 (2021-09-20)

:bug: Bug Fix

  • #1297 Support if/else route definitions in no-shadow-route-definition rule (@raido)

:memo: Documentation

:house: Internal

  • #1301 Add jsdoc type annotation to rules (@bmish)
  • #1299 Cache dependencies on GitHub Actions to speed up CI (@ddzz)

Committers: 4

v10.5.4 (2021-08-24)

:bug: Bug Fix

  • #1286 Avoid unnecessary optional chaining in autofix for no-get rule when using useOptionalChaining option (@raycohen)

Committers: 1

v10.5.3 (2021-08-17)

:bug: Bug Fix

  • #1283 Fix crash with let foo in no-controller-access-in-routes (@bmish)

Committers: 1

v10.5.2 (2021-08-17)

:bug: Bug Fix

:memo: Documentation

  • #1275 Fix typo in no-controller-access-in-routes rule doc (@locks)
  • #1245 Explain how to fix violations in no-empty-glimmer-component-classes rule doc (@hxqlin)

:house: Internal

Committers: 4

v10.5.1 (2021-06-20)

:bug: Bug Fix

  • #1237 Stop using deprecated ESLint report API (@bmish)
  • #1230 Use meta.hasSuggestions for suggestable rules to prepare for ESLint 8 (@bmish)

:memo: Documentation

  • #1241 Indicate which rules provide automated suggestions in README rules table (@bmish)

:house: Internal

  • #1222 Use ecmaVersion of 2020 internally for tests/linting (@bmish)

Committers: 1

v10.5.0 (2021-05-30)

:rocket: Enhancement

:bug: Bug Fix

  • #1212 Improve detection of property names (check string literals in addition to identifiers) in several rules (@bmish)
  • #1211 Fix false positive with non-components in require-tagless-components rule (@bmish)
  • #1210 Avoid some false positives with lodash usage when recognizing extended Ember objects (@bmish)
  • #1197 Check import when detecting controller usage in order-in-* rules (@lin-ll)
  • #1196 Check import when detecting observer usage in order-in-* rules (@lin-ll)

:memo: Documentation

  • #1213 Explain why some rules are not in the recommended config (@bmish)
  • #1204 Improve columns in README rules table (@bmish)

Committers: 2

v10.4.2 (2021-05-13)

:bug: Bug Fix

  • #1195 Fix false positives with service/controller/observer detection in some rules (@lin-ll)
  • #1187 Fix optional chaining support to handle newer ChainExpression implementation (@bmish)
  • #1179 Handle spread syntax with both babel-eslint and @babel/eslint-parser parsers in order-in-* rules (@bmish)

:house: Internal

  • #1191 Use requireindex to export rules and configs (@bmish)
  • #1180 Switch from babel-eslint to @babel/eslint-parser (@bmish)

Committers: 2

v10.4.1 (2021-04-21)

:bug: Bug Fix

  • #1160 Account for observer dependent keys in no-unused-services rule (@lin-ll)
  • #1164 Account for observes decorator in no-unused-services rule (@lin-ll)
  • #1162 Update several rules to check imports when checking for Ember service injections (@lin-ll)
  • #1167 Update route rules to handle route path option passed as object variable (@bmish)
  • #1165 Improve robustness of classic class body detection in several rules using getModuleProperties util (@bmish)
  • #1159 Improve robustness of classic class component body detection in require-tagless-components rule (@bmish)
  • #1158 Improve robustness of classic class controller body detection in no-controllers rule (@bmish)
  • #1168 Avoid some false positives with jQuery usage when recognizing extended objects (@bmish)

:memo: Documentation

  • #1161 Tweak messaging around false positives in no-unused-services rule (@bmish)

Committers: 2

v10.4.0 (2021-04-20)

:rocket: Enhancement

  • #1143 Add new rule no-unused-services (@lin-ll)
  • #1127 Add automated suggestion to route-path-style rule for converting route path to kebab case (@bmish)

:bug: Bug Fix

  • #1150 no-get rule should ignore proxy classes that look like ObjectProxy.extend(SomeMixin) (@bmish)
  • #1149 Detect classic classes which have object variables passed to them in no-classic-classes rule (@bmish)
  • #1135 Fix false positive in same level routes but nested paths in no-shadow-route-definition rule (@raido)
  • #1132 Fix crash with dynamic/variable route name in no-shadow-route-definition rule (again) (@raido)

Committers: 3

v10.3.0 (2021-03-22)

:rocket: Enhancement

  • #1113 Add additionalClassImports option to no-classic-classes rule (@scalvert)

:bug: Bug Fix

  • #1115 Fix crash with dynamic/variable route name in no-shadow-route-definition rule (@bmish)
  • #1102 Fix crash with this.extend() in no-classic-classes rule (@bmish)
  • #1114 Ensure rules validate arrays in options to have at least one item and unique items (@bmish)
  • #1103 Only calculate source module name once in import util function for slight optimization (@bmish)
  • #1081 Update avoid-leaking-state-in-ember-objects rule to apply to mixins (@jaydgruber)

Committers: 3

v10.2.0 (2021-01-31)

:rocket: Enhancement

:bug: Bug Fix

  • #1072 Improve jquery detection in jquery-ember-run rule (@bmish)

Committers: 2

v10.1.2 (2021-01-11)

:bug: Bug Fix

  • #1063 Improve detection of globals and catch additional jQuery function calls in no-jquery rule (@BarryThePenguin)
  • #1066 Improve detection of globals in no-global-jquery rule (@bmish)

:house: Internal

  • #1069 Improve tests for jquery-ember-run rule (@bmish)

Committers: 2

v10.1.1 (2020-12-29)

:bug: Bug Fix

  • #1059 Do not warn about Glimmer lifecycle hooks on classic components in no-component-lifecycle-hooks rule (@Turbo87)

:house: Internal

  • #1060 Automate release process with release-it-lerna-changelog (@bmish)

Committers: 2

v10.1.0 (2020-12-28)

:rocket: Enhancement

:bug: Bug Fix

:house: Internal

Committers: 4

v10.0.2 (2020-12-04)

:bug: Bug Fix

:memo: Documentation

  • #1028 Mention Ember 3.13 minimum version to use tracked properties and Glimmer components in some rule docs (@bmish)

Committers: 1

v10.0.1 (2020-12-02)

:bug: Bug Fix

Committers: 1

v10.0.0 (2020-12-01)

:boom: Breaking Change

:memo: Documentation

Committers: 3

v9.6.0 (2020-11-09)

:rocket: Enhancement

:bug: Bug Fix

  • #1001 Fix issues with no-get rule autofix with array access in nested path (@bmish)

Committers: 1

v9.5.0 (2020-11-05)

:rocket: Enhancement

:bug: Bug Fix

  • #998 Fix autofix for array element access at beginning of path string in no-get rule (@bmish)

Committers: 2

v9.4.0 (2020-10-28)

:rocket: Enhancement

:house: Internal

  • #991 Add test to ensure rule test files have correct test suite name (@bmish)

Committers: 4

v9.3.0 (2020-10-08)

:rocket: Enhancement

:bug: Bug Fix

Committers: 2

v9.2.0 (2020-10-02)

:rocket: Enhancement

:bug: Bug Fix

Committers: 2

v9.1.1 (2020-09-27)

:bug: Bug Fix

Committers: 1

v9.1.0 (2020-09-27)

:rocket: Enhancement

:memo: Documentation

:house: Internal

  • #945 Add sort-package-json (@bmish)
  • #944 Ensure rule doc notices are present in the correct order (@bmish)

Committers: 1

v9.0.0 (2020-09-07)

:boom: Breaking Change

Committers: 1

v8.14.0 (2020-09-07)

:rocket: Enhancement

:bug: Bug Fix

:house: Internal

Committers: 1

v8.13.0 (2020-08-26)

:rocket: Enhancement

:bug: Bug Fix

Committers: 2

v8.12.0 (2020-08-18)

:rocket: Enhancement

:bug: Bug Fix

Committers: 1

v8.11.0 (2020-08-14)

:rocket: Enhancement

  • #912 Add catchSafeObjects option (default false) to no-get rule to catch get(foo, 'bar') (@bmish)
  • #913 Add catchUnsafeObjects option (default false) to no-get rule to catch foo.get('bar') (@bmish)

:bug: Bug Fix

  • #911 Update no-test-import-export rule to allow importing from anything under tests/helpers path (when using relative path) (@bmish)
  • #909 Check imports when detecting computed properties in many rules (@bmish)

Committers: 1

v8.10.1 (2020-08-07)

:bug: Bug Fix

Committers: 1

v8.10.0 (2020-08-05)

:rocket: Enhancement

Committers: 2

v8.9.2 (2020-07-23)

:bug: Bug Fix

:house: Internal

Committers: 1

v8.9.1 (2020-07-05)

:bug: Bug Fix

Committers: 1

v8.9.0 (2020-06-28)

:rocket: Enhancement

:bug: Bug Fix

Committers: 1

v8.8.0 (2020-06-24)

:rocket: Enhancement

:bug: Bug Fix

Committers: 2

v8.7.0 (2020-06-15)

:rocket: Enhancement

:memo: Documentation

Committers: 1

v8.6.0 (2020-06-02)

:rocket: Enhancement

:memo: Documentation

:house: Internal

  • #828 Ensure rule docs mention all rule configuration options (@bmish)

Committers: 2

v8.5.2 (2020-05-21)

:bug: Bug Fix

  • #821 Avoid some false positives when detecting if a file is an Ember component, controller, etc (@bmish)

:memo: Documentation

Committers: 2

v8.5.1 (2020-05-10)

:bug: Bug Fix

:house: Internal

Committers: 1

v8.5.0 (2020-05-06)

:rocket: Enhancement

:bug: Bug Fix

:memo: Documentation

:house: Internal

Committers: 5

v8.4.0 (2020-04-15)

:rocket: Enhancement

:bug: Bug Fix

Committers: 3

v8.3.0 (2020-04-14)

:rocket: Enhancement

:bug: Bug Fix

Committers: 1

v8.2.0 (2020-04-10)

:rocket: Enhancement

:memo: Documentation

:house: Internal

Committers: 2

v8.1.1 (2020-04-01)

:bug: Bug Fix

:memo: Documentation

Committers: 1

v8.1.0 (2020-03-29)

:rocket: Enhancement

:bug: Bug Fix

  • #746 Do not disable non-recommended rules in the recommended config (@bmish)

:memo: Documentation

  • #749 Add missing init hook super calls in rule examples (@bmish)
  • #748 Switch to new module imports in rule examples (@bmish)
  • #745 Replace this.get('property') with this.property in rule examples (@bmish)

Committers: 1

v8.0.0 (2020-03-28)

:boom: Breaking Change

Committers: 1

v7.13.0 (2020-03-28)

:rocket: Enhancement

:house: Internal

  • #741 Switch from Travis to GitHub Actions for CI (@bmish)

Committers: 1

v7.12.0 (2020-03-27)

:rocket: Enhancement

:memo: Documentation

:house: Internal

Committers: 2

v7.11.1 (2020-03-25)

:bug: Bug Fix

:memo: Documentation

  • #724 Recategorize rules in README (@bmish)
  • #723 Sort rule categories alphabetically in README (@bmish)

Committers: 1

v7.11.0 (2020-03-20)

:rocket: Enhancement

:bug: Bug Fix

:memo: Documentation

  • #716 Revamp the guide for contributing a new rule (@bmish)
  • #715 Mention if a rule is auto-fixable in its documentation (@bmish)
  • #713 Add tests to ensure each rule documentation file has the right title and an examples section (@bmish)
  • #711 Improve contribution guide for adding new rules (@TheMBTH)

:house: Internal

  • #720 Add tests to ensure some computed property rules handle the @computed decorator (@bmish)

Committers: 3

v7.10.1 (2020-03-07)

:bug: Bug Fix

  • #697 Handle service injections with no arguments in no-private-routing-service rule (@nlfurniss)

Committers: 1

v7.10.0 (2020-03-06)

:rocket: Enhancement

Committers: 1

v7.9.0 (2020-03-01)

:rocket: Enhancement

  • #595 Add new rule no-component-lifecycle-hooks (included in octane config) (@jbandura)
  • #681 Add new rule no-legacy-test-waiters (@scalvert)

:memo: Documentation

  • #688 Lint code samples with eslint-plugin-markdown (@bmish)

Committers: 3

v7.8.1 (2020-02-14)

:bug: Bug Fix

  • #674 Update require-computed-property-dependencies rule to handle basic string concatenation in dependent keys (@bmish)

:memo: Documentation

  • #669 Add "Help Wanted" section to documentation for rules that are missing native JavaScript class support (@bmish)

Committers: 1

v7.8.0 (2020-02-12)

:rocket: Enhancement

  • #661 Add new rule no-controllers (@bmish)
  • #665 Update order-in-* rules to support custom ordering of properties (@cdtinney)
  • #639 Update no-observers rule to catch addObserver and observer imports (@kategengler)

:bug: Bug Fix

  • #670 Update order-in-* rules to consider template literals as properties (@cdtinney)
  • #664 Update no-classic-components rule to only disallow the specific component import (@bmish)
  • #640 Update no-computed-properties-in-native-classes rule to catch aliasing of computed import (@kategengler)

:memo: Documentation

  • #663 Update rule docs to use consistent headers and fix markdownlint violations (@bmish)
  • #655 Update no-new-mixins rule documentation (@efx)
  • #648 Fix various spelling mistakes (@bmish)
  • #647 Fix typo in no-classic-components rule documentation (@rwwagner90)
  • #626 Simplify and clarify rules and configuration sections in README (@bmish)

:house: Internal

  • #643 Add missing test case output assertions (@bmish)

Committers: 5

v7.7.2 (2019-12-12)

:bug: Bug Fix

  • #621 Fix false positive with ignoreNonThisExpressions option in use-ember-get-and-set rule (@Exelord)

:memo: Documentation

  • #620 Use consistent prefixes for rule descriptions (@bmish)

:house: Internal

  • #625 Add eslint-plugin-jest internally and enable rules (@bmish)
  • #624 Add eslint-plugin-unicorn internally and enable recommended rules (@bmish)

Committers: 2

v7.7.1 (2019-11-29)

:bug: Bug Fix

  • #615 Fix issue causing assert to fire in getSourceModuleName util function (@patocallaghan)

Committers: 1

v7.7.0 (2019-11-29)

:rocket: Enhancement

  • #592 Update no-classic-classes rule to catch classic Ember Data model classes (@patocallaghan)

:bug: Bug Fix

  • #610 Fix invalid no-get rule autofix caused by invalid JS variable name (@bmish)
  • #607 Fix spread property bug in require-super-in-init rule (@bmish)
  • #600 Add missing schema validation for options on many rules (@bmish)

:house: Internal

  • #611 Add many missing tests for lines without test coverage (@bmish)

Committers: 2

v7.6.0 (2019-11-19)

:rocket: Enhancement

Committers: 1

v7.5.0 (2019-11-11)

:rocket: Enhancement

  • #583 Update no-observers rule to handle decorators (@bmish)
  • #577 Add autofixer to no-get rule (@bmish)

:bug: Bug Fix

  • #586 Update use-brace-expansion rule to only report the string arguments of a computed property as the violation (and not the entire function body) (@bmish)
  • #581 Update no-get rule to ignore get() usages inside objects implementing unknownProperty() (@bmish)
  • #580 Update no-get rule to ignore get() usages inside proxy objects (@bmish)
  • #579 Fix handling of multi-line property keys by require-computed-property-dependencies rule (@bmish)

:memo: Documentation

  • #588 Add type meta property to each rule (@bmish)
  • #587 And missing rule documentation URLs (@bmish)

:house: Internal

  • #582 Add CI check to ensure yarn update is run to update docs/autogenerated files (@bmish)
  • #574 Update reportUnorderedProperties util function to also work with native classes (@laurmurclar)

Committers: 2

v7.4.1 (2019-11-07)

:bug: Bug Fix

  • #575 Update avoid-leaking-state-in-ember-objects rule to handle logical expressions (@alexlafroscia)
  • #571 Update avoid-leaking-state-in-ember-objects rule to handle ternary expressions (@alexlafroscia)
  • #573 Update require-computed-macros rule to handle this.get('property') (in addition to this.property) (@bmish)

Committers: 2

v7.4.0 (2019-11-06)

:rocket: Enhancement

:house: Internal

  • #570 Simplify some tests by setting parserOptions globally instead of in each individual test case (@bmish)
  • #568 Add tests to ensure plugin exports correct configurations (@bmish)
  • #563 Lint against unnecessary template literals internally (@bmish)

Committers: 3

v7.3.0 (2019-10-30)

:rocket: Enhancement

:bug: Bug Fix

  • #553 Avoid crash from missing function check in require-super-in-init rule (@bmish)

:memo: Documentation

:house: Internal

  • #558 Update isEmberCoreModule util function to also handle native classes (in addition to classic classes) (@laurmurclar)

Committers: 5

v7.2.0 (2019-10-20)

:rocket: Enhancement

  • #545 Add ignoreNonThisExpressions option to use-ember-get-and-set rule (@nlfurniss)
  • #534 Add onlyThisContexts option to no-arrow-function-computed-properties rule (@NullVoxPopuli)
  • #537 Add ignoreGetProperties option for no-get rule (@EvgenyOrekhov)

:house: Internal

  • #462 Refactor null checks for new-module-imports and use-ember-data-rfc-395-imports rules (@dcyriller)
  • #528 Add eslint-plugin-node and enable recommended rules internally (@bmish)
  • #524 Add eslint-plugin-filenames to enforce kebab-case filenames (@bmish)
  • #523 Add eslint-plugin-eslint-comments and fix violations (@bmish)

Committers: 5

v7.1.0 (2019-09-18)

:rocket: Enhancement

:bug: Bug Fix

  • #511 Avoid crash from empty return statement in require-computed-macros rule (@bmish)
  • #512 Avoid crash when missing arguments to this.route() in route-path-style rule (@bmish)
  • #498 Fix decorator handling and improve error messages for computed-property-getters rule (@Exelord)
  • #504 Update require-computed-property-dependencies rule to ignore injected service names by default (@bmish)

:memo: Documentation

  • #514 Hide the deprecated rules section from the README if empty (@bmish)
  • #510 Cleanup code samples in some of the new V7 recommended rules (@bmish)
  • #496 Suggest using the eslint consistent-return rule alongside require-return-from-computed rule to help avoid false positives (@bmish)
  • #506 Add example of a getter with an if statement for require-return-from-computed rule (@bradleypriest)

:house: Internal

  • #519 Add CI check to ensure yarn.lock is up-to-date (@bmish)
  • #516 Test plugin under both eslint 5 and eslint 6 (@bmish)
  • #515 Add eslint-plugin-eslint-plugin and enable/autofix most rules (@bmish)
  • #505 Enforce minimum test coverage (@bmish)
  • #503 Refactor utils to move type checking utils to a separate file and alphabetize (@bmish)

Committers: 4

v7.0.0 (2019-08-23)

:boom: Breaking Change

  • #491 Drop eslint 4 support (@bmish)
  • #486 Enable additional recommended rules (no-arrow-function-computed-properties, no-deeply-nested-dependent-keys-with-each, no-ember-super-in-es-classes, no-incorrect-calls-with-inline-anonymous-functions, no-invalid-debug-function-arguments, no-new-mixins, no-unnecessary-route-path-option, no-volatile-computed-properties, require-return-from-computed) (@bmish)
  • #487 Remove deprecated rules (avoid-leaking-state-in-components, local-modules, no-get-properties) (@bmish)
  • #485 Drop Node 6 support (@bmish)

Committers: 1

v6.10.1 (2019-08-23)

:bug: Bug Fix

  • #488 Update require-computed-property-dependencies rule to support eslint 3 and 4 (@bmish)

:memo: Documentation

  • #489 Document eslint 4 as the minimum supported version (@bmish)

:house: Internal

  • #482 Start testing plugin under Node 12 (@bmish)

Committers: 1

v6.10.0 (2019-08-19)

:rocket: Enhancement

  • #473 Add new no-incorrect-calls-with-inline-anonymous-functions rule (@raycohen)

:bug: Bug Fix

  • #476 Add allowDynamicKeys option (default true) to require-computed-property-dependencies rule (@bmish)

Committers: 2

v6.9.1 (2019-08-14)

:bug: Bug Fix

  • #472 Improve handling of nested keys inside braces for require-computed-property-dependencies rule (@bmish)
  • #471 Improve detection of missing dependencies in require-computed-property-dependencies rule (@bmish)

Committers: 1

v6.9.0 (2019-08-12)

:rocket: Enhancement

  • #458 Add new rule require-computed-property-dependencies (@bmish)

:bug: Bug Fix

  • #463 Fix false positives for import statements with use-ember-data-rfc-395-imports rule (@fusion2004)

:house: Internal

  • #465 Add tests that rules are setup correctly (not missing tests, docs, exports, etc) (@bmish)
  • #466 Fix eslint 6 rule test parser error (@bmish)

Committers: 2

v6.8.2 (2019-08-08)

:bug: Bug Fix

  • #461 Add null check in new-module-imports rule (again) (@bmish)

Committers: 1

v6.8.1 (2019-08-08)

:bug: Bug Fix

Committers: 1

v6.8.0 (2019-08-08)

:rocket: Enhancement

:memo: Documentation

  • #454 Improve justification for no-observers rule (@efx)

:house: Internal

Committers: 3

v6.7.1 (2019-07-02)

:bug: Bug Fix

  • #440 Add missing rules classic-decorator-hooks and classic-decorator-no-classic-methods to index.js (@bmish)

Committers: 1

v6.7.0 (2019-06-22)

:rocket: Enhancement

  • #436 Adds decorator rules to aid migration to Octane (@pzuraq)
  • #434 Add new no-volatile-computed-properties rule (@bmish)

:bug: Bug Fix

  • #432 Update require-computed-macros rule to suggest the reads macro instead of readOnly for computed properties with return this.x (@bmish)

:house: Internal

Committers: 4

v6.6.0 (2019-06-16)

:rocket: Enhancement

  • #429 Add new require-computed-macros rule (@bmish)

:bug: Bug Fix

  • #428 Fix spread operator bug in no-on-calls-in-components rule (@rajasegar)

:memo: Documentation

  • #431 Add link to sendAction deprecation RFC for closure-actions rule (@bmish)

Committers: 2

v6.5.1 (2019-05-27)

:bug: Bug Fix

  • #427 Fix typo in error message for no-get rule (@bmish)

Committers: 1

v6.5.0 (2019-05-26)

:rocket: Enhancement

  • #421 Update the no-get rule to also handle the getProperties function, and mark the no-get-properties rule as deprecated (@bmish)
  • #397 Add new computed-property-getters rule (@jrjohnson)

:memo: Documentation

Committers: 2

v6.4.1 (2019-04-21)

:bug: Bug Fix

  • #413 Ignore template literals in no-get and no-get-properties rules (@bmish)

Committers: 1

v6.4.0 (2019-04-21)

:rocket: Enhancement

:bug: Bug Fix

  • #398 no-unnecessary-route-path-option: fix error when path is undefined (@bmish)

:memo: Documentation

Committers: 2

v6.3.0 (2019-03-19)

:rocket: Enhancement

  • #369 Add new 'route-path-style' rule (@bmish)
  • #372 Add new 'no-unnecessary-index-route' rule (@bmish)
  • #262 Add new 'require-return-from-computed' rule (@gmurphey)
  • #378 Add new no-unnecessary-service-injection-argument rule (@bmish)

:memo: Documentation

  • #395 docs: improve closure-action rule examples (@Caltor)
  • #383 no-deeply-nested-dependent-keys-with-each: Fix documentation examples (@Alonski)

:house: Internal

  • #386 test: add null output assertions for lint rules / test cases with no autofixer. (@bmish)

Committers: 4

v6.2.0 (2019-01-28)

:rocket: Enhancement

  • #375 no-test-and-then: slight optimization (@bmish)
  • #373 no-unnecessary-route-path-option: Add support for --fix (@bmish)
  • #370 Add no-unnecessary-route-path-option rule (@bmish)
  • #365 no-invalid-debug-function-arguments: Use dynamic error message (@bmish)
  • #364 assert-arg-order: Rename to no-invalid-debug-function-arguments and detect invalid usages of deprecate and warn too (@bmish)
  • #358 Add assert-arg-order rule (@bmish)
  • #359 Add no-deeply-nested-dependent-keys-with-each rule (@bmish)
  • #357 Add no-test-and-then rule (@bmish)

:bug: Bug Fix

  • #371 no-test-and-then: Run only on test files (@bmish)
  • #367 no-deeply-nested-dependent-keys-with-each: Fix false positives (@bmish)
  • #366 no-invalid-debug-function-arguments: Fix false positives (@bmish)
  • #362 assert-arg-order: Fix rule for Ember.assert() case (@bmish)

:memo: Documentation

  • #380 no-test-and-then: Add migration path docs (@bmish)
  • #368 no-test-and-then: Fix code sample in docs (@bmish)
  • #361 no-deeply-nested-dependent-keys-with-each: Fix docs typo (@bmish)
  • #360 Use more specific array types in util jsdoc comments (@bmish)
  • #355 avoid-leaking-state-in-ember-objects: Show usage example of DEFAULT_IGNORED_PROPERTIES (@yoavfranco)
  • #354 avoid-needs-in-controllers: Add documentation (@quajo)

:house: Internal

  • #363 no-deeply-nested-dependent-keys-with-each: Add more tests (@bmish)

Committers: 3

v6.1.0 (2018-12-15)

:rocket: Enhancement

  • #350 Introduce no-ember-super-in-es-classes rule (@dfreeman)
  • #298 no-jquery: Check for aliased imports from 'jquery' module (@initram)

:bug: Bug Fix

  • #353 Fix error with avoid-leaking-state-in-ember-objects and spread (@nlfurniss)
  • #348 Fix no-restricted-resolver-tests to narrow scope of rule (@scalvert)
  • #332 use-brace-expansion: Limit lint rule to only trigger for computed() but no other macros (@gmurphey)

:memo: Documentation

  • #349 Update avoid-leaking-state-in-ember-objects documentation. (@samselikoff)
  • #345 Fix typo on getNoPOJOWithoutIntegrationTrueMessage. (@esbanarango)
  • #341 Clarify no-ember-testing-in-module-scope documentation. (@cibernox)

:house: Internal

  • #347 TravisCI: Remove deprecated sudo: false option (@Turbo87)

Committers: 9

v6.0.1 (2018-11-16)

:rocket: Enhancement

  • #331 Updating no-side-effects to also report on setProperties. (@gmurphey)

:bug: Bug Fix

:house: Internal

  • #335 Remove outdated .nvmrc file (@Turbo87)
  • #334 package.json: Limit published files to the lib folder (@Turbo87)
  • #336 CI: Use --runInBand option of Jest to speed up tests (@Turbo87)

Committers: 2

v6.0.0 (2018-11-14)

This release includes several changes to the ember/recommended configuration, and drops support for Node.js 4 and ESLint 3.

:boom: Breaking Change

:rocket: Enhancement

  • #311 Add avoid-using-needs-in-controllers to recommended set. (@rwjblue)
  • #310 Add no-restricted-resolver-tests to recommended. (@rwjblue)
  • #309 Make no-observers rule recommended (@Gaurav0)

Committers: 4

v5.4.0 (2018-11-09)

:rocket: Enhancement

:bug: Bug Fix

Committers: 2

v5.3.0 (2018-11-08)

:rocket: Enhancement

:bug: Bug Fix

  • #299 Fix issue with no-duplicate-dependent-keys to avoid errors on non-string dependent keys. (@initram)
  • #260 Updating no-side-effects rule to better detect sets inside of blocks. (@gmurphey)
  • #246 Updating no-on-calls-in-components to only fail components using on with lifecylcle hooks. (@patience-tema-baron)

:memo: Documentation

  • #276 Add reason for rule no-on-calls-in-components. (@cbou)
  • #277 docs: remove get from closure action example. (@knownasilya)
  • #266 Update no-empty-attrs description. (@locks)

:house: Internal

  • #280 Clean up a couple of test definitions to unblock update script. (@tmquinn)

Committers: 12

v5.2.0 (2018-05-15)

:rocket: Enhancement

  • #142 Port code to ember-rfc176-data new format. (@Serabe)
  • #245 [avoid-leaking-state-in-ember-objects] Expose default ignored properties. (@Kerrick)

:memo: Documentation

:house: Internal

  • #142 Port code to ember-rfc176-data new format. (@Serabe)

Committers: 3

v5.1.1 (2018-05-14)

:bug: Bug Fix

  • #229 Fix no-capital-letters-in-routes so it deals with MemberExpressions. (@nlfurniss)

:memo: Documentation

:house: Internal

Committers: 4

v5.1.0 (2018-03-11)

:rocket: Enhancement

:bug: Bug Fix

  • #233 Fix init order in controllers and routes. (@ro0gr)
  • #198 Add new scenarios for require-super-in-init rule. (@clcuevas)
  • #205 add willInsertElement component lifecycle hook. (@hakubo)

Committers: 8

v5.0.3 (2017-12-21)

:bug: Bug Fix

  • #197 Don't fail 'no-global-jquery' if module has both jquery and ember imports. (@danwenzel)

Committers: 1

v5.0.2 (2017-12-18)

:bug: Bug Fix

  • #186 Update no-global-jquery rule to account for new modules import. (@clcuevas)

:memo: Documentation

Committers: 2

v5.0.1 (2017-11-20)

:rocket: Enhancement

:bug: Bug Fix

  • #184 Prevent error when destructured path is not in known globals.. (@rwjblue)

:memo: Documentation

Committers: 6

  • Alon Bukai (Alonski)
  • Claudia Cuevas (clcuevas)
  • Jacek Bandura (jbandura)
  • Richard Machielse (rmachielse)
  • Robert Jackson (rwjblue)
  • Tobias Bieniek (Turbo87) -

    v5.0.0 (2017-11-20)

  • 📦 - Change recommended rule set to match eslint pattern of only including rules that prevent errors (and specifically excluding stylistic rules).

    • ❌ - Remove alias-model-in-controller from ember/recommended rule set.
    • ❌ - Remove avoid-leaking-state-in-components from ember/recommended rule set.
    • ❌ - Remove named-functions-in-promises from ember/recommended rule set.
    • ❌ - Remove no-empty-attrs from ember/recommended rule set.
    • ❌ - Remove no-observers from ember/recommended rule set.
    • ❌ - Remove use-ember-get-and-set from ember/recommended rule set.
    • ❌ - Remove order-in-components from ember/recommended rule set.
    • ❌ - Remove order-in-controllers from ember/recommended rule set.
    • ❌ - Remove order-in-models from ember/recommended rule set.
    • ❌ - Remove order-in-routes from ember/recommended rule set.
    • ✅ - Add avoid-leaking-state-in-ember-objects to ember/recommended rule set.
    • ✅ - Add new-module-imports to ember/recommended rule set.
    • ✅ - Add no-attrs-in-components to ember/recommended rule set.
    • ✅ - Add no-duplicate-dependent-keys from ember/recommended rule set.
    • ✅ - Add no-global-jquery to ember/recommended rule set.
    • ✅ - Add no-old-shims to ember/recommended rule set.
    • ✅ - Add require-super-in-init to ember/recommended rule set.

:boom: Breaking Change

:rocket: Enhancement

:memo: Documentation

Committers: 9

v4.6.2 (2017-11-15)

:rocket: Enhancement

:bug: Bug Fix

:memo: Documentation

:house: Internal

Committers: 9

v4.6.1 (2017-11-06)

:bug: Bug Fix

  • #160 ignore tagged templates for avoid-leaking-state-in-ember-objects rule. (@amk221)

Committers: 1

v4.6.0 (2017-11-03)

:rocket: Enhancement

:memo: Documentation

Committers: 3

v4.5.0 (2017-09-02)

:rocket: Enhancement

  • #121 Add rule to disallow this.$ to prepare apps to remove jQuery. (@cibernox)

Committers: 1

v4.4.0 (2017-09-02)

:rocket: Enhancement

:bug: Bug Fix

  • #132 Don't report on Ember method calls in use-ember-get-and-set. (@sudowork)

:house: Internal

Committers: 4

v4.3.0 (2017-08-15)

:rocket: Enhancement

:bug: Bug Fix

  • #107 Don't suggest nested property brace expansion. (@Kerrick)

:memo: Documentation

:house: Internal

Committers: 6

v4.2.0 (2017-08-03)

:rocket: Enhancement

:house: Internal

Committers: 2

v4.1.3 (2017-08-01)

:bug: Bug Fix

Committers: 1

v4.1.1 (2017-08-01)

:rocket: Enhancement

:bug: Bug Fix

  • #111 Add solution for service ordering when new module imports used. (@jbandura)
  • #98 Detecting computed properties with MemberExpressions. (@jbandura)

:memo: Documentation

Committers: 4

v3.6.2 (2017-07-13)

:bug: Bug Fix

  • #93 Make sure negative values are treated as properties. (@jbandura)

Committers: 1

v3.6.1 (2017-07-11)

:bug: Bug Fix

  • #94 Fix method of detecting whether route segment present. (@jbandura)

Committers: 1

v3.6.0 (2017-07-10)

:rocket: Enhancement

:house: Internal

Committers: 1

v3.5.0 (2017-06-26)

:rocket: Enhancement

Committers: 2

v3.4.1 (2017-05-30)

:bug: Bug Fix

  • #74 Revert "Make it available on emberobserver.com". (@Turbo87)

Committers: 1

v3.4.0 (2017-05-27)

:rocket: Enhancement

Committers: 1

v3.3.0 (2017-05-24)

:rocket: Enhancement

  • #64 Allow concise ArrowFunctionExpression (named-functions-in-promises). (@sudowork)
  • #66 Support tagged templates expressions. (@michalsnik)

:memo: Documentation

Committers: 3

v3.2.0 (2017-05-23)

:rocket: Enhancement

  • #60 alias-model-in-controller should support readOnly and reads. (@michalsnik)
  • #46 Fix typo in documentation: rename 'no-side-effect' to 'no-side-effects'. (@RusPosevkin)

:memo: Documentation

:house: Internal

Committers: 4

v3.1.2 (2017-03-24)

:rocket: Enhancement

:memo: Documentation

Committers: 2

v3.1.1 (2017-03-16)

:rocket: Enhancement

Committers: 1

v3.1.0 (2017-03-16)

:rocket: Enhancement

  • #37 27 / Detect module types based on their files' path. (@michalsnik)

Committers: 1

v3.0.2 (2017-03-08)

:rocket: Enhancement

:memo: Documentation

  • #35 Typo in docs / closure-actions.md. (@nfc036)
  • #36 Remove remaining references to "query-params-on-top" rule. (@Turbo87)

Committers: 3

v3.0.0 (2017-02-20)

:rocket: Enhancement

:house: Internal

Committers: 1

v2.2.2 (2017-02-15)

:rocket: Enhancement

  • #31 Treat conditional expressions as custom properties. (@michalsnik)

Committers: 1

v2.2.1 (2017-02-15)

:bug: Bug Fix

  • #30 Check only model's properties against no-empty-attrs rule. (@michalsnik)

Committers: 1

v2.2.0 (2017-02-14)

:rocket: Enhancement

  • #23 Improved error messages for order-in rules. (@Turbo87)

Committers: 1

v2.1.1 (2017-02-07)

:bug: Bug Fix

:memo: Documentation

Committers: 2

v2.1.0 (2017-02-05)

:rocket: Enhancement

  • #15 Report correct positions for "order-in-*" rules. (@Turbo87)

:memo: Documentation

:house: Internal

Committers: 4

v2.0.1 (2017-01-16)

:bug: Bug Fix

  • #3 Fix error in 'use-brace-expansion' rule. (@dwickern)

Committers: 1

v2.0.0 (2016-12-30)

:rocket: Enhancement

:bug: Bug Fix

  • False positive for no-empty-attrs. (@bdmac)
  • order-in-controllers vs query-params-on-top. (@michalsnik)
  • #16 Fix named-functions-in-promises rule. (@michalsnik)

:memo: Documentation

:house: Internal

Committers: 9