Socket
Socket
Sign inDemoInstall

eslint-plugin-es

Package Overview
Dependencies
90
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.3.2 to 1.4.0

50

lib/rules/no-property-shorthands.js

@@ -7,2 +7,4 @@ /**

const { isOpeningBracketToken, isClosingBracketToken } = require("eslint-utils")
module.exports = {

@@ -17,3 +19,3 @@ meta: {

},
fixable: null,
fixable: "code",
schema: [],

@@ -25,2 +27,36 @@ messages: {

create(context) {
const sourceCode = context.getSourceCode()
/**
* Fixes a FunctionExpression node by making it into a longform property.
* @param {SourceCodeFixer} fixer The fixer object
* @param {ASTNode} node A `Property` node that has a `FunctionExpression` as its value
* @returns {object} A fix for this node
*/
function makeFunctionLongform(fixer, node) {
const firstKeyToken = node.computed
? sourceCode.getTokenBefore(node.key, isOpeningBracketToken)
: sourceCode.getFirstToken(node.key)
const lastKeyToken = node.computed
? sourceCode.getTokenAfter(node.key, isClosingBracketToken)
: sourceCode.getLastToken(node.key)
const keyText = sourceCode.text.slice(
firstKeyToken.range[0],
lastKeyToken.range[1]
)
let functionHeader = "function"
if (node.value.async) {
functionHeader = `async ${functionHeader}`
}
if (node.value.generator) {
functionHeader = `${functionHeader}*`
}
return fixer.replaceTextRange(
[node.range[0], lastKeyToken.range[1]],
`${keyText}: ${functionHeader}`
)
}
return {

@@ -30,3 +66,13 @@ "ObjectExpression > :matches(Property[method=true], Property[shorthand=true])"(

) {
context.report({ node, messageId: "forbidden" })
context.report({
node,
messageId: "forbidden",
fix: node.method
? fixer => makeFunctionLongform(fixer, node)
: fixer =>
fixer.insertTextAfter(
node.key,
`: ${node.key.name}`
),
})
},

@@ -33,0 +79,0 @@ }

@@ -19,3 +19,3 @@ /**

},
fixable: null,
fixable: "code",
schema: [],

@@ -39,3 +39,9 @@ messages: {

if (isCommaToken(token)) {
context.report({ loc: token.loc, messageId: "forbidden" })
context.report({
loc: token.loc,
messageId: "forbidden",
fix(fixer) {
return fixer.remove(token)
},
})
}

@@ -46,3 +52,9 @@ },

if (node.arguments.length >= 1 && isCommaToken(token)) {
context.report({ loc: token.loc, messageId: "forbidden" })
context.report({
loc: token.loc,
messageId: "forbidden",
fix(fixer) {
return fixer.remove(token)
},
})
}

@@ -49,0 +61,0 @@ },

2

package.json
{
"name": "eslint-plugin-es",
"version": "1.3.2",
"version": "1.4.0",
"description": "ESLint plugin about ECMAScript syntactic features.",

@@ -5,0 +5,0 @@ "engines": {

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc