@wistia/oxlint-config 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/rules/base.mjs +166 -145
- package/rules/import.mjs +18 -18
- package/rules/node.mjs +4 -4
- package/rules/promise.mjs +16 -16
- package/rules/react-a11y.mjs +31 -31
- package/rules/react.mjs +51 -51
- package/rules/typescript.mjs +100 -100
- package/rules/vitest.mjs +63 -63
package/rules/import.mjs
CHANGED
|
@@ -5,55 +5,55 @@ export const importRules = {
|
|
|
5
5
|
jsPlugins: [{ name: 'import-x-js', specifier: 'eslint-plugin-import-x' }],
|
|
6
6
|
rules: {
|
|
7
7
|
// Ensure named imports coupled with named exports
|
|
8
|
-
// https://
|
|
8
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/named.html
|
|
9
9
|
// note: oxlint import plugin uses "default" and "namespace" for resolution checks
|
|
10
10
|
'import/default': 'error',
|
|
11
11
|
|
|
12
|
-
// https://
|
|
12
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/namespace.html
|
|
13
13
|
'import/namespace': 'error',
|
|
14
14
|
|
|
15
15
|
// Forbid cyclical dependencies between modules
|
|
16
|
-
// https://
|
|
16
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-cycle.html
|
|
17
17
|
'import/no-cycle': ['error', { maxDepth: 2 }],
|
|
18
18
|
|
|
19
19
|
// Disallow duplicate imports
|
|
20
|
-
// https://
|
|
20
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-duplicates.html
|
|
21
21
|
'import/no-duplicates': 'error',
|
|
22
22
|
|
|
23
23
|
// Forbid default exports
|
|
24
|
-
// https://
|
|
24
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-default-export.html
|
|
25
25
|
'import/no-default-export': 'error',
|
|
26
26
|
|
|
27
27
|
// Forbid a module from importing itself
|
|
28
|
-
// https://
|
|
28
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-self-import.html
|
|
29
29
|
'import/no-self-import': 'error',
|
|
30
30
|
|
|
31
31
|
// Forbid import of modules using absolute paths
|
|
32
|
-
// https://
|
|
32
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-absolute-path.html
|
|
33
33
|
'import/no-absolute-path': 'error',
|
|
34
34
|
|
|
35
35
|
// Forbid empty named import blocks
|
|
36
|
-
// https://
|
|
36
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-empty-named-blocks.html
|
|
37
37
|
'import/no-empty-named-blocks': 'error',
|
|
38
38
|
|
|
39
39
|
// Do not allow a default import name to match a named export
|
|
40
|
-
// https://
|
|
40
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-named-as-default.html
|
|
41
41
|
'import/no-named-as-default': 'error',
|
|
42
42
|
|
|
43
43
|
// Warn on accessing default export property names that are also named exports
|
|
44
|
-
// https://
|
|
44
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-named-as-default-member.html
|
|
45
45
|
'import/no-named-as-default-member': 'error',
|
|
46
46
|
|
|
47
47
|
// Prevent importing the default as if it were named
|
|
48
|
-
// https://
|
|
48
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-named-default.html
|
|
49
49
|
'import/no-named-default': 'error',
|
|
50
50
|
|
|
51
51
|
// Forbid mutable exports
|
|
52
|
-
// https://
|
|
52
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-mutable-exports.html
|
|
53
53
|
'import/no-mutable-exports': 'error',
|
|
54
54
|
|
|
55
55
|
// Reports if a module's default export is unnamed
|
|
56
|
-
// https://
|
|
56
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-anonymous-default-export.html
|
|
57
57
|
'import/no-anonymous-default-export': [
|
|
58
58
|
'error',
|
|
59
59
|
{
|
|
@@ -68,23 +68,23 @@ export const importRules = {
|
|
|
68
68
|
],
|
|
69
69
|
|
|
70
70
|
// Disallow non-import statements appearing before import statements
|
|
71
|
-
// https://
|
|
71
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/first.html
|
|
72
72
|
'import/first': 'error',
|
|
73
73
|
|
|
74
74
|
// Disallow require()
|
|
75
|
-
// https://
|
|
75
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-commonjs.html
|
|
76
76
|
'import/no-commonjs': 'error',
|
|
77
77
|
|
|
78
78
|
// Disallow AMD require/define
|
|
79
|
-
// https://
|
|
79
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-amd.html
|
|
80
80
|
'import/no-amd': 'error',
|
|
81
81
|
|
|
82
82
|
// Forbid require() calls with expressions
|
|
83
|
-
// https://
|
|
83
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-dynamic-require.html
|
|
84
84
|
'import/no-dynamic-require': 'error',
|
|
85
85
|
|
|
86
86
|
// Forbid Webpack loader syntax in imports
|
|
87
|
-
// https://
|
|
87
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/import/no-webpack-loader-syntax.html
|
|
88
88
|
'import/no-webpack-loader-syntax': 'error',
|
|
89
89
|
|
|
90
90
|
//rules via jsPlugins (eslint-plugin-import-x)
|
package/rules/node.mjs
CHANGED
|
@@ -5,19 +5,19 @@ export const nodeRules = {
|
|
|
5
5
|
jsPlugins: [{ name: 'n', specifier: 'eslint-plugin-n' }],
|
|
6
6
|
rules: {
|
|
7
7
|
// Require error handling in callbacks
|
|
8
|
-
// https://
|
|
8
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/node/handle-callback-err.html
|
|
9
9
|
'node/handle-callback-err': 'error',
|
|
10
10
|
|
|
11
11
|
// Disallow the assignment to exports
|
|
12
|
-
// https://
|
|
12
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/node/no-exports-assign.html
|
|
13
13
|
'node/no-exports-assign': 'error',
|
|
14
14
|
|
|
15
15
|
// Disallow new operators with calls to require
|
|
16
|
-
// https://
|
|
16
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/node/no-new-require.html
|
|
17
17
|
'node/no-new-require': 'error',
|
|
18
18
|
|
|
19
19
|
// Disallow string concatenation with __dirname and __filename
|
|
20
|
-
// https://
|
|
20
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/node/no-path-concat.html
|
|
21
21
|
'node/no-path-concat': 'error',
|
|
22
22
|
|
|
23
23
|
//eslint-plugin-n rules via jsPlugins
|
package/rules/promise.mjs
CHANGED
|
@@ -2,67 +2,67 @@ export const promiseRules = {
|
|
|
2
2
|
plugins: ['promise'],
|
|
3
3
|
rules: {
|
|
4
4
|
// Enforces the use of catch() on un-returned promises
|
|
5
|
-
// https://
|
|
5
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/catch-or-return.html
|
|
6
6
|
'promise/catch-or-return': 'error',
|
|
7
7
|
|
|
8
8
|
// Avoid wrapping values in Promise.resolve or Promise.reject when not needed
|
|
9
|
-
// https://
|
|
9
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/no-return-wrap.html
|
|
10
10
|
'promise/no-return-wrap': 'error',
|
|
11
11
|
|
|
12
12
|
// Enforce consistent param names and ordering when creating new promises
|
|
13
|
-
// https://
|
|
13
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/param-names.html
|
|
14
14
|
'promise/param-names': 'error',
|
|
15
15
|
|
|
16
16
|
// Return inside each then() to create readable and reusable Promise chains
|
|
17
|
-
// https://
|
|
17
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/always-return.html
|
|
18
18
|
'promise/always-return': 'error',
|
|
19
19
|
|
|
20
20
|
// Avoid nested then() or catch() statements
|
|
21
|
-
// https://
|
|
21
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/no-nesting.html
|
|
22
22
|
'promise/no-nesting': 'error',
|
|
23
23
|
|
|
24
24
|
// Avoid using promises inside of callbacks
|
|
25
|
-
// https://
|
|
25
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/no-promise-in-callback.html
|
|
26
26
|
'promise/no-promise-in-callback': 'error',
|
|
27
27
|
|
|
28
28
|
// Avoid calling cb() inside of a then()
|
|
29
|
-
// https://
|
|
29
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/no-callback-in-promise.html
|
|
30
30
|
'promise/no-callback-in-promise': 'error',
|
|
31
31
|
|
|
32
32
|
// Avoid creating new promises outside of utility libs
|
|
33
|
-
// https://
|
|
33
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/avoid-new.html
|
|
34
34
|
'promise/avoid-new': 'error',
|
|
35
35
|
|
|
36
36
|
// Avoid calling new on a Promise static method
|
|
37
|
-
// https://
|
|
37
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/no-new-statics.html
|
|
38
38
|
'promise/no-new-statics': 'error',
|
|
39
39
|
|
|
40
40
|
// Disallow return statements in finally()
|
|
41
|
-
// https://
|
|
41
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/no-return-in-finally.html
|
|
42
42
|
'promise/no-return-in-finally': 'error',
|
|
43
43
|
|
|
44
44
|
// Ensures the proper number of arguments are passed to Promise functions
|
|
45
|
-
// https://
|
|
45
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/valid-params.html
|
|
46
46
|
'promise/valid-params': 'error',
|
|
47
47
|
|
|
48
48
|
// Disallow creating new promises with paths that resolve multiple times
|
|
49
|
-
// https://
|
|
49
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/no-multiple-resolved.html
|
|
50
50
|
'promise/no-multiple-resolved': 'error',
|
|
51
51
|
|
|
52
52
|
// Prefer catch to then(a, b)/then(null, b) for handling errors
|
|
53
|
-
// https://
|
|
53
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/prefer-catch.html
|
|
54
54
|
'promise/prefer-catch': 'error',
|
|
55
55
|
|
|
56
56
|
// Prefer await to then()/catch()/finally() for reading Promise values
|
|
57
|
-
// https://
|
|
57
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/prefer-await-to-then.html
|
|
58
58
|
'promise/prefer-await-to-then': 'off',
|
|
59
59
|
|
|
60
60
|
// Prefer async/await to the callback pattern
|
|
61
|
-
// https://
|
|
61
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/prefer-await-to-callbacks.html
|
|
62
62
|
'promise/prefer-await-to-callbacks': 'off',
|
|
63
63
|
|
|
64
64
|
// Disallow use of non-standard Promise static methods
|
|
65
|
-
// https://
|
|
65
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/promise/spec-only.html
|
|
66
66
|
'promise/spec-only': 'error',
|
|
67
67
|
},
|
|
68
68
|
};
|
package/rules/react-a11y.mjs
CHANGED
|
@@ -2,15 +2,15 @@ export const reactA11yRules = {
|
|
|
2
2
|
plugins: ['jsx-a11y'],
|
|
3
3
|
rules: {
|
|
4
4
|
// Enforce that all elements that require alternative text have meaningful information
|
|
5
|
-
// https://
|
|
5
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/alt-text.html
|
|
6
6
|
'jsx_a11y/alt-text': 'error',
|
|
7
7
|
|
|
8
8
|
// Enforce that anchors have content
|
|
9
|
-
// https://
|
|
9
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/anchor-has-content.html
|
|
10
10
|
'jsx_a11y/anchor-has-content': 'error',
|
|
11
11
|
|
|
12
12
|
// Enforce all anchors are valid, navigable elements
|
|
13
|
-
// https://
|
|
13
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/anchor-is-valid.html
|
|
14
14
|
'jsx_a11y/anchor-is-valid': [
|
|
15
15
|
'error',
|
|
16
16
|
{
|
|
@@ -21,59 +21,59 @@ export const reactA11yRules = {
|
|
|
21
21
|
],
|
|
22
22
|
|
|
23
23
|
// Enforce that elements with aria-activedescendant have tabindex
|
|
24
|
-
// https://
|
|
24
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/aria-activedescendant-has-tabindex.html
|
|
25
25
|
'jsx_a11y/aria-activedescendant-has-tabindex': 'error',
|
|
26
26
|
|
|
27
27
|
// Enforce that elements have valid aria-* props
|
|
28
|
-
// https://
|
|
28
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/aria-props.html
|
|
29
29
|
'jsx_a11y/aria-props': 'error',
|
|
30
30
|
|
|
31
31
|
// Enforce that ARIA state and property values are valid
|
|
32
|
-
// https://
|
|
32
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/aria-proptypes.html
|
|
33
33
|
'jsx_a11y/aria-proptypes': 'error',
|
|
34
34
|
|
|
35
35
|
// Enforce that elements with ARIA roles have all required attributes for that role
|
|
36
|
-
// https://
|
|
36
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/role-has-required-aria-props.html
|
|
37
37
|
'jsx_a11y/role-has-required-aria-props': 'error',
|
|
38
38
|
|
|
39
39
|
// Enforce that elements with explicit or implicit roles defined contain only aria-* properties supported by that role
|
|
40
|
-
// https://
|
|
40
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/role-supports-aria-props.html
|
|
41
41
|
'jsx_a11y/role-supports-aria-props': 'error',
|
|
42
42
|
|
|
43
43
|
// Enforce that elements with ARIA roles must use a valid, non-abstract ARIA role
|
|
44
|
-
// https://
|
|
44
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/aria-role.html
|
|
45
45
|
'jsx_a11y/aria-role': 'error',
|
|
46
46
|
|
|
47
47
|
// Enforce that certain elements don't have ARIA roles, states, or properties
|
|
48
|
-
// https://
|
|
48
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/aria-unsupported-elements.html
|
|
49
49
|
'jsx_a11y/aria-unsupported-elements': 'error',
|
|
50
50
|
|
|
51
51
|
// Enforce that autocomplete attribute is correct
|
|
52
|
-
// https://
|
|
52
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/autocomplete-valid.html
|
|
53
53
|
'jsx_a11y/autocomplete-valid': 'off',
|
|
54
54
|
|
|
55
55
|
// Enforce a clickable non-interactive element has at least one keyboard event listener
|
|
56
|
-
// https://
|
|
56
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/click-events-have-key-events.html
|
|
57
57
|
'jsx_a11y/click-events-have-key-events': 'error',
|
|
58
58
|
|
|
59
59
|
// Enforce heading elements have content
|
|
60
|
-
// https://
|
|
60
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/heading-has-content.html
|
|
61
61
|
'jsx_a11y/heading-has-content': ['error', { components: [''] }],
|
|
62
62
|
|
|
63
63
|
// Enforce <html> element has lang prop
|
|
64
|
-
// https://
|
|
64
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/html-has-lang.html
|
|
65
65
|
'jsx_a11y/html-has-lang': 'error',
|
|
66
66
|
|
|
67
67
|
// Enforce iframe elements have a title attribute
|
|
68
|
-
// https://
|
|
68
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/iframe-has-title.html
|
|
69
69
|
'jsx_a11y/iframe-has-title': 'error',
|
|
70
70
|
|
|
71
71
|
// Enforce <img> alt prop does not contain the word "image", "picture", or "photo"
|
|
72
|
-
// https://
|
|
72
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/img-redundant-alt.html
|
|
73
73
|
'jsx_a11y/img-redundant-alt': 'error',
|
|
74
74
|
|
|
75
75
|
// Enforce that a label tag has a text label and an associated control
|
|
76
|
-
// https://
|
|
76
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/label-has-associated-control.html
|
|
77
77
|
'jsx_a11y/label-has-associated-control': [
|
|
78
78
|
'error',
|
|
79
79
|
{
|
|
@@ -86,35 +86,35 @@ export const reactA11yRules = {
|
|
|
86
86
|
],
|
|
87
87
|
|
|
88
88
|
// Enforce lang attribute has a valid value
|
|
89
|
-
// https://
|
|
89
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/lang.html
|
|
90
90
|
'jsx_a11y/lang': 'error',
|
|
91
91
|
|
|
92
92
|
// Enforce that media elements have captions
|
|
93
|
-
// https://
|
|
93
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/media-has-caption.html
|
|
94
94
|
'jsx_a11y/media-has-caption': 'error',
|
|
95
95
|
|
|
96
96
|
// Enforce that onMouseOver/onMouseOut are accompanied by onFocus/onBlur
|
|
97
|
-
// https://
|
|
97
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/mouse-events-have-key-events.html
|
|
98
98
|
'jsx_a11y/mouse-events-have-key-events': 'error',
|
|
99
99
|
|
|
100
100
|
// Enforce that the accessKey prop is not used on any element
|
|
101
|
-
// https://
|
|
101
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/no-access-key.html
|
|
102
102
|
'jsx_a11y/no-access-key': 'error',
|
|
103
103
|
|
|
104
104
|
// Enforce autoFocus prop is not used
|
|
105
|
-
// https://
|
|
105
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/no-autofocus.html
|
|
106
106
|
'jsx_a11y/no-autofocus': ['error', { ignoreNonDOM: true }],
|
|
107
107
|
|
|
108
108
|
// Enforce distracting elements are not used
|
|
109
|
-
// https://
|
|
109
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/no-distracting-elements.html
|
|
110
110
|
'jsx_a11y/no-distracting-elements': 'error',
|
|
111
111
|
|
|
112
112
|
// Enforce tabIndex value is not greater than zero
|
|
113
|
-
// https://
|
|
113
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/tabindex-no-positive.html
|
|
114
114
|
'jsx_a11y/tabindex-no-positive': 'error',
|
|
115
115
|
|
|
116
116
|
// Ensure interactive elements are not assigned non-interactive roles
|
|
117
|
-
// https://
|
|
117
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/no-noninteractive-tabindex.html
|
|
118
118
|
'jsx_a11y/no-noninteractive-tabindex': [
|
|
119
119
|
'error',
|
|
120
120
|
{
|
|
@@ -124,27 +124,27 @@ export const reactA11yRules = {
|
|
|
124
124
|
],
|
|
125
125
|
|
|
126
126
|
// Enforce explicit role is not redundant with implicit role of the element
|
|
127
|
-
// https://
|
|
127
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/no-redundant-roles.html
|
|
128
128
|
'jsx_a11y/no-redundant-roles': 'error',
|
|
129
129
|
|
|
130
130
|
// Enforce that non-interactive, visible elements with click handlers use the role attribute
|
|
131
|
-
// https://
|
|
131
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/no-static-element-interactions.html
|
|
132
132
|
'jsx_a11y/no-static-element-interactions': 'error',
|
|
133
133
|
|
|
134
134
|
// Enforce scope prop is only used on <th> elements
|
|
135
|
-
// https://
|
|
135
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/scope.html
|
|
136
136
|
'jsx_a11y/scope': 'error',
|
|
137
137
|
|
|
138
138
|
// Enforce that anchor elements have non-ambiguous text content
|
|
139
|
-
// https://
|
|
139
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/anchor-ambiguous-text.html
|
|
140
140
|
'jsx_a11y/anchor-ambiguous-text': 'error',
|
|
141
141
|
|
|
142
142
|
// Enforce that aria-hidden="true" is not set on focusable elements
|
|
143
|
-
// https://
|
|
143
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/no-aria-hidden-on-focusable.html
|
|
144
144
|
'jsx_a11y/no-aria-hidden-on-focusable': 'error',
|
|
145
145
|
|
|
146
146
|
// Prefer semantic HTML elements over role attributes
|
|
147
|
-
// https://
|
|
147
|
+
// https://oxc.rs/docs/guide/usage/linter/rules/jsx-a11y/prefer-tag-over-role.html
|
|
148
148
|
// decision: left to implementer
|
|
149
149
|
'jsx_a11y/prefer-tag-over-role': 'off',
|
|
150
150
|
},
|