dependency-cruiser 17.3.2 → 17.3.3-beta-2

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 (232) hide show
  1. package/bin/depcruise-baseline.mjs +43 -43
  2. package/bin/depcruise-fmt.mjs +89 -89
  3. package/bin/dependency-cruise.mjs +171 -171
  4. package/configs/plugins/3d-reporter-plugin.mjs +36 -36
  5. package/configs/plugins/stats-reporter-plugin.mjs +51 -51
  6. package/configs/recommended-strict.cjs +5 -5
  7. package/configs/recommended-warn-only.cjs +5 -5
  8. package/configs/recommended.cjs +22 -22
  9. package/configs/rules/no-circular.cjs +10 -10
  10. package/configs/rules/no-deprecated-core.cjs +10 -10
  11. package/configs/rules/no-duplicate-dependency-types.cjs +17 -17
  12. package/configs/rules/no-non-package-json.cjs +11 -11
  13. package/configs/rules/no-orphans.cjs +18 -18
  14. package/configs/rules/not-to-deprecated.cjs +10 -10
  15. package/configs/rules/not-to-unresolvable.cjs +10 -10
  16. package/package.json +170 -170
  17. package/src/cache/cache.mjs +139 -139
  18. package/src/cache/content-strategy.mjs +88 -88
  19. package/src/cache/find-content-changes.mjs +58 -58
  20. package/src/cache/helpers.mjs +52 -52
  21. package/src/cache/metadata-strategy.mjs +83 -83
  22. package/src/cache/options-compatible.mjs +56 -109
  23. package/src/cli/assert-node-environment-suitable.mjs +7 -7
  24. package/src/cli/defaults.mjs +5 -5
  25. package/src/cli/format-meta-info.mjs +22 -22
  26. package/src/cli/format.mjs +28 -28
  27. package/src/cli/index.mjs +145 -145
  28. package/src/cli/init-config/build-config.mjs +94 -94
  29. package/src/cli/init-config/environment-helpers.mjs +77 -77
  30. package/src/cli/init-config/find-extensions.mjs +27 -27
  31. package/src/cli/init-config/get-user-input.mjs +151 -151
  32. package/src/cli/init-config/index.mjs +88 -88
  33. package/src/cli/init-config/normalize-init-options.mjs +47 -47
  34. package/src/cli/init-config/utl.mjs +4 -4
  35. package/src/cli/init-config/validators.mjs +10 -10
  36. package/src/cli/init-config/write-config.mjs +21 -21
  37. package/src/cli/init-config/write-run-scripts-to-manifest.mjs +103 -107
  38. package/src/cli/listeners/cli-feedback.mjs +49 -49
  39. package/src/cli/listeners/ndjson.mjs +66 -66
  40. package/src/cli/listeners/performance-log/format-helpers.mjs +63 -63
  41. package/src/cli/listeners/performance-log/handlers.mjs +56 -56
  42. package/src/cli/listeners/performance-log/index.mjs +37 -37
  43. package/src/cli/normalize-cli-options.mjs +182 -182
  44. package/src/cli/tools/wrap-stream-in-html.mjs +37 -37
  45. package/src/cli/utl/assert-file-existence.mjs +7 -7
  46. package/src/cli/utl/io.mjs +28 -31
  47. package/src/config-utl/extract-babel-config.mjs +69 -69
  48. package/src/config-utl/extract-depcruise-config/index.mjs +54 -54
  49. package/src/config-utl/extract-depcruise-config/merge-configs.mjs +63 -63
  50. package/src/config-utl/extract-depcruise-config/read-config.mjs +9 -9
  51. package/src/config-utl/extract-depcruise-options.mjs +9 -9
  52. package/src/config-utl/extract-known-violations.mjs +49 -49
  53. package/src/config-utl/extract-ts-config.mjs +46 -48
  54. package/src/config-utl/extract-webpack-resolve-config.mjs +88 -88
  55. package/src/config-utl/make-absolute.mjs +5 -5
  56. package/src/enrich/add-validations.mjs +13 -13
  57. package/src/enrich/derive/circular.mjs +49 -49
  58. package/src/enrich/derive/dependents.mjs +27 -27
  59. package/src/enrich/derive/folders/aggregate-to-folders.mjs +104 -104
  60. package/src/enrich/derive/folders/index.mjs +19 -19
  61. package/src/enrich/derive/folders/utl.mjs +18 -18
  62. package/src/enrich/derive/metrics/get-module-metrics.mjs +27 -27
  63. package/src/enrich/derive/metrics/index.mjs +8 -8
  64. package/src/enrich/derive/module-utl.mjs +18 -18
  65. package/src/enrich/derive/orphan/index.mjs +18 -18
  66. package/src/enrich/derive/orphan/is-orphan.mjs +9 -9
  67. package/src/enrich/derive/reachable.mjs +165 -168
  68. package/src/enrich/enrich-modules.mjs +25 -25
  69. package/src/enrich/index.mjs +15 -15
  70. package/src/enrich/soften-known-violations.mjs +90 -90
  71. package/src/enrich/summarize/add-rule-set-used.mjs +13 -13
  72. package/src/enrich/summarize/get-stats.mjs +17 -17
  73. package/src/enrich/summarize/index.mjs +18 -18
  74. package/src/enrich/summarize/is-same-violation.mjs +30 -30
  75. package/src/enrich/summarize/summarize-folders.mjs +35 -35
  76. package/src/enrich/summarize/summarize-modules.mjs +97 -97
  77. package/src/enrich/summarize/summarize-options.mjs +71 -71
  78. package/src/extract/acorn/estree-helpers.mjs +66 -66
  79. package/src/extract/acorn/extract-amd-deps.mjs +63 -64
  80. package/src/extract/acorn/extract-cjs-deps.mjs +83 -83
  81. package/src/extract/acorn/extract-es6-deps.mjs +54 -54
  82. package/src/extract/acorn/extract-stats.mjs +4 -4
  83. package/src/extract/acorn/extract.mjs +28 -28
  84. package/src/extract/acorn/parse.mjs +37 -37
  85. package/src/extract/clear-caches.mjs +7 -7
  86. package/src/extract/extract-dependencies.mjs +109 -109
  87. package/src/extract/extract-stats.mjs +21 -21
  88. package/src/extract/gather-initial-sources.mjs +64 -64
  89. package/src/extract/helpers.mjs +73 -71
  90. package/src/extract/index.mjs +120 -120
  91. package/src/extract/resolve/determine-dependency-types.mjs +166 -169
  92. package/src/extract/resolve/external-module-helpers.mjs +76 -76
  93. package/src/extract/resolve/get-manifest.mjs +79 -79
  94. package/src/extract/resolve/index.mjs +175 -164
  95. package/src/extract/resolve/is-built-in.mjs +22 -24
  96. package/src/extract/resolve/merge-manifests.mjs +43 -43
  97. package/src/extract/resolve/module-classifiers.mjs +229 -229
  98. package/src/extract/resolve/resolve-amd.mjs +44 -44
  99. package/src/extract/resolve/resolve-cjs.mjs +40 -40
  100. package/src/extract/resolve/resolve-helpers.mjs +20 -20
  101. package/src/extract/resolve/resolve.mjs +26 -26
  102. package/src/extract/swc/dependency-visitor.mjs +211 -211
  103. package/src/extract/swc/extract-swc-deps.mjs +4 -4
  104. package/src/extract/swc/extract.mjs +7 -7
  105. package/src/extract/swc/parse.mjs +12 -12
  106. package/src/extract/transpile/babel-wrap.mjs +9 -9
  107. package/src/extract/transpile/coffeescript-wrap.mjs +21 -21
  108. package/src/extract/transpile/index.mjs +47 -47
  109. package/src/extract/transpile/javascript-wrap.mjs +6 -6
  110. package/src/extract/transpile/livescript-wrap.mjs +5 -5
  111. package/src/extract/transpile/meta.mjs +80 -80
  112. package/src/extract/transpile/svelte-preprocess.mjs +73 -73
  113. package/src/extract/transpile/svelte-wrap.mjs +19 -19
  114. package/src/extract/transpile/try-import-available.mjs +26 -27
  115. package/src/extract/transpile/typescript-wrap.mjs +39 -39
  116. package/src/extract/transpile/vue-template-wrap.cjs +43 -43
  117. package/src/extract/tsc/extract-stats.mjs +4 -4
  118. package/src/extract/tsc/extract-typescript-deps.mjs +429 -398
  119. package/src/extract/tsc/extract.mjs +22 -22
  120. package/src/extract/tsc/parse.mjs +21 -21
  121. package/src/graph-utl/add-focus.mjs +35 -35
  122. package/src/graph-utl/compare.mjs +24 -24
  123. package/src/graph-utl/consolidate-module-dependencies.mjs +35 -35
  124. package/src/graph-utl/consolidate-modules.mjs +33 -33
  125. package/src/graph-utl/consolidate-to-folder.mjs +13 -13
  126. package/src/graph-utl/consolidate-to-pattern.mjs +34 -34
  127. package/src/graph-utl/filter-bank.mjs +74 -69
  128. package/src/graph-utl/indexed-module-graph.mjs +227 -225
  129. package/src/graph-utl/match-facade.mjs +3 -3
  130. package/src/graph-utl/rule-set.mjs +20 -20
  131. package/src/graph-utl/strip-self-transitions.mjs +6 -6
  132. package/src/main/cruise.mjs +81 -81
  133. package/src/main/files-and-dirs/normalize.mjs +7 -7
  134. package/src/main/format.mjs +11 -14
  135. package/src/main/helpers.mjs +25 -25
  136. package/src/main/index.mjs +8 -8
  137. package/src/main/options/assert-validity.mjs +100 -100
  138. package/src/main/options/defaults.mjs +11 -11
  139. package/src/main/options/normalize.mjs +158 -160
  140. package/src/main/report-wrap.mjs +37 -37
  141. package/src/main/resolve-options/normalize.mjs +127 -128
  142. package/src/main/rule-set/assert-validity.mjs +67 -73
  143. package/src/main/rule-set/normalize.mjs +81 -79
  144. package/src/meta.cjs +15 -16
  145. package/src/report/anon/anonymize-path-element.mjs +20 -34
  146. package/src/report/anon/anonymize-path.mjs +11 -11
  147. package/src/report/anon/index.mjs +119 -119
  148. package/src/report/anon/random-string.mjs +23 -23
  149. package/src/report/azure-devops.mjs +75 -99
  150. package/src/report/baseline.mjs +9 -9
  151. package/src/report/csv.mjs +13 -13
  152. package/src/report/d2.mjs +105 -105
  153. package/src/report/dot/default-theme.mjs +152 -152
  154. package/src/report/dot/index.mjs +146 -146
  155. package/src/report/dot/module-utl.mjs +72 -72
  156. package/src/report/dot/prepare-custom-level.mjs +20 -20
  157. package/src/report/dot/prepare-flat-level.mjs +11 -11
  158. package/src/report/dot/prepare-folder-level.mjs +12 -13
  159. package/src/report/dot/theming.mjs +73 -73
  160. package/src/report/dot-webpage/dot-module.mjs +36 -36
  161. package/src/report/dot-webpage/svg-in-html-snippets/script.cjs +208 -210
  162. package/src/report/dot-webpage/svg-in-html-snippets/style.css +51 -51
  163. package/src/report/dot-webpage/wrap-in-html.mjs +7 -7
  164. package/src/report/error-html/index.mjs +49 -49
  165. package/src/report/error-html/utl.mjs +99 -99
  166. package/src/report/error-long.mjs +1 -1
  167. package/src/report/error.mjs +93 -93
  168. package/src/report/html/index.mjs +48 -48
  169. package/src/report/identity.mjs +4 -4
  170. package/src/report/index.mjs +33 -33
  171. package/src/report/json.mjs +4 -4
  172. package/src/report/markdown.mjs +120 -120
  173. package/src/report/mermaid.mjs +111 -111
  174. package/src/report/metrics.mjs +185 -185
  175. package/src/report/null.mjs +4 -4
  176. package/src/report/plugins.mjs +41 -41
  177. package/src/report/teamcity.mjs +150 -150
  178. package/src/report/text.mjs +42 -42
  179. package/src/report/utl/dependency-to-incidence-transformer.mjs +32 -32
  180. package/src/report/utl/index.mjs +53 -53
  181. package/src/schema/configuration.validate.mjs +1 -0
  182. package/src/schema/cruise-result.validate.mjs +1 -0
  183. package/src/schema/utl.mjs +6 -0
  184. package/src/utl/array-util.mjs +25 -25
  185. package/src/utl/bus.mjs +12 -12
  186. package/src/utl/extract-root-module-name.cjs +8 -8
  187. package/src/utl/find-all-files.mjs +54 -54
  188. package/src/utl/get-extension.mjs +2 -2
  189. package/src/utl/object-util.mjs +21 -22
  190. package/src/utl/path-to-posix.mjs +5 -5
  191. package/src/utl/regex-util.mjs +20 -20
  192. package/src/utl/try-import.mjs +42 -41
  193. package/src/utl/try-require.cjs +23 -23
  194. package/src/utl/wrap-and-indent.mjs +33 -33
  195. package/src/validate/index.mjs +65 -65
  196. package/src/validate/match-dependency-rule.mjs +47 -47
  197. package/src/validate/match-folder-dependency-rule.mjs +27 -27
  198. package/src/validate/match-module-rule-helpers.mjs +76 -76
  199. package/src/validate/match-module-rule.mjs +12 -12
  200. package/src/validate/matchers.mjs +162 -162
  201. package/src/validate/rule-classifiers.mjs +9 -9
  202. package/src/validate/violates-required-rule.mjs +23 -23
  203. package/types/cache-options.d.mts +27 -27
  204. package/types/config-utl/extract-babel-config.d.mts +1 -1
  205. package/types/config-utl/extract-depcruise-config.d.mts +3 -3
  206. package/types/config-utl/extract-depcruise-options.d.mts +1 -1
  207. package/types/config-utl/extract-ts-config.d.mts +1 -1
  208. package/types/config-utl/extract-webpack-resolve-config.d.mts +3 -3
  209. package/types/configuration.d.mts +10 -10
  210. package/types/cruise-result.d.mts +414 -414
  211. package/types/dependency-cruiser.d.mts +52 -52
  212. package/types/filter-types.d.mts +45 -45
  213. package/types/options.d.mts +430 -430
  214. package/types/plugins/3d-reporter-plugin.d.mts +9 -9
  215. package/types/plugins/mermaid-reporter-plugin.d.mts +10 -10
  216. package/types/plugins/stats-reporter-plugin.d.mts +9 -9
  217. package/types/reporter-options.d.mts +196 -196
  218. package/types/resolve-options.d.mts +23 -23
  219. package/types/restrictions.d.mts +174 -174
  220. package/types/rule-set.d.mts +132 -132
  221. package/types/rule-summary.d.mts +14 -14
  222. package/types/shared-types.d.mts +89 -89
  223. package/types/strict-filter-types.d.mts +52 -52
  224. package/types/strict-options.d.mts +34 -34
  225. package/types/strict-restrictions.d.mts +25 -25
  226. package/types/strict-rule-set.d.mts +36 -36
  227. package/types/violations.d.mts +40 -40
  228. package/src/schema/README.md +0 -5
  229. package/src/schema/baseline-violations.schema.mjs +0 -1
  230. package/src/schema/configuration.schema.mjs +0 -1
  231. package/src/schema/cruise-result.schema.mjs +0 -1
  232. package/types/README.md +0 -1
@@ -4,52 +4,52 @@ import { compareViolations } from "#graph-utl/compare.mjs";
4
4
  import { uniqWith } from "#utl/array-util.mjs";
5
5
 
6
6
  function cutNonTransgressions(pModule) {
7
- return {
8
- ...pModule,
9
- dependencies: pModule.dependencies.filter(
10
- (pDependency) => pDependency.valid === false,
11
- ),
12
- };
7
+ return {
8
+ ...pModule,
9
+ dependencies: pModule.dependencies.filter(
10
+ (pDependency) => pDependency.valid === false,
11
+ ),
12
+ };
13
13
  }
14
14
 
15
15
  function toDependencyViolationSummary(pRule, pModule, pDependency, pRuleSet) {
16
- let lReturnValue = {
17
- type: "dependency",
18
- from: pModule.source,
19
- to: pDependency.resolved,
20
- rule: pRule,
21
- };
16
+ let lReturnValue = {
17
+ type: "dependency",
18
+ from: pModule.source,
19
+ to: pDependency.resolved,
20
+ rule: pRule,
21
+ };
22
22
 
23
- if (
24
- Object.hasOwn(pDependency, "cycle") &&
25
- findRuleByName(pRuleSet, pRule.name)?.to?.circular
26
- ) {
27
- lReturnValue = {
28
- ...lReturnValue,
29
- type: "cycle",
30
- cycle: pDependency.cycle,
31
- };
32
- }
23
+ if (
24
+ Object.hasOwn(pDependency, "cycle") &&
25
+ findRuleByName(pRuleSet, pRule.name)?.to?.circular
26
+ ) {
27
+ lReturnValue = {
28
+ ...lReturnValue,
29
+ type: "cycle",
30
+ cycle: pDependency.cycle,
31
+ };
32
+ }
33
33
 
34
- if (
35
- Object.hasOwn(pModule, "instability") &&
36
- Object.hasOwn(pDependency, "instability") &&
37
- Object.hasOwn(
38
- findRuleByName(pRuleSet, pRule.name)?.to ?? {},
39
- "moreUnstable",
40
- )
41
- ) {
42
- lReturnValue = {
43
- ...lReturnValue,
44
- type: "instability",
45
- metrics: {
46
- from: { instability: pModule.instability },
47
- to: { instability: pDependency.instability },
48
- },
49
- };
50
- }
34
+ if (
35
+ Object.hasOwn(pModule, "instability") &&
36
+ Object.hasOwn(pDependency, "instability") &&
37
+ Object.hasOwn(
38
+ findRuleByName(pRuleSet, pRule.name)?.to ?? {},
39
+ "moreUnstable",
40
+ )
41
+ ) {
42
+ lReturnValue = {
43
+ ...lReturnValue,
44
+ type: "instability",
45
+ metrics: {
46
+ from: { instability: pModule.instability },
47
+ to: { instability: pDependency.instability },
48
+ },
49
+ };
50
+ }
51
51
 
52
- return lReturnValue;
52
+ return lReturnValue;
53
53
  }
