ignore-lint-errors 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/README.md CHANGED
@@ -34,7 +34,7 @@ Step 2. Fix formatting.
34
34
 
35
35
  ```sh
36
36
  # Run prettier
37
- pnpm format
37
+ pnpm prettier . --write
38
38
  ```
39
39
 
40
40
 
@@ -1,15 +1,15 @@
1
1
  import { EOL } from 'node:os';
2
2
  import { AST } from '@codemod-utils/ast-javascript';
3
- function getIgnoredEslintRules(lineOfCode) {
3
+ function getIgnoredRules(lineOfCode) {
4
4
  const traverse = AST.traverse(true);
5
- let ignoredEslintRules = [];
5
+ let ignoredRules = [];
6
6
  try {
7
7
  traverse(lineOfCode, {
8
8
  visitComment(node) {
9
9
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
10
10
  const comment = node.value.value.trim();
11
11
  if (comment.startsWith('eslint-disable-next-line')) {
12
- ignoredEslintRules = comment
12
+ ignoredRules = comment
13
13
  .replace(/^eslint-disable-next-line\s+/, '')
14
14
  .split(',')
15
15
  .map((token) => token.trim());
@@ -21,20 +21,20 @@ function getIgnoredEslintRules(lineOfCode) {
21
21
  catch {
22
22
  // Do nothing
23
23
  }
24
- return ignoredEslintRules;
24
+ return ignoredRules;
25
25
  }
26
26
  export function ignoreErrors(file, lintErrors) {
27
27
  const lines = file.split(EOL);
28
28
  lintErrors.forEach(({ line, message }) => {
29
29
  const currentIndex = line - 1;
30
30
  const previousIndex = Math.max(currentIndex - 1, 0);
31
- const ignoredEslintRules = getIgnoredEslintRules(lines[previousIndex]);
32
- if (ignoredEslintRules.length === 0) {
31
+ const ignoredRules = getIgnoredRules(lines[previousIndex]);
32
+ if (ignoredRules.length === 0) {
33
33
  const ignoreDirective = `// eslint-disable-next-line ${message}`;
34
34
  lines.splice(currentIndex, 0, ignoreDirective);
35
35
  }
36
36
  else {
37
- const newMessage = [...ignoredEslintRules, ...message.split(', ')]
37
+ const newMessage = [...ignoredRules, ...message.split(', ')]
38
38
  .sort()
39
39
  .join(', ');
40
40
  const ignoreDirective = `// eslint-disable-next-line ${newMessage}`;
@@ -1,9 +1,45 @@
1
1
  import { EOL } from 'node:os';
2
+ import { AST } from '@codemod-utils/ast-javascript';
3
+ function getIgnoredRules(lineOfCode) {
4
+ const traverse = AST.traverse(true);
5
+ let ignoredRules = [];
6
+ try {
7
+ traverse(lineOfCode, {
8
+ visitComment(node) {
9
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
10
+ const comment = node.value.value.trim();
11
+ if (comment.startsWith('stylelint-disable-next-line')) {
12
+ ignoredRules = comment
13
+ .replace(/^stylelint-disable-next-line\s+/, '')
14
+ .split(',')
15
+ .map((token) => token.trim());
16
+ }
17
+ return false;
18
+ },
19
+ });
20
+ }
21
+ catch {
22
+ // Do nothing
23
+ }
24
+ return ignoredRules;
25
+ }
2
26
  export function ignoreErrors(file, lintErrors) {
3
27
  const lines = file.split(EOL);
4
28
  lintErrors.forEach(({ line, message }) => {
5
- const ignoreDirective = `/* stylelint-disable-next-line ${message} */`;
6
- lines.splice(line - 1, 0, ignoreDirective);
29
+ const currentIndex = line - 1;
30
+ const previousIndex = Math.max(currentIndex - 1, 0);
31
+ const ignoredRules = getIgnoredRules(lines[previousIndex]);
32
+ if (ignoredRules.length === 0) {
33
+ const ignoreDirective = `/* stylelint-disable-next-line ${message} */`;
34
+ lines.splice(currentIndex, 0, ignoreDirective);
35
+ }
36
+ else {
37
+ const newMessage = [...ignoredRules, ...message.split(', ')]
38
+ .sort()
39
+ .join(', ');
40
+ const ignoreDirective = `/* stylelint-disable-next-line ${newMessage} */`;
41
+ lines.splice(previousIndex, 1, ignoreDirective);
42
+ }
7
43
  });
8
44
  return lines.join(EOL);
9
45
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ignore-lint-errors",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Codemod to ignore lint errors per line",
5
5
  "keywords": [
6
6
  "codemod",