Website Structure
This commit is contained in:
parent
62812f2090
commit
71f0676a62
22365 changed files with 4265753 additions and 791 deletions
76
Frontend-Learner/node_modules/eslint-plugin-regexp/dist/rules/no-useless-lazy.js
generated
vendored
Normal file
76
Frontend-Learner/node_modules/eslint-plugin-regexp/dist/rules/no-useless-lazy.js
generated
vendored
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const regexp_ast_analysis_1 = require("regexp-ast-analysis");
|
||||
const utils_1 = require("../utils");
|
||||
function makeGreedy({ patternSource }, qNode) {
|
||||
return (fixer) => {
|
||||
if (qNode.greedy) {
|
||||
return null;
|
||||
}
|
||||
const range = patternSource.getReplaceRange({
|
||||
start: qNode.end - 1,
|
||||
end: qNode.end,
|
||||
});
|
||||
if (!range) {
|
||||
return null;
|
||||
}
|
||||
return range.remove(fixer);
|
||||
};
|
||||
}
|
||||
function getLazyLoc({ getRegexpLocation }, qNode) {
|
||||
const offset = qNode.raw.length - 1;
|
||||
return getRegexpLocation(qNode, [offset, offset + 1]);
|
||||
}
|
||||
exports.default = (0, utils_1.createRule)("no-useless-lazy", {
|
||||
meta: {
|
||||
docs: {
|
||||
description: "disallow unnecessarily non-greedy quantifiers",
|
||||
category: "Best Practices",
|
||||
recommended: true,
|
||||
},
|
||||
fixable: "code",
|
||||
schema: [],
|
||||
messages: {
|
||||
constant: "Unexpected non-greedy constant quantifier.",
|
||||
possessive: "Unexpected non-greedy constant quantifier. The quantifier is effectively possessive, so it doesn't matter whether it is greedy or not.",
|
||||
},
|
||||
type: "suggestion",
|
||||
},
|
||||
create(context) {
|
||||
function createVisitor(regexpContext) {
|
||||
const { node, flags } = regexpContext;
|
||||
return {
|
||||
onQuantifierEnter(qNode) {
|
||||
if (qNode.greedy) {
|
||||
return;
|
||||
}
|
||||
if (qNode.min === qNode.max) {
|
||||
context.report({
|
||||
node,
|
||||
loc: getLazyLoc(regexpContext, qNode),
|
||||
messageId: "constant",
|
||||
fix: makeGreedy(regexpContext, qNode),
|
||||
});
|
||||
return;
|
||||
}
|
||||
const matchingDir = (0, regexp_ast_analysis_1.getMatchingDirection)(qNode);
|
||||
const firstChar = (0, regexp_ast_analysis_1.getFirstConsumedChar)(qNode.element, matchingDir, flags);
|
||||
if (!firstChar.empty) {
|
||||
const after = (0, regexp_ast_analysis_1.getFirstCharAfter)(qNode, matchingDir, flags);
|
||||
if (firstChar.char.isDisjointWith(after.char)) {
|
||||
context.report({
|
||||
node,
|
||||
loc: getLazyLoc(regexpContext, qNode),
|
||||
messageId: "possessive",
|
||||
fix: makeGreedy(regexpContext, qNode),
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
return (0, utils_1.defineRegexpVisitor)(context, {
|
||||
createVisitor,
|
||||
});
|
||||
},
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue