-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathmatch-any.ts
97 lines (95 loc) · 2.68 KB
/
match-any.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import { SnapshotRuleTester } from "eslint-snapshot-rule-tester"
import rule from "../../../lib/rules/match-any"
const tester = new SnapshotRuleTester({
languageOptions: {
ecmaVersion: "latest",
sourceType: "module",
},
})
tester.run("match-any", rule as any, {
valid: [
"/[\\s\\S]/",
"/./s",
"/./",
"/[\\s\\d]/",
"/\\S\\s/",
"/[\\1-\\uFFFF]/",
{
code: "/[\\S\\s]/",
options: [{ allows: ["[\\S\\s]"] }],
},
{
code: "/[^]/",
options: [{ allows: ["[^]"] }],
},
{
code: "/[\\s\\S][\\S\\s][^]./s",
options: [{ allows: ["[\\s\\S]", "[\\S\\s]", "[^]", "dotAll"] }],
},
"/[^\\S\\s]/",
{
code: "/[^\\s\\S]/",
options: [{ allows: ["[^]"] }],
},
"/[^\\d\\D]/",
"/[^\\D\\d]/",
"/[^\\w\\W]/",
"/[^\\W\\w]/",
"/[^\\0-\\uFFFF]/",
"/[^\\p{ASCII}\\P{ASCII}]/u",
"/[^\\P{ASCII}\\p{ASCII}]/u",
"/[^\\s\\S\\0-\\uFFFF]/",
String.raw`/[\S\s\q{abc}]/v`,
],
invalid: [
"/[\\S\\s]/",
String.raw`/[\S\s]/v`,
String.raw`/[\S\s\q{a|b|c}]/v`,
String.raw`/[[\S\s\q{abc}]--\q{abc}]/v`,
"/[^]/",
"/[\\d\\D]/",
"/[\\0-\\uFFFF]/",
"/[\\s\\S][\\S\\s][^]./s",
{
code: "/[\\s\\S][\\S\\s][^]./s",
options: [{ allows: ["[^]"] }],
},
{
code: "/[\\s\\S] [\\S\\s] [^] ./s",
// Only one character class gets fixed because they all depend on the `s` flag.
// This shared dependency causes all of their fixes to conflict, so only one fix can be applied.
options: [{ allows: ["dotAll"] }],
},
{
code: "/. [\\S\\s] [^] ./s",
options: [{ allows: ["dotAll"] }],
},
{
code: "/. . [^] ./s",
options: [{ allows: ["dotAll"] }],
},
{
code: "new RegExp('[^]', 's')",
options: [{ allows: ["dotAll"] }],
},
{
code: String.raw`
const s = "[\\s\\S][\\S\\s][^]."
new RegExp(s, 's')
`,
options: [{ allows: ["[^]"] }],
},
{
code: String.raw`
const s = "[\\s\\S]"+"[\\S\\s][^]."
new RegExp(s, 's')
`,
options: [{ allows: ["[^]"] }],
},
"/[\\p{ASCII}\\P{ASCII}]/u",
"/[\\p{Script=Hiragana}\\P{Script=Hiragana}]/u",
"/[\\s\\S\\0-\\uFFFF]/",
"/[\\w\\D]/",
"/[\\P{ASCII}\\w\\0-AZ-\\xFF]/u",
],
})