Socket
Socket
Sign inDemoInstall

eslint-plugin-promise

Package Overview
Dependencies
Maintainers
1
Versions
47
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-plugin-promise - npm Package Compare versions

Comparing version 3.1.0 to 3.2.0

rules/lib/is-promise.js

8

CHANGELOG.md

@@ -0,1 +1,9 @@

## 3.2.0
- Added `no-return-wrap` rule
## 3.1.0
- Added multiple terminationMethods
## 3.0.1

@@ -2,0 +10,0 @@

2

package.json
{
"name": "eslint-plugin-promise",
"version": "3.1.0",
"version": "3.2.0",
"description": "Enforce best practices for JavaScript promises",

@@ -5,0 +5,0 @@ "keywords": [

@@ -119,2 +119,27 @@ # eslint-plugin-promise

### `no-return-wrap`
Ensure that inside a `then()` or a `catch()` we always `return`
or `throw` a raw value instead of wrapping in `Promise.resolve`
or `Promise.reject`
#### Valid
```js
myPromise.then(function(val) {
return val * 2;
});
myPromise.then(function(val) {
throw "bad thing";
});
```
#### Invalid
```js
myPromise.then(function(val) {
return Promise.resolve(val * 2);
});
myPromise.then(function(val) {
return Promise.reject("bad thing");
})
```
## Installation

@@ -121,0 +146,0 @@

@@ -1,29 +0,8 @@

var STATIC_METHODS = [
'all',
'race',
'reject',
'resolve'
]
/**
* Rule: catch-or-return
* Ensures that promises either include a catch() handler
* or are returned (to be handled upstream)
*/
function isPromise (expression) {
return ( // hello.then()
expression.type === 'CallExpression' &&
expression.callee.type === 'MemberExpression' &&
expression.callee.property.name === 'then'
) || ( // hello.catch()
expression.type === 'CallExpression' &&
expression.callee.type === 'MemberExpression' &&
expression.callee.property.name === 'catch'
) || ( // somePromise.ANYTHING()
expression.type === 'CallExpression' &&
expression.callee.type === 'MemberExpression' &&
isPromise(expression.callee.object)
) || ( // Promise.STATIC_METHOD()
expression.type === 'CallExpression' &&
expression.callee.type === 'MemberExpression' &&
expression.callee.object.type === 'Identifier' &&
expression.callee.object.name === 'Promise' &&
STATIC_METHODS.indexOf(expression.callee.property.name) !== -1
)
}
var isPromise = require('./lib/is-promise')

@@ -30,0 +9,0 @@ module.exports = {

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