54
54
 
55
55
  /**
@@ -70,71 +70,71 @@ function toDependencyViolationSummary(pRule, pModule, pDependency, pRuleSet) {
70
70
  * @return {any} an array of violations
71
71
  */
72
72
  function extractDependencyViolations(pModules, pRuleSet) {
73
- return pModules
74
- .map(cutNonTransgressions)
75
- .filter((pModule) => pModule.dependencies.length > 0)
76
- .map((pModule) =>
77
- pModule.dependencies.map((pDependency) =>
78
- pDependency.rules.map((pRule) =>
79
- toDependencyViolationSummary(pRule, pModule, pDependency, pRuleSet),
80
- ),
81
- ),
82
- )
83
- .flat(Infinity);
73
+ return pModules
74
+ .map(cutNonTransgressions)
75
+ .filter((pModule) => pModule.dependencies.length > 0)
76
+ .map((pModule) =>
77
+ pModule.dependencies.map((pDependency) =>
78
+ pDependency.rules.map((pRule) =>
79
+ toDependencyViolationSummary(pRule, pModule, pDependency, pRuleSet),
80
+ ),
81
+ ),
82
+ )
83
+ .flat(Infinity);
84
84
  }
85
85
 
86
86
  function toModuleViolationSummary(pRule, pModule, pRuleSet) {
87
- let lReturnValue = [
88
- { type: "module", from: pModule.source, to: pModule.source, rule: pRule },
89
- ];
90
- if (pModule.reaches && findRuleByName(pRuleSet, pRule.name)?.to?.reachable) {
91
- lReturnValue = pModule.reaches
92
- .filter((pReachable) => pReachable.asDefinedInRule === pRule.name)
93
- .reduce(
94
- (pAll, pReachable) =>
95
- pAll.concat(
96
- pReachable.modules.map((pReachableModule) => ({
97
- to: pReachableModule.source,
98
- via: pReachableModule.via,
99
- })),
100
- ),
101
- [],
102
- )
103
- .map((pToModule) => ({
104
- type: "reachability",
105
- from: pModule.source,
106
- to: pToModule.to,
107
- rule: pRule,
108
- via: pToModule.via,
109
- }));
110
- }
87
+ let lReturnValue = [
88
+ { type: "module", from: pModule.source, to: pModule.source, rule: pRule },
89
+ ];
90
+ if (pModule.reaches && findRuleByName(pRuleSet, pRule.name)?.to?.reachable) {
91
+ lReturnValue = pModule.reaches
92
+ .filter((pReachable) => pReachable.asDefinedInRule === pRule.name)
93
+ .reduce(
94
+ (pAll, pReachable) =>
95
+ pAll.concat(
96
+ pReachable.modules.map((pReachableModule) => ({
97
+ to: pReachableModule.source,
98
+ via: pReachableModule.via,
99
+ })),
100
+ ),
101
+ [],
102
+ )
103
+ .map((pToModule) => ({
104
+ type: "reachability",
105
+ from: pModule.source,
106
+ to: pToModule.to,
107
+ rule: pRule,
108
+ via: pToModule.via,
109
+ }));
110
+ }
111
111
 
112
- return lReturnValue;
112
+ return lReturnValue;
113
113
  }
114
114
 
115
115
  function extractModuleViolations(pModules, pRuleSet) {
116
- return pModules
117
- .filter((pModule) => pModule.valid === false)
118
- .reduce(
119
- (pAllModules, pModule) =>
120
- pAllModules.concat(
121
- pModule.rules.reduce(
122
- (pAllRules, pRule) =>
123
- pAllRules.concat(
124
- toModuleViolationSummary(pRule, pModule, pRuleSet),
125
- ),
126
- [],
127
- ),
128
- ),
129
- [],
130
- );
116
+ return pModules
117
+ .filter((pModule) => pModule.valid === false)
118
+ .reduce(
119
+ (pAllModules, pModule) =>
120
+ pAllModules.concat(
121
+ pModule.rules.reduce(
122
+ (pAllRules, pRule) =>
123
+ pAllRules.concat(
124
+ toModuleViolationSummary(pRule, pModule, pRuleSet),
125
+ ),
126
+ [],
127
+ ),
128
+ ),
129
+ [],
130
+ );
131
131
  }
132
132
 
133
133
  export default function summarizeModules(pModules, pRuleSet) {
134
- return uniqWith(
135
- extractDependencyViolations(pModules, pRuleSet)
136
- .concat(extractModuleViolations(pModules, pRuleSet))
137
- .sort(compareViolations),
138
- isSameViolation,
139
- );
134
+ return uniqWith(
135
+ extractDependencyViolations(pModules, pRuleSet)
136
+ .concat(extractModuleViolations(pModules, pRuleSet))
137
+ .sort(compareViolations),
138
+ isSameViolation,
139
+ );
140
140
  }
@@ -1,83 +1,83 @@
1
1
  const SHAREABLE_OPTIONS = [
2
- "babelConfig",
3
- "baseDir",
4
- "cache",
5
- "collapse",
6
- "combinedDependencies",
7
- "detectJSDocImports",
8
- "detectProcessBuiltinModuleCalls",
9
- "doNotFollow",
10
- "enhancedResolveOptions",
11
- "exclude",
12
- "exoticallyRequired",
13
- "exoticRequireStrings",
14
- "experimentalStats",
15
- "externalModuleResolutionStrategy",
16
- "focus",
17
- "focusDepth",
18
- "includeOnly",
19
- "knownViolations",
20
- "maxDepth",
21
- "metrics",
22
- "moduleSystems",
23
- "outputTo",
24
- "outputType",
25
- "parser",
26
- "prefix",
27
- "preserveSymlinks",
28
- "reaches",
29
- "reporterOptions",
30
- "rulesFile",
31
- "skipAnalysisNotInRules",
32
- "suffix",
33
- "tsConfig",
34
- "tsPreCompilationDeps",
35
- "webpackConfig",
36
- // "progress", TODO: could be enabled
2
+ "babelConfig",
3
+ "baseDir",
4
+ "cache",
5
+ "collapse",
6
+ "combinedDependencies",
7
+ "detectJSDocImports",
8
+ "detectProcessBuiltinModuleCalls",
9
+ "doNotFollow",
10
+ "enhancedResolveOptions",
11
+ "exclude",
12
+ "exoticallyRequired",
13
+ "exoticRequireStrings",
14
+ "experimentalStats",
15
+ "externalModuleResolutionStrategy",
16
+ "focus",
17
+ "focusDepth",
18
+ "includeOnly",
19
+ "knownViolations",
20
+ "maxDepth",
21
+ "metrics",
22
+ "moduleSystems",
23
+ "outputTo",
24
+ "outputType",
25
+ "parser",
26
+ "prefix",
27
+ "preserveSymlinks",
28
+ "reaches",
29
+ "reporterOptions",
30
+ "rulesFile",
31
+ "skipAnalysisNotInRules",
32
+ "suffix",
33
+ "tsConfig",
34
+ "tsPreCompilationDeps",
35
+ "webpackConfig",
36
+ // "progress", TODO: could be enabled
37
37
  ];
38
38
 
39
39
  function makeOptionsPresentable(pOptions) {
40
- return SHAREABLE_OPTIONS.filter(
41
- (pShareableOptionKey) =>
42
- Object.hasOwn(pOptions, pShareableOptionKey) &&
43
- pOptions?.[pShareableOptionKey] !== 0,
44
- )
45
- .filter(
46
- (pShareableOptionKey) =>
47
- pShareableOptionKey !== "doNotFollow" ||
48
- Object.keys(pOptions.doNotFollow).length > 0,
49
- )
50
- .filter(
51
- (pShareableOptionKey) =>
52
- pShareableOptionKey !== "exclude" ||
53
- Object.keys(pOptions.exclude).length > 0,
54
- )
55
- .filter(
56
- (pShareableOptionKey) =>
57
- pShareableOptionKey !== "knownViolations" ||
58
- pOptions.knownViolations.length > 0,
59
- )
60
- .reduce((pAll, pShareableOptionKey) => {
61
- pAll[pShareableOptionKey] = pOptions[pShareableOptionKey];
62
- return pAll;
63
- }, {});
40
+ return SHAREABLE_OPTIONS.filter(
41
+ (pShareableOptionKey) =>
42
+ Object.hasOwn(pOptions, pShareableOptionKey) &&
43
+ pOptions?.[pShareableOptionKey] !== 0,
44
+ )
45
+ .filter(
46
+ (pShareableOptionKey) =>
47
+ pShareableOptionKey !== "doNotFollow" ||
48
+ Object.keys(pOptions.doNotFollow).length > 0,
49
+ )
50
+ .filter(
51
+ (pShareableOptionKey) =>
52
+ pShareableOptionKey !== "exclude" ||
53
+ Object.keys(pOptions.exclude).length > 0,
54
+ )
55
+ .filter(
56
+ (pShareableOptionKey) =>
57
+ pShareableOptionKey !== "knownViolations" ||
58
+ pOptions.knownViolations.length > 0,
59
+ )
60
+ .reduce((pAll, pShareableOptionKey) => {
61
+ pAll[pShareableOptionKey] = pOptions[pShareableOptionKey];
62
+ return pAll;
63
+ }, {});
64
64
  }
