New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

eslint-plugin-ember

Package Overview
Dependencies
Maintainers
6
Versions
190
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-plugin-ember - npm Package Compare versions

Comparing version 6.4.1 to 6.5.0

lib/rules/computed-property-getters.js

15

CHANGELOG.md
# Changelog
## 6.4.1 (2019-04-21)
## v6.5.0 (2019-05-26)
#### :rocket: Enhancement
* [#421](https://github.com/ember-cli/eslint-plugin-ember/pull/421) Update the `no-get` rule to also handle the `getProperties` function, and mark the `no-get-properties` rule as deprecated ([@bmish](https://github.com/bmish))
* [#397](https://github.com/ember-cli/eslint-plugin-ember/pull/397) Add new `computed-property-getters` rule ([@jrjohnson](https://github.com/jrjohnson))
#### :memo: Documentation
* [#412](https://github.com/ember-cli/eslint-plugin-ember/pull/412) Update release instructions ([@bmish](https://github.com/bmish))
#### Committers: 2
- Bryan Mishkin ([@bmish](https://github.com/bmish))
- Jonathan Johnson ([@jrjohnson](https://github.com/jrjohnson))
## v6.4.1 (2019-04-21)
#### :bug: Bug Fix

@@ -6,0 +19,0 @@ * [#413](https://github.com/ember-cli/eslint-plugin-ember/pull/413) Ignore template literals in `no-get` and `no-get-properties` rules ([@bmish](https://github.com/bmish))

3

lib/recommended-rules.js

@@ -13,2 +13,3 @@ /*

"ember/closure-actions": "error",
"ember/computed-property-getters": "off",
"ember/jquery-ember-run": "error",

@@ -53,2 +54,2 @@ "ember/local-modules": "off",

"ember/use-ember-get-and-set": "off"
}
}

@@ -16,4 +16,6 @@ 'use strict';

category: 'Best Practices',
replacedBy: ['no-get'],
recommended: false
},
deprecated: true,
ERROR_MESSAGE

@@ -20,0 +22,0 @@ },

@@ -5,3 +5,3 @@ 'use strict';

function makeErrorMessage(property, isImportedGet) {
function makeErrorMessageForGet(property, isImportedGet) {
return isImportedGet

@@ -12,7 +12,10 @@ ? `Use \`this.${property}\` instead of \`get(this, '${property}')\``

const ERROR_MESSAGE_GET_PROPERTIES = "Use `{ this.prop1, this.prop2, ... }` instead of Ember's `getProperties` function";
module.exports = {
makeErrorMessage,
makeErrorMessageForGet,
ERROR_MESSAGE_GET_PROPERTIES,
meta: {
docs: {
description: "Disallow unnecessary usage of Ember's `get` function",
description: "Require ES5 getters instead of Ember's `get` / `getProperties` functions",
category: 'Best Practices',

@@ -25,5 +28,10 @@ recommended: false

CallExpression(node) {
// **************************
// get
// **************************
if (
utils.isMemberExpression(node.callee) &&
utils.isThisExpression(node.callee.object) &&
utils.isIdentifier(node.callee.property) &&
node.callee.property.name === 'get' &&

@@ -35,3 +43,3 @@ node.arguments.length === 1 &&

// Example: this.get('foo');
context.report(node, makeErrorMessage(node.arguments[0].value), false);
context.report(node, makeErrorMessageForGet(node.arguments[0].value), false);
}

@@ -48,4 +56,29 @@

// Example: get(this, 'foo');
context.report(node, makeErrorMessage(node.arguments[1].value, true));
context.report(node, makeErrorMessageForGet(node.arguments[1].value, true));
}
// **************************
// getProperties
// **************************
if (
utils.isMemberExpression(node.callee) &&
utils.isThisExpression(node.callee.object) &&
utils.isIdentifier(node.callee.property) &&
node.callee.property.name === 'getProperties' &&
validateGetPropertiesArguments(node.arguments)
) {
// Example: this.getProperties('foo', 'bar');
context.report(node, ERROR_MESSAGE_GET_PROPERTIES);
}
if (
utils.isIdentifier(node.callee) &&
node.callee.name === 'getProperties' &&
utils.isThisExpression(node.arguments[0]) &&
validateGetPropertiesArguments(node.arguments.slice(1))
) {
// Example: getProperties(this, 'foo', 'bar');
context.report(node, ERROR_MESSAGE_GET_PROPERTIES);
}
}

@@ -55,1 +88,9 @@ };

};
function validateGetPropertiesArguments(args) {
if (args.length === 1 && utils.isArrayExpression(args[0])) {
return validateGetPropertiesArguments(args[0].elements);
}
// We can only handle string arguments without nested property paths.
return args.every(argument => utils.isStringLiteral(argument) && !argument.value.includes('.'));
}
{
"name": "eslint-plugin-ember",
"version": "6.4.1",
"version": "6.5.0",
"description": "Eslint plugin for Ember.js apps",

@@ -57,3 +57,3 @@ "main": "lib/index.js",

"eslint-plugin-import": "^2.17.2",
"jest": "^24.7.1",
"jest": "^24.8.0",
"lerna-changelog": "^0.8.2"

@@ -60,0 +60,0 @@ },

@@ -92,4 +92,3 @@ # eslint-plugin-ember

| :white_check_mark: | [no-function-prototype-extensions](./docs/rules/no-function-prototype-extensions.md) | Prevents usage of Ember's `function` prototype extensions |
| | [no-get-properties](./docs/rules/no-get-properties.md) | Disallow unnecessary usage of Ember's `getProperties` function |
| | [no-get](./docs/rules/no-get.md) | Disallow unnecessary usage of Ember's `get` function |
| | [no-get](./docs/rules/no-get.md) | Require ES5 getters instead of Ember's `get` / `getProperties` functions |
| :white_check_mark: | [no-global-jquery](./docs/rules/no-global-jquery.md) | Prevents usage of global jQuery object |

@@ -133,2 +132,3 @@ | | [no-jquery](./docs/rules/no-jquery.md) | Disallow any usage of jQuery |

| :white_check_mark: | [avoid-leaking-state-in-ember-objects](./docs/rules/avoid-leaking-state-in-ember-objects.md) | Avoids state leakage |
| | [computed-property-getters](./docs/rules/computed-property-getters.md) | Enforce the consistent use of getters in computed properties |

@@ -162,2 +162,3 @@

| [local-modules](./docs/rules/local-modules.md) | [new-module-imports](./docs/rules/new-module-imports.md) |
| [no-get-properties](./docs/rules/no-get-properties.md) | [no-get](./docs/rules/no-get.md) |

@@ -164,0 +165,0 @@ <!--RULES_TABLE_END-->

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc