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.
209 lines
7.4 KiB
JavaScript
209 lines
7.4 KiB
JavaScript
/**
|
|
* @fileoverview Disallows or enforces spaces inside computed properties.
|
|
* @author Jamund Ferguson
|
|
* @deprecated in ESLint v8.53.0
|
|
*/
|
|
"use strict";
|
|
|
|
const astUtils = require("./utils/ast-utils");
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Rule Definition
|
|
//------------------------------------------------------------------------------
|
|
|
|
/** @type {import('../shared/types').Rule} */
|
|
module.exports = {
|
|
meta: {
|
|
deprecated: true,
|
|
replacedBy: [],
|
|
type: "layout",
|
|
|
|
docs: {
|
|
description: "Enforce consistent spacing inside computed property brackets",
|
|
recommended: false,
|
|
url: "https://eslint.org/docs/latest/rules/computed-property-spacing"
|
|
},
|
|
|
|
fixable: "whitespace",
|
|
|
|
schema: [
|
|
{
|
|
enum: ["always", "never"]
|
|
},
|
|
{
|
|
type: "object",
|
|
properties: {
|
|
enforceForClassMembers: {
|
|
type: "boolean",
|
|
default: true
|
|
}
|
|
},
|
|
additionalProperties: false
|
|
}
|
|
],
|
|
|
|
messages: {
|
|
unexpectedSpaceBefore: "There should be no space before '{{tokenValue}}'.",
|
|
unexpectedSpaceAfter: "There should be no space after '{{tokenValue}}'.",
|
|
|
|
missingSpaceBefore: "A space is required before '{{tokenValue}}'.",
|
|
missingSpaceAfter: "A space is required after '{{tokenValue}}'."
|
|
}
|
|
},
|
|
|
|
create(context) {
|
|
const sourceCode = context.sourceCode;
|
|
const propertyNameMustBeSpaced = context.options[0] === "always"; // default is "never"
|
|
const enforceForClassMembers = !context.options[1] || context.options[1].enforceForClassMembers;
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Helpers
|
|
//--------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Reports that there shouldn't be a space after the first token
|
|
* @param {ASTNode} node The node to report in the event of an error.
|
|
* @param {Token} token The token to use for the report.
|
|
* @param {Token} tokenAfter The token after `token`.
|
|
* @returns {void}
|
|
*/
|
|
function reportNoBeginningSpace(node, token, tokenAfter) {
|
|
context.report({
|
|
node,
|
|
loc: { start: token.loc.end, end: tokenAfter.loc.start },
|
|
messageId: "unexpectedSpaceAfter",
|
|
data: {
|
|
tokenValue: token.value
|
|
},
|
|
fix(fixer) {
|
|
return fixer.removeRange([token.range[1], tokenAfter.range[0]]);
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Reports that there shouldn't be a space before the last token
|
|
* @param {ASTNode} node The node to report in the event of an error.
|
|
* @param {Token} token The token to use for the report.
|
|
* @param {Token} tokenBefore The token before `token`.
|
|
* @returns {void}
|
|
*/
|
|
function reportNoEndingSpace(node, token, tokenBefore) {
|
|
context.report({
|
|
node,
|
|
loc: { start: tokenBefore.loc.end, end: token.loc.start },
|
|
messageId: "unexpectedSpaceBefore",
|
|
data: {
|
|
tokenValue: token.value
|
|
},
|
|
fix(fixer) {
|
|
return fixer.removeRange([tokenBefore.range[1], token.range[0]]);
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Reports that there should be a space after the first token
|
|
* @param {ASTNode} node The node to report in the event of an error.
|
|
* @param {Token} token The token to use for the report.
|
|
* @returns {void}
|
|
*/
|
|
function reportRequiredBeginningSpace(node, token) {
|
|
context.report({
|
|
node,
|
|
loc: token.loc,
|
|
messageId: "missingSpaceAfter",
|
|
data: {
|
|
tokenValue: token.value
|
|
},
|
|
fix(fixer) {
|
|
return fixer.insertTextAfter(token, " ");
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Reports that there should be a space before the last token
|
|
* @param {ASTNode} node The node to report in the event of an error.
|
|
* @param {Token} token The token to use for the report.
|
|
* @returns {void}
|
|
*/
|
|
function reportRequiredEndingSpace(node, token) {
|
|
context.report({
|
|
node,
|
|
loc: token.loc,
|
|
messageId: "missingSpaceBefore",
|
|
data: {
|
|
tokenValue: token.value
|
|
},
|
|
fix(fixer) {
|
|
return fixer.insertTextBefore(token, " ");
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Returns a function that checks the spacing of a node on the property name
|
|
* that was passed in.
|
|
* @param {string} propertyName The property on the node to check for spacing
|
|
* @returns {Function} A function that will check spacing on a node
|
|
*/
|
|
function checkSpacing(propertyName) {
|
|
return function(node) {
|
|
if (!node.computed) {
|
|
return;
|
|
}
|
|
|
|
const property = node[propertyName];
|
|
|
|
const before = sourceCode.getTokenBefore(property, astUtils.isOpeningBracketToken),
|
|
first = sourceCode.getTokenAfter(before, { includeComments: true }),
|
|
after = sourceCode.getTokenAfter(property, astUtils.isClosingBracketToken),
|
|
last = sourceCode.getTokenBefore(after, { includeComments: true });
|
|
|
|
if (astUtils.isTokenOnSameLine(before, first)) {
|
|
if (propertyNameMustBeSpaced) {
|
|
if (!sourceCode.isSpaceBetweenTokens(before, first) && astUtils.isTokenOnSameLine(before, first)) {
|
|
reportRequiredBeginningSpace(node, before);
|
|
}
|
|
} else {
|
|
if (sourceCode.isSpaceBetweenTokens(before, first)) {
|
|
reportNoBeginningSpace(node, before, first);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (astUtils.isTokenOnSameLine(last, after)) {
|
|
if (propertyNameMustBeSpaced) {
|
|
if (!sourceCode.isSpaceBetweenTokens(last, after) && astUtils.isTokenOnSameLine(last, after)) {
|
|
reportRequiredEndingSpace(node, after);
|
|
}
|
|
} else {
|
|
if (sourceCode.isSpaceBetweenTokens(last, after)) {
|
|
reportNoEndingSpace(node, after, last);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Public
|
|
//--------------------------------------------------------------------------
|
|
|
|
const listeners = {
|
|
Property: checkSpacing("key"),
|
|
MemberExpression: checkSpacing("property")
|
|
};
|
|
|
|
if (enforceForClassMembers) {
|
|
listeners.MethodDefinition =
|
|
listeners.PropertyDefinition = listeners.Property;
|
|
}
|
|
|
|
return listeners;
|
|
|
|
}
|
|
};
|