65
65
 
66
66
  function makeIncludeOnlyBackwardsCompatible(pOptions) {
67
- return pOptions.includeOnly
68
- ? {
69
- ...pOptions,
70
- includeOnly: pOptions?.includeOnly?.path,
71
- }
72
- : pOptions;
67
+ return pOptions.includeOnly
68
+ ? {
69
+ ...pOptions,
70
+ includeOnly: pOptions?.includeOnly?.path,
71
+ }
72
+ : pOptions;
73
73
  }
74
74
 
75
75
  export default function summarizeOptions(pFileDirectoryArray, pOptions) {
76
- return {
77
- optionsUsed: {
78
- ...makeOptionsPresentable(makeIncludeOnlyBackwardsCompatible(pOptions)),
79
- args: pFileDirectoryArray.join(" "),
80
- },
81
- };
76
+ return {
77
+ optionsUsed: {
78
+ ...makeOptionsPresentable(makeIncludeOnlyBackwardsCompatible(pOptions)),
79
+ args: pFileDirectoryArray.join(" "),
80
+ },
81
+ };
82
82
  }
83
83
  /* eslint security/detect-object-injection: 0 */
@@ -1,99 +1,99 @@
1
1
  /* eslint-disable no-inline-comments */
2
2
  export function isStringLiteral(pArgument) {
3
- return pArgument.type === "Literal" && typeof pArgument.value === "string";
3
+ return pArgument.type === "Literal" && typeof pArgument.value === "string";
4
4
  }
5
5
 
6
6
  export function firstArgumentIsAString(pArgumentsNode) {
7
- return (
8
- pArgumentsNode && pArgumentsNode[0] && isStringLiteral(pArgumentsNode[0])
9
- );
7
+ return (
8
+ pArgumentsNode && pArgumentsNode[0] && isStringLiteral(pArgumentsNode[0])
9
+ );
10
10
  }
11
11
 
12
12
  export function isPlaceholderLessTemplateLiteral(pArgument) {
13
- return (
14
- pArgument.type === "TemplateLiteral" &&
15
- pArgument.quasis.length === 1 &&
16
- pArgument.expressions.length === 0
17
- );
13
+ return (
14
+ pArgument.type === "TemplateLiteral" &&
15
+ pArgument.quasis.length === 1 &&
16
+ pArgument.expressions.length === 0
17
+ );
18
18
  }
19
19
 
20
20
  export function firstArgumentIsATemplateLiteral(pArgumentsNode) {
21
- return (
22
- pArgumentsNode &&
23
- pArgumentsNode[0] &&
24
- isPlaceholderLessTemplateLiteral(pArgumentsNode[0])
25
- );
21
+ return (
22
+ pArgumentsNode &&
23
+ pArgumentsNode[0] &&
24
+ isPlaceholderLessTemplateLiteral(pArgumentsNode[0])
25
+ );
26
26
  }
27
27
 
28
28
  function isMemberCallExpression(pNode, pObjectName, pPropertyName) {
29
- return (
30
- pNode.type === "CallExpression" &&
31
- pNode.callee.type === "MemberExpression" &&
32
- pNode.callee.object.type === "Identifier" &&
33
- pNode.callee.object.name === pObjectName &&
34
- pNode.callee.property.type === "Identifier" &&
35
- pNode.callee.property.name === pPropertyName
36
- );
29
+ return (
30
+ pNode.type === "CallExpression" &&
31
+ pNode.callee.type === "MemberExpression" &&
32
+ pNode.callee.object.type === "Identifier" &&
33
+ pNode.callee.object.name === pObjectName &&
34
+ pNode.callee.property.type === "Identifier" &&
35
+ pNode.callee.property.name === pPropertyName
36
+ );
37
37
  }
38
38
 
39
39
  function isNestedMemberCallExpression(
40
- pNode,
41
- pObjectName,
42
- pSecondObjectName,
43
- pPropertyName,
40
+ pNode,
41
+ pObjectName,
42
+ pSecondObjectName,
43
+ pPropertyName,
44
44
  ) {
45
- return (
46
- pNode.type === "CallExpression" &&
47
- pNode.callee.type === "MemberExpression" &&
48
- pNode.callee.object.type === "MemberExpression" &&
49
- pNode.callee.object.object.type === "Identifier" &&
50
- pNode.callee.object.object.name === pObjectName && // i.e. globalThis
51
- pNode.callee.object.property.type === "Identifier" &&
52
- pNode.callee.object.property.name === pSecondObjectName && // i.e. process
53
- pNode.callee.property.type === "Identifier" &&
54
- pNode.callee.property.name === pPropertyName // i.e. getBuiltinModule
55
- );
45
+ return (
46
+ pNode.type === "CallExpression" &&
47
+ pNode.callee.type === "MemberExpression" &&
48
+ pNode.callee.object.type === "MemberExpression" &&
49
+ pNode.callee.object.object.type === "Identifier" &&
50
+ pNode.callee.object.object.name === pObjectName && // i.e. globalThis
51
+ pNode.callee.object.property.type === "Identifier" &&
52
+ pNode.callee.object.property.name === pSecondObjectName && // i.e. process
53
+ pNode.callee.property.type === "Identifier" &&
54
+ pNode.callee.property.name === pPropertyName // i.e. getBuiltinModule
55
+ );
56
56
  }
57
57
 
58
58
  function isCalleeIdentifier(pNode, pName) {
59
- return "Identifier" === pNode?.callee?.type && pName === pNode?.callee?.name;
59
+ return "Identifier" === pNode?.callee?.type && pName === pNode?.callee?.name;
60
60
  }
61
61
 
62
62
  export function isRequireOfSomeSort(pNode, pName) {
63
- // prevent doing the pName.split for the common case
64
- if (pName === "require") {
65
- return isCalleeIdentifier(pNode, pName);
66
- }
63
+ // prevent doing the pName.split for the common case
64
+ if (pName === "require") {
65
+ return isCalleeIdentifier(pNode, pName);
66
+ }
67
67
 
68
- const lRequireStringElements = pName.split(".");
68
+ const lRequireStringElements = pName.split(".");
69
69
 
70
- switch (lRequireStringElements.length) {
71
- case 1:
72
- return isCalleeIdentifier(pNode, pName);
73
- // eslint-disable-next-line no-magic-numbers
74
- case 2:
75
- return isMemberCallExpression(pNode, ...lRequireStringElements);
76
- // eslint-disable-next-line no-magic-numbers
77
- case 3:
78
- return isNestedMemberCallExpression(pNode, ...lRequireStringElements);
79
- default:
80
- return false;
81
- }
70
+ switch (lRequireStringElements.length) {
71
+ case 1:
72
+ return isCalleeIdentifier(pNode, pName);
73
+ // eslint-disable-next-line no-magic-numbers
74
+ case 2:
75
+ return isMemberCallExpression(pNode, ...lRequireStringElements);
76
+ // eslint-disable-next-line no-magic-numbers
77
+ case 3:
78
+ return isNestedMemberCallExpression(pNode, ...lRequireStringElements);
79
+ default:
80
+ return false;
81
+ }
82
82
  }
83
83
 
84
84
  export function isLikelyAMDDefineOrRequire(pNode) {
85
- return (
86
- pNode.expression.type === "CallExpression" &&
87
- pNode.expression.callee.type === "Identifier" &&
88
- (pNode.expression.callee.name === "define" ||
89
- pNode.expression.callee.name === "require")
90
- );
85
+ return (
86
+ pNode.expression.type === "CallExpression" &&
87
+ pNode.expression.callee.type === "Identifier" &&
88
+ (pNode.expression.callee.name === "define" ||
89
+ pNode.expression.callee.name === "require")
90
+ );
91
91
  }
92
92
 
93
93
  export function isLikelyAMDDefine(pNode) {
94
- return (
95
- pNode.expression.type === "CallExpression" &&
96
- pNode.expression.callee.type === "Identifier" &&
97
- pNode.expression.callee.name === "define"
98
- );
94
+ return (
95
+ pNode.expression.type === "CallExpression" &&
96
+ pNode.expression.callee.type === "Identifier" &&
97
+ pNode.expression.callee.name === "define"
98
+ );
99
99
  }