Bump the npm group with 2 updates (#1819)
* Bump the npm group with 2 updates Bumps the npm group with 2 updates: [eslint](https://github.com/eslint/eslint) and [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import). Updates `eslint` from 8.45.0 to 8.46.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.45.0...v8.46.0) Updates `eslint-plugin-import` from 2.27.5 to 2.28.0 - [Release notes](https://github.com/import-js/eslint-plugin-import/releases) - [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md) - [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.27.5...v2.28.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm - dependency-name: eslint-plugin-import dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm ... Signed-off-by: dependabot[bot] <support@github.com> * Update checked-in dependencies --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
parent
a6b0ced86b
commit
e7e35baaf0
1408 changed files with 27215 additions and 9910 deletions
45
node_modules/eslint/lib/rules/no-empty-character-class.js
generated
vendored
45
node_modules/eslint/lib/rules/no-empty-character-class.js
generated
vendored
|
|
@ -5,20 +5,18 @@
|
|||
|
||||
"use strict";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Requirements
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
const { RegExpParser, visitRegExpAST } = require("@eslint-community/regexpp");
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Helpers
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/*
|
||||
* plain-English description of the following regexp:
|
||||
* 0. `^` fix the match at the beginning of the string
|
||||
* 1. `([^\\[]|\\.|\[([^\\\]]|\\.)+\])*`: regexp contents; 0 or more of the following
|
||||
* 1.0. `[^\\[]`: any character that's not a `\` or a `[` (anything but escape sequences and character classes)
|
||||
* 1.1. `\\.`: an escape sequence
|
||||
* 1.2. `\[([^\\\]]|\\.)+\]`: a character class that isn't empty
|
||||
* 2. `$`: fix the match at the end of the string
|
||||
*/
|
||||
const regex = /^([^\\[]|\\.|\[([^\\\]]|\\.)+\])*$/u;
|
||||
const parser = new RegExpParser();
|
||||
const QUICK_TEST_REGEX = /\[\]/u;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Rule Definition
|
||||
|
|
@ -45,9 +43,32 @@ module.exports = {
|
|||
create(context) {
|
||||
return {
|
||||
"Literal[regex]"(node) {
|
||||
if (!regex.test(node.regex.pattern)) {
|
||||
context.report({ node, messageId: "unexpected" });
|
||||
const { pattern, flags } = node.regex;
|
||||
|
||||
if (!QUICK_TEST_REGEX.test(pattern)) {
|
||||
return;
|
||||
}
|
||||
|
||||
let regExpAST;
|
||||
|
||||
try {
|
||||
regExpAST = parser.parsePattern(pattern, 0, pattern.length, {
|
||||
unicode: flags.includes("u"),
|
||||
unicodeSets: flags.includes("v")
|
||||
});
|
||||
} catch {
|
||||
|
||||
// Ignore regular expressions that regexpp cannot parse
|
||||
return;
|
||||
}
|
||||
|
||||
visitRegExpAST(regExpAST, {
|
||||
onCharacterClassEnter(characterClass) {
|
||||
if (!characterClass.negate && characterClass.elements.length === 0) {
|
||||
context.report({ node, messageId: "unexpected" });
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue