build: update npm install command to use --legacy-peer-deps
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.
This commit is contained in:
+87
-113
@@ -11,135 +11,109 @@
|
||||
*
|
||||
*/
|
||||
const BITWISE_OPERATORS = [
|
||||
"^",
|
||||
"|",
|
||||
"&",
|
||||
"<<",
|
||||
">>",
|
||||
">>>",
|
||||
"^=",
|
||||
"|=",
|
||||
"&=",
|
||||
"<<=",
|
||||
">>=",
|
||||
">>>=",
|
||||
"~",
|
||||
"^", "|", "&", "<<", ">>", ">>>",
|
||||
"^=", "|=", "&=", "<<=", ">>=", ">>>=",
|
||||
"~"
|
||||
];
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Rule Definition
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/** @type {import('../types').Rule.RuleModule} */
|
||||
/** @type {import('../shared/types').Rule} */
|
||||
module.exports = {
|
||||
meta: {
|
||||
type: "suggestion",
|
||||
meta: {
|
||||
type: "suggestion",
|
||||
|
||||
defaultOptions: [
|
||||
{
|
||||
allow: [],
|
||||
int32Hint: false,
|
||||
},
|
||||
],
|
||||
docs: {
|
||||
description: "Disallow bitwise operators",
|
||||
recommended: false,
|
||||
url: "https://eslint.org/docs/latest/rules/no-bitwise"
|
||||
},
|
||||
|
||||
docs: {
|
||||
description: "Disallow bitwise operators",
|
||||
recommended: false,
|
||||
url: "https://eslint.org/docs/latest/rules/no-bitwise",
|
||||
},
|
||||
schema: [
|
||||
{
|
||||
type: "object",
|
||||
properties: {
|
||||
allow: {
|
||||
type: "array",
|
||||
items: {
|
||||
enum: BITWISE_OPERATORS
|
||||
},
|
||||
uniqueItems: true
|
||||
},
|
||||
int32Hint: {
|
||||
type: "boolean",
|
||||
default: false
|
||||
}
|
||||
},
|
||||
additionalProperties: false
|
||||
}
|
||||
],
|
||||
|
||||
schema: [
|
||||
{
|
||||
type: "object",
|
||||
properties: {
|
||||
allow: {
|
||||
type: "array",
|
||||
items: {
|
||||
enum: BITWISE_OPERATORS,
|
||||
},
|
||||
uniqueItems: true,
|
||||
},
|
||||
int32Hint: {
|
||||
type: "boolean",
|
||||
},
|
||||
},
|
||||
additionalProperties: false,
|
||||
},
|
||||
],
|
||||
messages: {
|
||||
unexpected: "Unexpected use of '{{operator}}'."
|
||||
}
|
||||
},
|
||||
|
||||
messages: {
|
||||
unexpected: "Unexpected use of '{{operator}}'.",
|
||||
},
|
||||
},
|
||||
create(context) {
|
||||
const options = context.options[0] || {};
|
||||
const allowed = options.allow || [];
|
||||
const int32Hint = options.int32Hint === true;
|
||||
|
||||
create(context) {
|
||||
const [{ allow: allowed, int32Hint }] = context.options;
|
||||
/**
|
||||
* Reports an unexpected use of a bitwise operator.
|
||||
* @param {ASTNode} node Node which contains the bitwise operator.
|
||||
* @returns {void}
|
||||
*/
|
||||
function report(node) {
|
||||
context.report({ node, messageId: "unexpected", data: { operator: node.operator } });
|
||||
}
|
||||
|
||||
/**
|
||||
* Reports an unexpected use of a bitwise operator.
|
||||
* @param {ASTNode} node Node which contains the bitwise operator.
|
||||
* @returns {void}
|
||||
*/
|
||||
function report(node) {
|
||||
context.report({
|
||||
node,
|
||||
messageId: "unexpected",
|
||||
data: { operator: node.operator },
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Checks if the given node has a bitwise operator.
|
||||
* @param {ASTNode} node The node to check.
|
||||
* @returns {boolean} Whether or not the node has a bitwise operator.
|
||||
*/
|
||||
function hasBitwiseOperator(node) {
|
||||
return BITWISE_OPERATORS.includes(node.operator);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the given node has a bitwise operator.
|
||||
* @param {ASTNode} node The node to check.
|
||||
* @returns {boolean} Whether or not the node has a bitwise operator.
|
||||
*/
|
||||
function hasBitwiseOperator(node) {
|
||||
return BITWISE_OPERATORS.includes(node.operator);
|
||||
}
|
||||
/**
|
||||
* Checks if exceptions were provided, e.g. `{ allow: ['~', '|'] }`.
|
||||
* @param {ASTNode} node The node to check.
|
||||
* @returns {boolean} Whether or not the node has a bitwise operator.
|
||||
*/
|
||||
function allowedOperator(node) {
|
||||
return allowed.includes(node.operator);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if exceptions were provided, e.g. `{ allow: ['~', '|'] }`.
|
||||
* @param {ASTNode} node The node to check.
|
||||
* @returns {boolean} Whether or not the node has a bitwise operator.
|
||||
*/
|
||||
function allowedOperator(node) {
|
||||
return allowed.includes(node.operator);
|
||||
}
|
||||
/**
|
||||
* Checks if the given bitwise operator is used for integer typecasting, i.e. "|0"
|
||||
* @param {ASTNode} node The node to check.
|
||||
* @returns {boolean} whether the node is used in integer typecasting.
|
||||
*/
|
||||
function isInt32Hint(node) {
|
||||
return int32Hint && node.operator === "|" && node.right &&
|
||||
node.right.type === "Literal" && node.right.value === 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the given bitwise operator is used for integer typecasting, i.e. "|0"
|
||||
* @param {ASTNode} node The node to check.
|
||||
* @returns {boolean} whether the node is used in integer typecasting.
|
||||
*/
|
||||
function isInt32Hint(node) {
|
||||
return (
|
||||
int32Hint &&
|
||||
node.operator === "|" &&
|
||||
node.right &&
|
||||
node.right.type === "Literal" &&
|
||||
node.right.value === 0
|
||||
);
|
||||
}
|
||||
/**
|
||||
* Report if the given node contains a bitwise operator.
|
||||
* @param {ASTNode} node The node to check.
|
||||
* @returns {void}
|
||||
*/
|
||||
function checkNodeForBitwiseOperator(node) {
|
||||
if (hasBitwiseOperator(node) && !allowedOperator(node) && !isInt32Hint(node)) {
|
||||
report(node);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Report if the given node contains a bitwise operator.
|
||||
* @param {ASTNode} node The node to check.
|
||||
* @returns {void}
|
||||
*/
|
||||
function checkNodeForBitwiseOperator(node) {
|
||||
if (
|
||||
hasBitwiseOperator(node) &&
|
||||
!allowedOperator(node) &&
|
||||
!isInt32Hint(node)
|
||||
) {
|
||||
report(node);
|
||||
}
|
||||
}
|
||||
return {
|
||||
AssignmentExpression: checkNodeForBitwiseOperator,
|
||||
BinaryExpression: checkNodeForBitwiseOperator,
|
||||
UnaryExpression: checkNodeForBitwiseOperator
|
||||
};
|
||||
|
||||
return {
|
||||
AssignmentExpression: checkNodeForBitwiseOperator,
|
||||
BinaryExpression: checkNodeForBitwiseOperator,
|
||||
UnaryExpression: checkNodeForBitwiseOperator,
|
||||
};
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user