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:
+94
-127
@@ -9,19 +9,15 @@
|
||||
// Helpers
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
const CONSTANT_BINDINGS = new Set(["const", "using", "await using"]);
|
||||
|
||||
/**
|
||||
* Checks whether or not a given node is a for loop.
|
||||
* @param {ASTNode} block A node to check.
|
||||
* @returns {boolean} `true` when the node is a for loop.
|
||||
*/
|
||||
function isForLoop(block) {
|
||||
return (
|
||||
block.type === "ForInStatement" ||
|
||||
block.type === "ForOfStatement" ||
|
||||
block.type === "ForStatement"
|
||||
);
|
||||
return block.type === "ForInStatement" ||
|
||||
block.type === "ForOfStatement" ||
|
||||
block.type === "ForStatement";
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -30,143 +26,114 @@ function isForLoop(block) {
|
||||
* @returns {boolean} `true` when the node has its initializer.
|
||||
*/
|
||||
function isInitialized(node) {
|
||||
const declaration = node.parent;
|
||||
const block = declaration.parent;
|
||||
const declaration = node.parent;
|
||||
const block = declaration.parent;
|
||||
|
||||
if (isForLoop(block)) {
|
||||
if (block.type === "ForStatement") {
|
||||
return block.init === declaration;
|
||||
}
|
||||
return block.left === declaration;
|
||||
}
|
||||
return Boolean(node.init);
|
||||
if (isForLoop(block)) {
|
||||
if (block.type === "ForStatement") {
|
||||
return block.init === declaration;
|
||||
}
|
||||
return block.left === declaration;
|
||||
}
|
||||
return Boolean(node.init);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Rule Definition
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/** @type {import('../types').Rule.RuleModule} */
|
||||
/** @type {import('../shared/types').Rule} */
|
||||
module.exports = {
|
||||
meta: {
|
||||
type: "suggestion",
|
||||
dialects: ["typescript", "javascript"],
|
||||
language: "javascript",
|
||||
meta: {
|
||||
type: "suggestion",
|
||||
|
||||
docs: {
|
||||
description:
|
||||
"Require or disallow initialization in variable declarations",
|
||||
recommended: false,
|
||||
frozen: true,
|
||||
url: "https://eslint.org/docs/latest/rules/init-declarations",
|
||||
},
|
||||
docs: {
|
||||
description: "Require or disallow initialization in variable declarations",
|
||||
recommended: false,
|
||||
url: "https://eslint.org/docs/latest/rules/init-declarations"
|
||||
},
|
||||
|
||||
schema: {
|
||||
anyOf: [
|
||||
{
|
||||
type: "array",
|
||||
items: [
|
||||
{
|
||||
enum: ["always"],
|
||||
},
|
||||
],
|
||||
minItems: 0,
|
||||
maxItems: 1,
|
||||
},
|
||||
{
|
||||
type: "array",
|
||||
items: [
|
||||
{
|
||||
enum: ["never"],
|
||||
},
|
||||
{
|
||||
type: "object",
|
||||
properties: {
|
||||
ignoreForLoopInit: {
|
||||
type: "boolean",
|
||||
},
|
||||
},
|
||||
additionalProperties: false,
|
||||
},
|
||||
],
|
||||
minItems: 0,
|
||||
maxItems: 2,
|
||||
},
|
||||
],
|
||||
},
|
||||
messages: {
|
||||
initialized:
|
||||
"Variable '{{idName}}' should be initialized on declaration.",
|
||||
notInitialized:
|
||||
"Variable '{{idName}}' should not be initialized on declaration.",
|
||||
},
|
||||
},
|
||||
schema: {
|
||||
anyOf: [
|
||||
{
|
||||
type: "array",
|
||||
items: [
|
||||
{
|
||||
enum: ["always"]
|
||||
}
|
||||
],
|
||||
minItems: 0,
|
||||
maxItems: 1
|
||||
},
|
||||
{
|
||||
type: "array",
|
||||
items: [
|
||||
{
|
||||
enum: ["never"]
|
||||
},
|
||||
{
|
||||
type: "object",
|
||||
properties: {
|
||||
ignoreForLoopInit: {
|
||||
type: "boolean"
|
||||
}
|
||||
},
|
||||
additionalProperties: false
|
||||
}
|
||||
],
|
||||
minItems: 0,
|
||||
maxItems: 2
|
||||
}
|
||||
]
|
||||
},
|
||||
messages: {
|
||||
initialized: "Variable '{{idName}}' should be initialized on declaration.",
|
||||
notInitialized: "Variable '{{idName}}' should not be initialized on declaration."
|
||||
}
|
||||
},
|
||||
|
||||
create(context) {
|
||||
const MODE_ALWAYS = "always",
|
||||
MODE_NEVER = "never";
|
||||
create(context) {
|
||||
|
||||
const mode = context.options[0] || MODE_ALWAYS;
|
||||
const params = context.options[1] || {};
|
||||
const MODE_ALWAYS = "always",
|
||||
MODE_NEVER = "never";
|
||||
|
||||
// Track whether we're inside a declared namespace
|
||||
let insideDeclaredNamespace = false;
|
||||
const mode = context.options[0] || MODE_ALWAYS;
|
||||
const params = context.options[1] || {};
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Public API
|
||||
//--------------------------------------------------------------------------
|
||||
//--------------------------------------------------------------------------
|
||||
// Public API
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
return {
|
||||
TSModuleDeclaration(node) {
|
||||
if (node.declare) {
|
||||
insideDeclaredNamespace = true;
|
||||
}
|
||||
},
|
||||
return {
|
||||
"VariableDeclaration:exit"(node) {
|
||||
|
||||
"TSModuleDeclaration:exit"(node) {
|
||||
if (node.declare) {
|
||||
insideDeclaredNamespace = false;
|
||||
}
|
||||
},
|
||||
const kind = node.kind,
|
||||
declarations = node.declarations;
|
||||
|
||||
"VariableDeclaration:exit"(node) {
|
||||
const kind = node.kind,
|
||||
declarations = node.declarations;
|
||||
for (let i = 0; i < declarations.length; ++i) {
|
||||
const declaration = declarations[i],
|
||||
id = declaration.id,
|
||||
initialized = isInitialized(declaration),
|
||||
isIgnoredForLoop = params.ignoreForLoopInit && isForLoop(node.parent);
|
||||
let messageId = "";
|
||||
|
||||
if (node.declare || insideDeclaredNamespace) {
|
||||
return;
|
||||
}
|
||||
if (mode === MODE_ALWAYS && !initialized) {
|
||||
messageId = "initialized";
|
||||
} else if (mode === MODE_NEVER && kind !== "const" && initialized && !isIgnoredForLoop) {
|
||||
messageId = "notInitialized";
|
||||
}
|
||||
|
||||
for (let i = 0; i < declarations.length; ++i) {
|
||||
const declaration = declarations[i],
|
||||
id = declaration.id,
|
||||
initialized = isInitialized(declaration),
|
||||
isIgnoredForLoop =
|
||||
params.ignoreForLoopInit && isForLoop(node.parent);
|
||||
let messageId = "";
|
||||
|
||||
if (mode === MODE_ALWAYS && !initialized) {
|
||||
messageId = "initialized";
|
||||
} else if (
|
||||
mode === MODE_NEVER &&
|
||||
!CONSTANT_BINDINGS.has(kind) &&
|
||||
initialized &&
|
||||
!isIgnoredForLoop
|
||||
) {
|
||||
messageId = "notInitialized";
|
||||
}
|
||||
|
||||
if (id.type === "Identifier" && messageId) {
|
||||
context.report({
|
||||
node: declaration,
|
||||
messageId,
|
||||
data: {
|
||||
idName: id.name,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
},
|
||||
if (id.type === "Identifier" && messageId) {
|
||||
context.report({
|
||||
node: declaration,
|
||||
messageId,
|
||||
data: {
|
||||
idName: id.name
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user