react-code-smell-detector 1.0.1 → 1.2.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.
Files changed (53) hide show
  1. package/README.md +69 -11
  2. package/dist/analyzer.d.ts.map +1 -1
  3. package/dist/analyzer.js +78 -2
  4. package/dist/cli.js +43 -9
  5. package/dist/detectors/accessibility.d.ts +12 -0
  6. package/dist/detectors/accessibility.d.ts.map +1 -0
  7. package/dist/detectors/accessibility.js +191 -0
  8. package/dist/detectors/debug.d.ts +10 -0
  9. package/dist/detectors/debug.d.ts.map +1 -0
  10. package/dist/detectors/debug.js +87 -0
  11. package/dist/detectors/index.d.ts +8 -0
  12. package/dist/detectors/index.d.ts.map +1 -1
  13. package/dist/detectors/index.js +10 -0
  14. package/dist/detectors/javascript.d.ts +11 -0
  15. package/dist/detectors/javascript.d.ts.map +1 -0
  16. package/dist/detectors/javascript.js +148 -0
  17. package/dist/detectors/nextjs.d.ts +11 -0
  18. package/dist/detectors/nextjs.d.ts.map +1 -0
  19. package/dist/detectors/nextjs.js +103 -0
  20. package/dist/detectors/nodejs.d.ts +11 -0
  21. package/dist/detectors/nodejs.d.ts.map +1 -0
  22. package/dist/detectors/nodejs.js +169 -0
  23. package/dist/detectors/reactNative.d.ts +10 -0
  24. package/dist/detectors/reactNative.d.ts.map +1 -0
  25. package/dist/detectors/reactNative.js +135 -0
  26. package/dist/detectors/security.d.ts +12 -0
  27. package/dist/detectors/security.d.ts.map +1 -0
  28. package/dist/detectors/security.js +161 -0
  29. package/dist/detectors/typescript.d.ts +11 -0
  30. package/dist/detectors/typescript.d.ts.map +1 -0
  31. package/dist/detectors/typescript.js +135 -0
  32. package/dist/htmlReporter.d.ts +6 -0
  33. package/dist/htmlReporter.d.ts.map +1 -0
  34. package/dist/htmlReporter.js +453 -0
  35. package/dist/reporter.js +37 -0
  36. package/dist/types/index.d.ts +10 -1
  37. package/dist/types/index.d.ts.map +1 -1
  38. package/dist/types/index.js +11 -0
  39. package/package.json +2 -2
  40. package/src/analyzer.ts +91 -1
  41. package/src/cli.ts +43 -9
  42. package/src/detectors/accessibility.ts +212 -0
  43. package/src/detectors/debug.ts +103 -0
  44. package/src/detectors/index.ts +10 -0
  45. package/src/detectors/javascript.ts +169 -0
  46. package/src/detectors/nextjs.ts +124 -0
  47. package/src/detectors/nodejs.ts +199 -0
  48. package/src/detectors/reactNative.ts +154 -0
  49. package/src/detectors/security.ts +179 -0
  50. package/src/detectors/typescript.ts +151 -0
  51. package/src/htmlReporter.ts +464 -0
  52. package/src/reporter.ts +37 -0
  53. package/src/types/index.ts +61 -2
@@ -14,7 +14,44 @@ export type SmellType =
14
14
  | 'dependency-array-issue'
15
15
  | 'nested-ternary'
16
16
  | 'dead-code'
17
- | 'magic-value';
17
+ | 'magic-value'
18
+ // Debug/cleanup
19
+ | 'debug-statement'
20
+ | 'todo-comment'
21
+ // Security
22
+ | 'security-xss'
23
+ | 'security-eval'
24
+ | 'security-secrets'
25
+ // Accessibility
26
+ | 'a11y-missing-alt'
27
+ | 'a11y-missing-label'
28
+ | 'a11y-interactive-role'
29
+ | 'a11y-keyboard'
30
+ | 'a11y-semantic'
31
+ // Next.js specific
32
+ | 'nextjs-client-server-boundary'
33
+ | 'nextjs-missing-metadata'
34
+ | 'nextjs-image-unoptimized'
35
+ | 'nextjs-router-misuse'
36
+ // React Native specific
37
+ | 'rn-inline-style'
38
+ | 'rn-missing-accessibility'
39
+ | 'rn-performance-issue'
40
+ // Node.js specific
41
+ | 'nodejs-callback-hell'
42
+ | 'nodejs-unhandled-promise'
43
+ | 'nodejs-sync-io'
44
+ | 'nodejs-missing-error-handling'
45
+ // JavaScript specific
46
+ | 'js-var-usage'
47
+ | 'js-loose-equality'
48
+ | 'js-implicit-coercion'
49
+ | 'js-global-pollution'
50
+ // TypeScript specific
51
+ | 'ts-any-usage'
52
+ | 'ts-missing-return-type'
53
+ | 'ts-non-null-assertion'
54
+ | 'ts-type-assertion';
18
55
 
19
56
  export interface CodeSmell {
20
57
  type: SmellType;
@@ -87,7 +124,18 @@ export interface DetectorConfig {
87
124
  maxTernaryDepth: number;
88
125
  checkDeadCode: boolean;
89
126
  checkMagicValues: boolean;
90
- magicNumberThreshold: number; // Numbers above this are flagged
127
+ magicNumberThreshold: number;
128
+ // Framework detection
129
+ checkNextjs: boolean;
130
+ checkReactNative: boolean;
131
+ checkNodejs: boolean;
132
+ checkJavascript: boolean;
133
+ checkTypescript: boolean;
134
+ maxCallbackDepth: number;
135
+ // New detectors
136
+ checkDebugStatements: boolean;
137
+ checkSecurity: boolean;
138
+ checkAccessibility: boolean;
91
139
  }
92
140
 
93
141
  export const DEFAULT_CONFIG: DetectorConfig = {
@@ -103,4 +151,15 @@ export const DEFAULT_CONFIG: DetectorConfig = {
103
151
  checkDeadCode: true,
104
152
  checkMagicValues: true,
105
153
  magicNumberThreshold: 10,
154
+ // Framework detection - auto-enabled based on project
155
+ checkNextjs: true,
156
+ checkReactNative: true,
157
+ checkNodejs: true,
158
+ checkJavascript: true,
159
+ checkTypescript: true,
160
+ maxCallbackDepth: 3,
161
+ // New detectors
162
+ checkDebugStatements: true,
163
+ checkSecurity: true,
164
+ checkAccessibility: true,
106
165
  };