This change modifies the build scripts to use --legacy-peer-deps flag when installing npm dependencies to resolve potential peer dependency conflicts during the build process. The change is applied to both bash (build.sh) and batch (build.bat) build scripts.
93 lines
2.9 KiB
JavaScript
93 lines
2.9 KiB
JavaScript
/**
|
|
* @fileoverview A rule to warn against using arrow functions when they could be
|
|
* confused with comparisons
|
|
* @author Jxck <https://github.com/Jxck>
|
|
* @deprecated in ESLint v8.53.0
|
|
*/
|
|
|
|
"use strict";
|
|
|
|
const astUtils = require("./utils/ast-utils.js");
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Helpers
|
|
//------------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Checks whether or not a node is a conditional expression.
|
|
* @param {ASTNode} node node to test
|
|
* @returns {boolean} `true` if the node is a conditional expression.
|
|
*/
|
|
function isConditional(node) {
|
|
return node && node.type === "ConditionalExpression";
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Rule Definition
|
|
//------------------------------------------------------------------------------
|
|
|
|
/** @type {import('../shared/types').Rule} */
|
|
module.exports = {
|
|
meta: {
|
|
deprecated: true,
|
|
replacedBy: [],
|
|
type: "suggestion",
|
|
|
|
docs: {
|
|
description: "Disallow arrow functions where they could be confused with comparisons",
|
|
recommended: false,
|
|
url: "https://eslint.org/docs/latest/rules/no-confusing-arrow"
|
|
},
|
|
|
|
fixable: "code",
|
|
|
|
schema: [{
|
|
type: "object",
|
|
properties: {
|
|
allowParens: { type: "boolean", default: true },
|
|
onlyOneSimpleParam: { type: "boolean", default: false }
|
|
},
|
|
additionalProperties: false
|
|
}],
|
|
|
|
messages: {
|
|
confusing: "Arrow function used ambiguously with a conditional expression."
|
|
}
|
|
},
|
|
|
|
create(context) {
|
|
const config = context.options[0] || {};
|
|
const allowParens = config.allowParens || (config.allowParens === void 0);
|
|
const onlyOneSimpleParam = config.onlyOneSimpleParam;
|
|
const sourceCode = context.sourceCode;
|
|
|
|
|
|
/**
|
|
* Reports if an arrow function contains an ambiguous conditional.
|
|
* @param {ASTNode} node A node to check and report.
|
|
* @returns {void}
|
|
*/
|
|
function checkArrowFunc(node) {
|
|
const body = node.body;
|
|
|
|
if (isConditional(body) &&
|
|
!(allowParens && astUtils.isParenthesised(sourceCode, body)) &&
|
|
!(onlyOneSimpleParam && !(node.params.length === 1 && node.params[0].type === "Identifier"))) {
|
|
context.report({
|
|
node,
|
|
messageId: "confusing",
|
|
fix(fixer) {
|
|
|
|
// if `allowParens` is not set to true don't bother wrapping in parens
|
|
return allowParens && fixer.replaceText(node.body, `(${sourceCode.getText(node.body)})`);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
return {
|
|
ArrowFunctionExpression: checkArrowFunc
|
|
};
|
|
}
|
|
};
|