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.
126 lines
4.3 KiB
JavaScript
126 lines
4.3 KiB
JavaScript
/**
|
|
* @fileoverview Rule to enforce line breaks between arguments of a function call
|
|
* @author Alexey Gonchar <https://github.com/finico>
|
|
* @deprecated in ESLint v8.53.0
|
|
*/
|
|
|
|
"use strict";
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Rule Definition
|
|
//------------------------------------------------------------------------------
|
|
|
|
/** @type {import('../shared/types').Rule} */
|
|
module.exports = {
|
|
meta: {
|
|
deprecated: true,
|
|
replacedBy: [],
|
|
type: "layout",
|
|
|
|
docs: {
|
|
description: "Enforce line breaks between arguments of a function call",
|
|
recommended: false,
|
|
url: "https://eslint.org/docs/latest/rules/function-call-argument-newline"
|
|
},
|
|
|
|
fixable: "whitespace",
|
|
|
|
schema: [
|
|
{
|
|
enum: ["always", "never", "consistent"]
|
|
}
|
|
],
|
|
|
|
messages: {
|
|
unexpectedLineBreak: "There should be no line break here.",
|
|
missingLineBreak: "There should be a line break after this argument."
|
|
}
|
|
},
|
|
|
|
create(context) {
|
|
const sourceCode = context.sourceCode;
|
|
|
|
const checkers = {
|
|
unexpected: {
|
|
messageId: "unexpectedLineBreak",
|
|
check: (prevToken, currentToken) => prevToken.loc.end.line !== currentToken.loc.start.line,
|
|
createFix: (token, tokenBefore) => fixer =>
|
|
fixer.replaceTextRange([tokenBefore.range[1], token.range[0]], " ")
|
|
},
|
|
missing: {
|
|
messageId: "missingLineBreak",
|
|
check: (prevToken, currentToken) => prevToken.loc.end.line === currentToken.loc.start.line,
|
|
createFix: (token, tokenBefore) => fixer =>
|
|
fixer.replaceTextRange([tokenBefore.range[1], token.range[0]], "\n")
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Check all arguments for line breaks in the CallExpression
|
|
* @param {CallExpression} node node to evaluate
|
|
* @param {{ messageId: string, check: Function }} checker selected checker
|
|
* @returns {void}
|
|
* @private
|
|
*/
|
|
function checkArguments(node, checker) {
|
|
for (let i = 1; i < node.arguments.length; i++) {
|
|
const prevArgToken = sourceCode.getLastToken(node.arguments[i - 1]);
|
|
const currentArgToken = sourceCode.getFirstToken(node.arguments[i]);
|
|
|
|
if (checker.check(prevArgToken, currentArgToken)) {
|
|
const tokenBefore = sourceCode.getTokenBefore(
|
|
currentArgToken,
|
|
{ includeComments: true }
|
|
);
|
|
|
|
const hasLineCommentBefore = tokenBefore.type === "Line";
|
|
|
|
context.report({
|
|
node,
|
|
loc: {
|
|
start: tokenBefore.loc.end,
|
|
end: currentArgToken.loc.start
|
|
},
|
|
messageId: checker.messageId,
|
|
fix: hasLineCommentBefore ? null : checker.createFix(currentArgToken, tokenBefore)
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check if open space is present in a function name
|
|
* @param {CallExpression} node node to evaluate
|
|
* @returns {void}
|
|
* @private
|
|
*/
|
|
function check(node) {
|
|
if (node.arguments.length < 2) {
|
|
return;
|
|
}
|
|
|
|
const option = context.options[0] || "always";
|
|
|
|
if (option === "never") {
|
|
checkArguments(node, checkers.unexpected);
|
|
} else if (option === "always") {
|
|
checkArguments(node, checkers.missing);
|
|
} else if (option === "consistent") {
|
|
const firstArgToken = sourceCode.getLastToken(node.arguments[0]);
|
|
const secondArgToken = sourceCode.getFirstToken(node.arguments[1]);
|
|
|
|
if (firstArgToken.loc.end.line === secondArgToken.loc.start.line) {
|
|
checkArguments(node, checkers.unexpected);
|
|
} else {
|
|
checkArguments(node, checkers.missing);
|
|
}
|
|
}
|
|
}
|
|
|
|
return {
|
|
CallExpression: check,
|
|
NewExpression: check
|
|
};
|
|
}
|
|
};
|