dependency-cruiser 12.11.0 → 13.0.0-beta-1
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 +2 -2
- package/bin/{depcruise-baseline.js → depcruise-baseline.mjs} +6 -11
- package/bin/{depcruise-fmt.js → depcruise-fmt.mjs} +10 -17
- package/bin/{dependency-cruise.js → dependency-cruise.mjs} +9 -13
- package/bin/wrap-stream-in-html.mjs +5 -0
- package/configs/plugins/3d-reporter-plugin.js +1 -1
- package/package.json +77 -101
- package/src/cache/{cache.js → cache.mjs} +16 -18
- package/src/cache/{content-strategy.js → content-strategy.mjs} +19 -19
- package/src/cache/{find-content-changes.js → find-content-changes.mjs} +10 -8
- package/src/cache/{utl.js → helpers.mjs} +17 -27
- package/src/cache/{metadata-strategy.js → metadata-strategy.mjs} +14 -16
- package/src/cache/{options-compatible.js → options-compatible.mjs} +8 -18
- package/src/cli/defaults.mjs +17 -0
- package/src/cli/{format-meta-info.js → format-meta-info.mjs} +14 -15
- package/src/cli/format.mjs +26 -0
- package/src/cli/{index.js → index.mjs} +38 -43
- package/src/cli/init-config/{build-config.js → build-config.mjs} +6 -6
- package/src/cli/init-config/config.js.template.js +1 -1
- package/src/cli/init-config/{environment-helpers.js → environment-helpers.mjs} +28 -47
- package/src/cli/init-config/{find-extensions.js → find-extensions.mjs} +6 -6
- package/src/cli/init-config/{get-user-input.js → get-user-input.mjs} +6 -6
- package/src/cli/init-config/{index.js → index.mjs} +17 -18
- package/src/cli/init-config/{normalize-init-options.js → normalize-init-options.mjs} +14 -14
- package/src/cli/init-config/utl.mjs +3 -0
- package/src/cli/init-config/{validators.js → validators.mjs} +3 -7
- package/src/cli/init-config/{write-config.js → write-config.mjs} +8 -8
- package/src/cli/init-config/{write-run-scripts-to-manifest.js → write-run-scripts-to-manifest.mjs} +28 -32
- package/src/cli/listeners/{cli-feedback.js → cli-feedback.mjs} +9 -7
- package/src/cli/listeners/{ndjson.js → ndjson.mjs} +4 -4
- package/src/cli/listeners/performance-log/{format-helpers.js → format-helpers.mjs} +6 -14
- package/src/cli/listeners/performance-log/{handlers.js → handlers.mjs} +5 -11
- package/src/cli/listeners/performance-log/{index.js → index.mjs} +4 -4
- package/src/cli/{normalize-cli-options.js → normalize-cli-options.mjs} +37 -37
- package/src/cli/tools/{wrap-stream-in-html.js → wrap-stream-in-html.mjs} +13 -19
- package/src/cli/utl/{io.js → io.mjs} +5 -10
- package/src/cli/utl/validate-file-existence.mjs +11 -0
- package/src/cli/{validate-node-environment.js → validate-node-environment.mjs} +6 -6
- package/src/config-utl/{extract-babel-config.js → extract-babel-config.mjs} +29 -28
- package/src/config-utl/extract-depcruise-config/{index.js → index.mjs} +22 -25
- package/src/config-utl/extract-depcruise-config/{merge-configs.js → merge-configs.mjs} +12 -12
- package/src/config-utl/extract-depcruise-config/read-config.mjs +13 -0
- package/src/config-utl/{extract-known-violations.js → extract-known-violations.mjs} +5 -5
- package/src/config-utl/{extract-ts-config.js → extract-ts-config.mjs} +9 -6
- package/src/config-utl/{extract-webpack-resolve-config.js → extract-webpack-resolve-config.mjs} +12 -4
- package/src/config-utl/make-absolute.mjs +10 -0
- package/src/enrich/{add-validations.js → add-validations.mjs} +7 -6
- package/src/enrich/derive/{circular.js → circular.mjs} +2 -2
- package/src/enrich/derive/dependents/{get-dependents.js → get-dependents.mjs} +3 -3
- package/src/enrich/derive/dependents/index.mjs +8 -0
- package/src/enrich/derive/folders/{aggregate-to-folders.js → aggregate-to-folders.mjs} +8 -8
- package/src/enrich/derive/folders/index.mjs +42 -0
- package/src/enrich/derive/folders/{utl.js → utl.mjs} +6 -14
- package/src/enrich/derive/metrics/{get-module-metrics.js → get-module-metrics.mjs} +9 -9
- package/src/enrich/derive/metrics/{index.js → index.mjs} +4 -4
- package/src/enrich/derive/{module-utl.js → module-utl.mjs} +6 -9
- package/src/enrich/derive/orphan/{index.js → index.mjs} +3 -3
- package/src/enrich/derive/orphan/{is-orphan.js → is-orphan.mjs} +3 -3
- package/src/enrich/derive/{reachable.js → reachable.mjs} +7 -8
- package/src/enrich/{enrich-modules.js → enrich-modules.mjs} +13 -13
- package/src/enrich/{index.js → index.mjs} +8 -8
- package/src/enrich/{soften-known-violations.js → soften-known-violations.mjs} +13 -13
- package/src/enrich/summarize/{add-rule-set-used.js → add-rule-set-used.mjs} +3 -3
- package/src/enrich/summarize/{get-stats.js → get-stats.mjs} +3 -9
- package/src/enrich/summarize/{index.js → index.mjs} +13 -13
- package/src/enrich/summarize/{is-same-violation.js → is-same-violation.mjs} +2 -2
- package/src/enrich/summarize/{summarize-folders.js → summarize-folders.mjs} +4 -4
- package/src/enrich/summarize/{summarize-modules.js → summarize-modules.mjs} +9 -9
- package/src/enrich/summarize/{summarize-options.js → summarize-options.mjs} +3 -3
- package/src/extract/ast-extractors/{estree-helpers.js → estree-helpers.mjs} +1 -1
- package/src/extract/ast-extractors/{extract-amd-deps.js → extract-amd-deps.mjs} +7 -7
- package/src/extract/ast-extractors/{extract-cjs-deps.js → extract-cjs-deps.mjs} +6 -6
- package/src/extract/ast-extractors/{extract-es6-deps.js → extract-es6-deps.mjs} +8 -8
- package/src/extract/ast-extractors/{extract-swc-deps.js → extract-swc-deps.mjs} +3 -7
- package/src/extract/ast-extractors/{extract-typescript-deps.js → extract-typescript-deps.mjs} +11 -8
- package/src/extract/ast-extractors/swc-dependency-visitor.mjs +253 -0
- package/src/extract/clear-caches.mjs +17 -0
- package/src/extract/{gather-initial-sources.js → gather-initial-sources.mjs} +23 -28
- package/src/extract/{get-dependencies.js → get-dependencies.mjs} +78 -73
- package/src/extract/helpers.mjs +76 -0
- package/src/extract/{index.js → index.mjs} +20 -24
- package/src/extract/parse/{to-javascript-ast.js → to-javascript-ast.mjs} +26 -27
- package/src/extract/parse/{to-swc-ast.js → to-swc-ast.mjs} +10 -9
- package/src/extract/parse/{to-typescript-ast.js → to-typescript-ast.mjs} +16 -13
- package/src/extract/resolve/{determine-dependency-types.js → determine-dependency-types.mjs} +24 -25
- package/src/extract/resolve/{external-module-helpers.js → external-module-helpers.mjs} +18 -21
- package/src/extract/resolve/{get-manifest/index.js → get-manifest.mjs} +19 -18
- package/src/extract/resolve/{index.js → index.mjs} +29 -30
- package/src/extract/resolve/{get-manifest/merge-manifests.js → merge-manifests.mjs} +4 -4
- package/src/extract/resolve/{module-classifiers.js → module-classifiers.mjs} +12 -19
- package/src/extract/resolve/{resolve-amd.js → resolve-amd.mjs} +11 -14
- package/src/extract/resolve/{resolve-cjs.js → resolve-cjs.mjs} +8 -8
- package/src/extract/resolve/resolve-helpers.mjs +30 -0
- package/src/extract/resolve/{resolve.js → resolve.mjs} +6 -7
- package/src/extract/transpile/{babel-wrap.js → babel-wrap.mjs} +4 -4
- package/src/extract/transpile/{coffeescript-wrap.js → coffeescript-wrap.mjs} +10 -10
- package/src/extract/transpile/{index.js → index.mjs} +5 -5
- package/src/extract/transpile/{javascript-wrap.js → javascript-wrap.mjs} +1 -1
- package/src/extract/transpile/livescript-wrap.mjs +15 -0
- package/src/extract/transpile/{meta.js → meta.mjs} +35 -31
- package/src/extract/transpile/{svelte-preprocess.js → svelte-preprocess.mjs} +2 -2
- package/src/extract/transpile/svelte-wrap.mjs +26 -0
- package/src/extract/transpile/{typescript-wrap.js → typescript-wrap.mjs} +8 -5
- package/src/extract/transpile/{vue-template-wrap.js → vue-template-wrap.cjs} +15 -18
- package/src/graph-utl/{add-focus.js → add-focus.mjs} +8 -7
- package/src/graph-utl/{compare.js → compare.mjs} +5 -5
- package/src/graph-utl/{consolidate-module-dependencies.js → consolidate-module-dependencies.mjs} +6 -6
- package/src/graph-utl/{consolidate-modules.js → consolidate-modules.mjs} +6 -6
- package/src/graph-utl/{consolidate-to-folder.js → consolidate-to-folder.mjs} +7 -7
- package/src/graph-utl/{consolidate-to-pattern.js → consolidate-to-pattern.mjs} +4 -4
- package/src/graph-utl/{filter-bank.js → filter-bank.mjs} +17 -25
- package/src/graph-utl/{indexed-module-graph.js → indexed-module-graph.mjs} +2 -2
- package/src/graph-utl/match-facade.mjs +11 -0
- package/src/graph-utl/{rule-set.js → rule-set.mjs} +7 -13
- package/src/graph-utl/{strip-self-transitions.js → strip-self-transitions.mjs} +2 -2
- package/src/main/files-and-dirs/{normalize.js → normalize.mjs} +6 -9
- package/src/main/{utl/normalize-re-properties.js → helpers.mjs} +7 -11
- package/src/main/index.d.ts +1 -0
- package/src/main/{index.js → index.mjs} +44 -44
- package/src/main/options/{defaults.js → defaults.mjs} +1 -1
- package/src/main/options/{normalize.js → normalize.mjs} +23 -32
- package/src/main/options/{validate.js → validate.mjs} +8 -14
- package/src/main/{report-wrap.js → report-wrap.mjs} +20 -22
- package/src/main/resolve-options/{normalize.js → normalize.mjs} +28 -27
- package/src/main/rule-set/{normalize.js → normalize.mjs} +11 -11
- package/src/main/rule-set/{validate.js → validate.mjs} +10 -10
- package/src/meta.js +2 -2
- package/src/report/anon/{anonymize-path-element.js → anonymize-path-element.mjs} +5 -7
- package/src/report/anon/{anonymize-path.js → anonymize-path.mjs} +4 -6
- package/src/report/anon/{index.js → index.mjs} +16 -20
- package/src/report/anon/{random-string.js → random-string.mjs} +4 -3
- package/src/report/{baseline.js → baseline.mjs} +4 -4
- package/src/report/{csv.js → csv.mjs} +5 -5
- package/src/report/dot/{default-theme.js → default-theme.mjs} +1 -1
- package/src/report/dot/{index.js → index.mjs} +14 -14
- package/src/report/dot/{module-utl.js → module-utl.mjs} +22 -22
- package/src/report/dot/prepare-custom-level.mjs +23 -0
- package/src/report/dot/prepare-flat-level.mjs +11 -0
- package/src/report/dot/prepare-folder-level.mjs +14 -0
- package/src/report/dot/{theming.js → theming.mjs} +5 -5
- package/src/report/error-html/{index.js → index.mjs} +7 -8
- package/src/report/error-html/{utl.js → utl.mjs} +8 -7
- package/src/report/error-long.mjs +5 -0
- package/src/report/{error.js → error.mjs} +17 -16
- package/src/report/html/{index.js → index.mjs} +7 -8
- package/src/report/{identity.js → identity.mjs} +3 -3
- package/src/report/index.mjs +75 -0
- package/src/report/{json.js → json.mjs} +3 -3
- package/src/report/{markdown.js → markdown.mjs} +18 -18
- package/src/report/{mermaid.js → mermaid.mjs} +7 -7
- package/src/report/{metrics.js → metrics.mjs} +11 -11
- package/src/report/{plugins.js → plugins.mjs} +12 -17
- package/src/report/{teamcity.js → teamcity.mjs} +17 -18
- package/src/report/{text.js → text.mjs} +6 -6
- package/src/report/utl/{dependency-to-incidence-transformer.js → dependency-to-incidence-transformer.mjs} +2 -2
- package/src/report/utl/{index.js → index.mjs} +4 -5
- package/src/schema/baseline-violations.schema.mjs +1 -0
- package/src/schema/configuration.schema.mjs +1 -0
- package/src/schema/cruise-result.schema.mjs +1 -0
- package/src/utl/{array-util.js → array-util.mjs} +1 -5
- package/src/utl/{bus-log-levels.js → bus-log-levels.mjs} +1 -1
- package/src/utl/bus.mjs +5 -0
- package/src/utl/{find-all-files.js → find-all-files.mjs} +7 -7
- package/src/utl/{get-extension.js → get-extension.mjs} +4 -4
- package/src/utl/{path-to-posix.js → path-to-posix.mjs} +3 -3
- package/src/utl/{regex-util.js → regex-util.mjs} +4 -4
- package/src/utl/{wrap-and-indent.js → wrap-and-indent.mjs} +5 -4
- package/src/validate/index.d.ts +4 -1
- package/src/validate/{index.js → index.mjs} +22 -14
- package/src/validate/{match-dependency-rule.js → match-dependency-rule.mjs} +6 -6
- package/src/validate/{match-folder-dependency-rule.js → match-folder-dependency-rule.mjs} +6 -9
- package/src/validate/{match-module-rule.js → match-module-rule.mjs} +26 -29
- package/src/validate/{matchers.js → matchers.mjs} +4 -4
- package/src/validate/{rule-classifiers.js → rule-classifiers.mjs} +5 -5
- package/src/validate/{violates-required-rule.js → violates-required-rule.mjs} +6 -6
- package/types/dependency-cruiser.d.ts +3 -29
- package/bin/wrap-stream-in-html.js +0 -5
- package/src/cli/defaults.js +0 -17
- package/src/cli/format.js +0 -26
- package/src/cli/init-config/utl.js +0 -6
- package/src/cli/utl/validate-file-existence.js +0 -11
- package/src/config-utl/extract-depcruise-config/read-config.js +0 -12
- package/src/config-utl/make-absolute.js +0 -10
- package/src/enrich/derive/dependents/index.js +0 -10
- package/src/enrich/derive/folders/index.js +0 -45
- package/src/extract/ast-extractors/swc-dependency-visitor.js +0 -249
- package/src/extract/clear-caches.js +0 -17
- package/src/extract/resolve/resolve-helpers.js +0 -35
- package/src/extract/transpile/livescript-wrap.js +0 -12
- package/src/extract/transpile/svelte-wrap.js +0 -26
- package/src/extract/utl/compare.js +0 -17
- package/src/extract/utl/detect-pre-compilation-ness.js +0 -12
- package/src/extract/utl/extract-module-attributes.js +0 -38
- package/src/extract/utl/strip-query-parameters.js +0 -15
- package/src/graph-utl/match-facade.js +0 -17
- package/src/report/dot/prepare-custom-level.js +0 -24
- package/src/report/dot/prepare-flat-level.js +0 -12
- package/src/report/dot/prepare-folder-level.js +0 -19
- package/src/report/error-long.js +0 -5
- package/src/report/index.js +0 -73
- package/src/schema/baseline-violations.schema.js +0 -2
- package/src/schema/configuration.schema.js +0 -2
- package/src/schema/cruise-result.schema.js +0 -2
- package/src/utl/bus.js +0 -5
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ cruiser with output type `dot` and run _GraphViz dot_[^3] on the result. In
|
|
|
56
56
|
a one liner:
|
|
57
57
|
|
|
58
58
|
```shell
|
|
59
|
-
npx depcruise src --include-only "^src" --
|
|
59
|
+
npx depcruise src --include-only "^src" --output-type dot | dot -T svg > dependency-graph.svg
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
- You can read more about what you can do with `--include-only` and other command line
|
|
@@ -77,7 +77,7 @@ npx depcruise src --include-only "^src" --config --output-type dot | dot -T svg
|
|
|
77
77
|
|
|
78
78
|
#### Declare some rules
|
|
79
79
|
|
|
80
|
-
When you ran
|
|
80
|
+
When you ran `depcruise --init` above, the command also added some rules
|
|
81
81
|
to `.dependency-cruiser.js` that make sense in most projects, like detecting
|
|
82
82
|
**circular dependencies**, dependencies **missing** in package.json, **orphans**,
|
|
83
83
|
and production code relying on dev- or optionalDependencies.
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
2
|
+
import { program } from "commander";
|
|
3
|
+
import validateNodeEnvironment from "../src/cli/validate-node-environment.mjs";
|
|
4
|
+
import meta from "../src/meta.js";
|
|
5
|
+
import cli from "../src/cli/index.mjs";
|
|
3
6
|
|
|
4
7
|
function formatError(pError) {
|
|
5
8
|
process.stderr.write(pError.message);
|
|
@@ -9,14 +12,6 @@ function formatError(pError) {
|
|
|
9
12
|
try {
|
|
10
13
|
validateNodeEnvironment();
|
|
11
14
|
|
|
12
|
-
// importing things only after the validateNodeEnv check so we can show an understandable
|
|
13
|
-
// error. Otherwise, on unsupported platforms we would show a stack trace, which is
|
|
14
|
-
// not so nice
|
|
15
|
-
/* eslint-disable node/global-require */
|
|
16
|
-
const program = require("commander");
|
|
17
|
-
const { version } = require("../src/meta.js");
|
|
18
|
-
const cli = require("../src/cli");
|
|
19
|
-
|
|
20
15
|
program
|
|
21
16
|
.description(
|
|
22
17
|
"Writes all known violations of rules in a .dependency-cruiser.js to a file.\n" +
|
|
@@ -29,12 +24,12 @@ try {
|
|
|
29
24
|
"file to write output to; - for stdout",
|
|
30
25
|
".dependency-cruiser-known-violations.json"
|
|
31
26
|
)
|
|
32
|
-
.version(version)
|
|
27
|
+
.version(meta.version)
|
|
33
28
|
.arguments("<files-or-directories>")
|
|
34
29
|
.parse(process.argv);
|
|
35
30
|
|
|
36
31
|
if (Boolean(program.args[0])) {
|
|
37
|
-
process.exitCode = cli(program.args, {
|
|
32
|
+
process.exitCode = await cli(program.args, {
|
|
38
33
|
...program.opts(),
|
|
39
34
|
cache: false,
|
|
40
35
|
outputType: "baseline",
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
import { program } from "commander";
|
|
4
|
+
import validateNodeEnvironment from "../src/cli/validate-node-environment.mjs";
|
|
5
|
+
import meta from "../src/meta.js";
|
|
6
|
+
import format from "../src/cli/format.mjs";
|
|
3
7
|
|
|
4
8
|
function formatError(pError) {
|
|
5
9
|
process.stderr.write(pError.message);
|
|
@@ -9,14 +13,6 @@ function formatError(pError) {
|
|
|
9
13
|
try {
|
|
10
14
|
validateNodeEnvironment();
|
|
11
15
|
|
|
12
|
-
// importing things only after the validateNodeEnv check so we can show an understandable
|
|
13
|
-
// error. Otherwise, on unsupported platforms we would show a stack trace, which is
|
|
14
|
-
// not so nice
|
|
15
|
-
/* eslint-disable node/global-require */
|
|
16
|
-
const program = require("commander");
|
|
17
|
-
const { version } = require("../src/meta.js");
|
|
18
|
-
const format = require("../src/cli/format.js");
|
|
19
|
-
|
|
20
16
|
program
|
|
21
17
|
.description(
|
|
22
18
|
"Format dependency-cruiser output json.\nDetails: https://github.com/sverweij/dependency-cruiser"
|
|
@@ -69,18 +65,15 @@ try {
|
|
|
69
65
|
"exit with a non-zero exit code when the input json contains error level " +
|
|
70
66
|
"dependency violations. Works for err, err-long and teamcity output types"
|
|
71
67
|
)
|
|
72
|
-
.version(version)
|
|
68
|
+
.version(meta.version)
|
|
73
69
|
.arguments("<dependency-cruiser-json>")
|
|
74
70
|
.parse(process.argv);
|
|
75
71
|
|
|
76
72
|
if (program.args[0]) {
|
|
77
|
-
format(program.args[0], program.opts())
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
})
|
|
83
|
-
.catch(formatError);
|
|
73
|
+
const lExitCode = await format(program.args[0], program.opts());
|
|
74
|
+
if (program.opts().exitCode) {
|
|
75
|
+
process.exitCode = lExitCode;
|
|
76
|
+
}
|
|
84
77
|
} else {
|
|
85
78
|
program.help();
|
|
86
79
|
}
|
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
2
|
+
import { EOL } from "node:os";
|
|
3
|
+
import { program } from "commander";
|
|
4
|
+
import validateNodeEnvironment from "../src/cli/validate-node-environment.mjs";
|
|
5
|
+
import meta from "../src/meta.js";
|
|
6
|
+
import cli from "../src/cli/index.mjs";
|
|
3
7
|
|
|
4
8
|
try {
|
|
5
9
|
validateNodeEnvironment();
|
|
6
10
|
|
|
7
|
-
// importing things only after the validateNodeEnv check so we can show an understandable
|
|
8
|
-
// error. Otherwise, on unsupported platforms we could show a stack trace, which is
|
|
9
|
-
// not so nice
|
|
10
|
-
/* eslint-disable node/global-require */
|
|
11
|
-
const { EOL } = require("os");
|
|
12
|
-
const program = require("commander");
|
|
13
|
-
const { version } = require("../src/meta.js");
|
|
14
|
-
const cli = require("../src/cli");
|
|
15
|
-
|
|
16
11
|
program
|
|
17
12
|
.description(
|
|
18
13
|
`Validate and visualize dependencies.${EOL}Details: https://github.com/sverweij/dependency-cruiser`
|
|
@@ -23,7 +18,8 @@ try {
|
|
|
23
18
|
)
|
|
24
19
|
.option(
|
|
25
20
|
"-c, --config [file]",
|
|
26
|
-
"read rules and options from [file] (e.g. .dependency-cruiser.js)"
|
|
21
|
+
"read rules and options from [file] (e.g. .dependency-cruiser.js)",
|
|
22
|
+
true
|
|
27
23
|
)
|
|
28
24
|
.addOption(
|
|
29
25
|
new program.Option(
|
|
@@ -168,12 +164,12 @@ try {
|
|
|
168
164
|
`${EOL}Other options:` +
|
|
169
165
|
`${EOL} see https://github.com/sverweij/dependency-cruiser/blob/master/doc/cli.md${EOL}`
|
|
170
166
|
)
|
|
171
|
-
.version(version)
|
|
167
|
+
.version(meta.version)
|
|
172
168
|
.arguments("[files-or-directories]")
|
|
173
169
|
.parse(process.argv);
|
|
174
170
|
|
|
175
171
|
if (Boolean(program.args[0]) || program.opts().info || program.opts().init) {
|
|
176
|
-
process.exitCode = cli(program.args, program.opts());
|
|
172
|
+
process.exitCode = await cli(program.args, program.opts());
|
|
177
173
|
} else {
|
|
178
174
|
program.help();
|
|
179
175
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dependency-cruiser",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "13.0.0-beta-1",
|
|
4
4
|
"description": "Validate and visualize dependencies. With your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"static analysis",
|
|
@@ -36,23 +36,38 @@
|
|
|
36
36
|
},
|
|
37
37
|
"homepage": "https://github.com/sverweij/dependency-cruiser",
|
|
38
38
|
"bin": {
|
|
39
|
-
"dependency-cruiser": "bin/dependency-cruise.
|
|
40
|
-
"dependency-cruise": "bin/dependency-cruise.
|
|
41
|
-
"depcruise": "bin/dependency-cruise.
|
|
42
|
-
"depcruise-baseline": "bin/depcruise-baseline.
|
|
43
|
-
"depcruise-fmt": "bin/depcruise-fmt.
|
|
44
|
-
"depcruise-wrap-stream-in-html": "bin/wrap-stream-in-html.
|
|
39
|
+
"dependency-cruiser": "bin/dependency-cruise.mjs",
|
|
40
|
+
"dependency-cruise": "bin/dependency-cruise.mjs",
|
|
41
|
+
"depcruise": "bin/dependency-cruise.mjs",
|
|
42
|
+
"depcruise-baseline": "bin/depcruise-baseline.mjs",
|
|
43
|
+
"depcruise-fmt": "bin/depcruise-fmt.mjs",
|
|
44
|
+
"depcruise-wrap-stream-in-html": "bin/wrap-stream-in-html.mjs"
|
|
45
45
|
},
|
|
46
|
-
"main": "src/main/index.
|
|
46
|
+
"main": "src/main/index.mjs",
|
|
47
47
|
"exports": {
|
|
48
|
-
".":
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"./config-utl/extract-
|
|
48
|
+
".": {
|
|
49
|
+
"import": "./src/main/index.mjs",
|
|
50
|
+
"require": "./dist/main/index.js"
|
|
51
|
+
},
|
|
52
|
+
"./config-utl/extract-babel-config": {
|
|
53
|
+
"import": "./src/config-utl/extract-babel-config.mjs",
|
|
54
|
+
"require": "./dist/config-utl/extract-babel-config.js"
|
|
55
|
+
},
|
|
56
|
+
"./config-utl/extract-depcruise-config": {
|
|
57
|
+
"import": "./src/config-utl/extract-depcruise-config/index.mjs",
|
|
58
|
+
"require": "./dist/config-utl/extract-depcruise-config/index.js"
|
|
59
|
+
},
|
|
60
|
+
"./config-utl/extract-ts-config": {
|
|
61
|
+
"import": "./src/config-utl/extract-ts-config.mjs",
|
|
62
|
+
"require": "./dist/config-utl/extract-ts-config.js"
|
|
63
|
+
},
|
|
64
|
+
"./config-utl/extract-webpack-resolve-config": {
|
|
65
|
+
"import": "./src/config-utl/extract-webpack-resolve-config.mjs",
|
|
66
|
+
"require": "./dist/config-utl/extract-webpack-resolve-config.js"
|
|
67
|
+
},
|
|
53
68
|
"./sample-reporter-plugin": "./configs/plugins/stats-reporter-plugin.js",
|
|
54
69
|
"./sample-3d-reporter-plugin": "./configs/plugins/3d-reporter-plugin.js",
|
|
55
|
-
"./mermaid-reporter-plugin": "./src/report/mermaid.
|
|
70
|
+
"./mermaid-reporter-plugin": "./src/report/mermaid.mjs"
|
|
56
71
|
},
|
|
57
72
|
"types": "types/dependency-cruiser.d.ts",
|
|
58
73
|
"files": [
|
|
@@ -72,31 +87,31 @@
|
|
|
72
87
|
"build": "make build",
|
|
73
88
|
"build:clean": "make clean",
|
|
74
89
|
"check": "npm-run-all build lint depcruise test:cover",
|
|
75
|
-
"check:full": "npm-run-all check test:glob
|
|
76
|
-
"depcruise": "node ./bin/dependency-cruise.
|
|
77
|
-
"depcruise:all": "node ./bin/dependency-cruise.
|
|
78
|
-
"depcruise:baseline": "node ./bin/depcruise-baseline.
|
|
79
|
-
"depcruise:explain": "node ./bin/dependency-cruise.
|
|
90
|
+
"check:full": "npm-run-all check test:glob",
|
|
91
|
+
"depcruise": "node ./bin/dependency-cruise.mjs src bin test configs types tools --ignore-known",
|
|
92
|
+
"depcruise:all": "node ./bin/dependency-cruise.mjs src bin test configs types tools",
|
|
93
|
+
"depcruise:baseline": "node ./bin/depcruise-baseline.mjs src bin test configs types tools",
|
|
94
|
+
"depcruise:explain": "node ./bin/dependency-cruise.mjs src bin test configs types tools --output-type err-long --progress none",
|
|
80
95
|
"depcruise:graph:doc": "npm-run-all depcruise:graph:doc:json --parallel depcruise:graph:doc:fmt-* depcruise:graph:doc:samples",
|
|
81
|
-
"depcruise:graph:doc:json": "node ./bin/dependency-cruise.
|
|
82
|
-
"depcruise:graph:doc:fmt-detail": "./bin/depcruise-fmt.
|
|
83
|
-
"depcruise:graph:doc:fmt-archi": "./bin/depcruise-fmt.
|
|
84
|
-
"depcruise:graph:doc:fmt-dir": "./bin/depcruise-fmt.
|
|
85
|
-
"depcruise:graph:doc:fmt-schema": "cd tools/schema && node ../../bin/dependency-cruise.
|
|
86
|
-
"depcruise:graph:doc:fmt-types": "cd types && node ../bin/dependency-cruise.
|
|
96
|
+
"depcruise:graph:doc:json": "node ./bin/dependency-cruise.mjs bin src test --output-type json --output-to tmp_graph_deps.json --progress",
|
|
97
|
+
"depcruise:graph:doc:fmt-detail": "./bin/depcruise-fmt.mjs -T dot -f - tmp_graph_deps.json | dot -T svg | tee doc/real-world-samples/dependency-cruiser-without-node_modules.svg | node bin/wrap-stream-in-html.mjs > docs/dependency-cruiser-dependency-graph.html",
|
|
98
|
+
"depcruise:graph:doc:fmt-archi": "./bin/depcruise-fmt.mjs -T archi -f - tmp_graph_deps.json | dot -T svg -Gordering=in -Grankdir=TD | tee doc/real-world-samples/dependency-cruiser-archi-graph.svg | node bin/wrap-stream-in-html.mjs > docs/dependency-cruiser-archi-graph.html",
|
|
99
|
+
"depcruise:graph:doc:fmt-dir": "./bin/depcruise-fmt.mjs -T ddot -f - tmp_graph_deps.json | dot -T svg -Grankdir=TD | tee doc/real-world-samples/dependency-cruiser-dir-graph.svg | node bin/wrap-stream-in-html.mjs > docs/dependency-cruiser-dir-graph.html",
|
|
100
|
+
"depcruise:graph:doc:fmt-schema": "cd tools/schema && node ../../bin/dependency-cruise.mjs . --output-type dot | dot -T svg | tee ../overview.svg | node ../../bin/wrap-stream-in-html.mjs > ../../docs/schema-overview.html && cd -",
|
|
101
|
+
"depcruise:graph:doc:fmt-types": "cd types && node ../bin/dependency-cruise.mjs . --output-type dot | dot -T svg > overview.svg && cd -",
|
|
87
102
|
"depcruise:graph:doc:samples": "sh tools/generate-samples.sh",
|
|
88
|
-
"depcruise:graph:mermaid": "node ./bin/dependency-cruise.
|
|
89
|
-
"depcruise:graph:mermaid:diff": "node ./bin/dependency-cruise.
|
|
90
|
-
"depcruise:graph:view": "node ./bin/dependency-cruise.
|
|
91
|
-
"depcruise:graph:view:diff": "node ./bin/dependency-cruise.
|
|
92
|
-
"depcruise:report": "node ./bin/dependency-cruise.
|
|
93
|
-
"depcruise:report:view": "node ./bin/dependency-cruise.
|
|
94
|
-
"depcruise:focus": "node ./bin/dependency-cruise.
|
|
95
|
-
"depcruise:reaches": "node ./bin/dependency-cruise.
|
|
103
|
+
"depcruise:graph:mermaid": "node ./bin/dependency-cruise.mjs bin src --include-only ^src/ --collapse 2 --output-type mermaid",
|
|
104
|
+
"depcruise:graph:mermaid:diff": "node ./bin/dependency-cruise.mjs bin src test types tools --config configs/.dependency-cruiser-unlimited.json --output-type mermaid --reaches \"$(watskeburt $SHA)\"",
|
|
105
|
+
"depcruise:graph:view": "node ./bin/dependency-cruise.mjs bin src --prefix vscode://file/$(pwd)/ --config configs/.dependency-cruiser-show-metrics-config.mjs --output-type dot --progress cli-feedback --highlight \"$(watskeburt v13)\" | dot -T svg | node ./bin/wrap-stream-in-html.mjs | browser",
|
|
106
|
+
"depcruise:graph:view:diff": "node ./bin/dependency-cruise.mjs bin src test --prefix vscode://file/$(pwd)/ --config configs/.dependency-cruiser-unlimited.json --output-type dot --progress cli-feedback --reaches \"$(watskeburt develop)\" | dot -T svg | node ./bin/wrap-stream-in-html.mjs | browser",
|
|
107
|
+
"depcruise:report": "node ./bin/dependency-cruise.mjs src bin test configs types --output-type err-html --config configs/.dependency-cruiser-show-metrics-config.mjs --output-to dependency-violations.html",
|
|
108
|
+
"depcruise:report:view": "node ./bin/dependency-cruise.mjs src bin test configs types --output-type err-html --config configs/.dependency-cruiser-show-metrics-config.mjs --output-to - | browser",
|
|
109
|
+
"depcruise:focus": "node ./bin/dependency-cruise.mjs src bin test configs types tools --progress --no-cache --output-type text --focus",
|
|
110
|
+
"depcruise:reaches": "node ./bin/dependency-cruise.mjs src bin test configs types tools --progress --no-cache --config configs/.dependency-cruiser-unlimited.json --output-type text --reaches",
|
|
96
111
|
"format": "prettier --loglevel warn --write \"src/**/*.js\" \"configs/**/*.js\" \"tools/**/*.mjs\" \"bin/*\" \"types/*.d.ts\" \"test/**/*.spec.{cjs,js}\" \"test/**/*.{spec,utl}.mjs\"",
|
|
97
112
|
"format:check": "prettier --loglevel warn --check \"src/**/*.js\" \"configs/**/*.js\" \"tools/**/*.mjs\" \"bin/*\" \"types/*.d.ts\" \"test/**/*.spec.{cjs,js}\" \"test/**/*.{spec,utl}.mjs\"",
|
|
98
113
|
"lint": "npm-run-all --parallel --aggregate-output lint:eslint format:check lint:types",
|
|
99
|
-
"lint:eslint": "eslint bin/dependency-cruise.
|
|
114
|
+
"lint:eslint": "eslint bin/dependency-cruise.mjs bin src test configs tools/**/*.mjs --cache --cache-location node_modules/.cache/eslint/",
|
|
100
115
|
"lint:eslint:fix": "eslint --fix bin src test configs tools/**/*.mjs --cache --cache-location node_modules/.cache/eslint/",
|
|
101
116
|
"lint:eslint:clear-caches": "rm -rf node_modules/.cache/eslint/",
|
|
102
117
|
"lint:fix": "npm-run-all lint:eslint:fix format lint:types:fix",
|
|
@@ -121,18 +136,9 @@
|
|
|
121
136
|
"test:u": "LANG=en_US.UTF-8 mocha --grep \"^\\[[U]\\]\"",
|
|
122
137
|
"test:e": "LANG=en_US.UTF-8 mocha --grep \"^\\[[E]\\]\"",
|
|
123
138
|
"test:cover": "LANG=en_US.UTF-8 c8 mocha",
|
|
124
|
-
"test:glob": "set -f && test \"`bin/dependency-cruise.
|
|
125
|
-
"test:
|
|
126
|
-
"test:
|
|
127
|
-
"test:yarn-pnp:copy": "shx cp -r test/integration/yarn-pnp.template test/integration/yarn-pnp.testing-ground",
|
|
128
|
-
"test:yarn-pnp:install": "cd test/integration/yarn-pnp.testing-ground && yarn && yarn add -D ../../../dependency-cruiser*.tgz",
|
|
129
|
-
"test:yarn-pnp:version": "cd test/integration/yarn-pnp.testing-ground && yarn dependency-cruise:version",
|
|
130
|
-
"test:yarn-pnp:run": "cd test/integration/yarn-pnp.testing-ground && yarn dependency-cruise:json",
|
|
131
|
-
"test:yarn-pnp:test": "cd test/integration/yarn-pnp.testing-ground && yarn test",
|
|
132
|
-
"test:yarn-pnp:cleanup": "shx rm -rf test/integration/yarn-pnp.testing-ground dependency-cruiser*.tgz",
|
|
133
|
-
"test:load": "hyperfine --warmup 3 --runs 30 \"bin/dependency-cruise.js src bin test configs types tools --ignore-known --validate --no-cache --no-progress\"",
|
|
134
|
-
"test:load:short": "hyperfine --warmup 1 --runs 5 \"bin/dependency-cruise.js src bin test configs types tools --ignore-known --validate --no-cache --no-progress\"",
|
|
135
|
-
"test:watch": "mocha --watch --watch-extensions=json --reporter=min test/\\*\\*/\\*.spec.js",
|
|
139
|
+
"test:glob": "set -f && test \"`bin/dependency-cruise.mjs --no-config test/extract/__mocks__/gather-globbing/packages/**/src/**/*.js | grep \"no dependency violations found\"`\" = \"✔ no dependency violations found (6 modules, 0 dependencies cruised)\"",
|
|
140
|
+
"test:load": "hyperfine --warmup 3 --runs 30 \"bin/dependency-cruise.mjs src bin test configs types tools --ignore-known --no-cache --no-progress\"",
|
|
141
|
+
"test:load:short": "hyperfine --warmup 1 --runs 5 \"bin/dependency-cruise.mjs src bin test configs types tools --ignore-known --no-cache --no-progress\"",
|
|
136
142
|
"update-dependencies": "npm-run-all upem:update upem:install build:clean build lint:eslint:clear-caches lint:fix depcruise test:cover",
|
|
137
143
|
"upem-outdated": "npm outdated --json --long | upem --dry-run",
|
|
138
144
|
"upem:install": "npm install",
|
|
@@ -146,16 +152,16 @@
|
|
|
146
152
|
"acorn-loose": "8.3.0",
|
|
147
153
|
"acorn-walk": "8.2.0",
|
|
148
154
|
"ajv": "8.12.0",
|
|
149
|
-
"chalk": "
|
|
155
|
+
"chalk": "5.2.0",
|
|
150
156
|
"commander": "10.0.0",
|
|
151
157
|
"enhanced-resolve": "5.12.0",
|
|
152
|
-
"figures": "
|
|
158
|
+
"figures": "5.0.0",
|
|
153
159
|
"get-stream": "^6.0.1",
|
|
154
|
-
"glob": "
|
|
160
|
+
"glob": "10.0.0",
|
|
155
161
|
"handlebars": "4.7.7",
|
|
156
162
|
"ignore": "5.2.4",
|
|
157
|
-
"indent-string": "
|
|
158
|
-
"interpret": "^3.1.
|
|
163
|
+
"indent-string": "5.0.0",
|
|
164
|
+
"interpret": "^3.1.1",
|
|
159
165
|
"is-installed-globally": "0.4.0",
|
|
160
166
|
"json5": "2.2.3",
|
|
161
167
|
"lodash": "4.17.21",
|
|
@@ -163,30 +169,30 @@
|
|
|
163
169
|
"rechoir": "^0.8.0",
|
|
164
170
|
"safe-regex": "2.1.1",
|
|
165
171
|
"semver": "^7.3.7",
|
|
166
|
-
"semver-try-require": "6.
|
|
172
|
+
"semver-try-require": "6.2.2",
|
|
167
173
|
"teamcity-service-messages": "0.1.14",
|
|
168
174
|
"tsconfig-paths-webpack-plugin": "4.0.1",
|
|
169
175
|
"watskeburt": "0.10.1",
|
|
170
|
-
"wrap-ansi": "
|
|
176
|
+
"wrap-ansi": "8.1.0"
|
|
171
177
|
},
|
|
172
178
|
"devDependencies": {
|
|
173
|
-
"@babel/core": "7.21.
|
|
179
|
+
"@babel/core": "7.21.4",
|
|
174
180
|
"@babel/plugin-transform-modules-commonjs": "7.21.2",
|
|
175
|
-
"@babel/preset-typescript": "7.21.
|
|
176
|
-
"@swc/core": "1.3.
|
|
177
|
-
"@types/lodash": "4.14.
|
|
178
|
-
"@types/node": "18.15.
|
|
179
|
-
"@types/prompts": "2.4.
|
|
180
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
181
|
-
"@typescript-eslint/parser": "5.
|
|
181
|
+
"@babel/preset-typescript": "7.21.4",
|
|
182
|
+
"@swc/core": "1.3.49",
|
|
183
|
+
"@types/lodash": "4.14.192",
|
|
184
|
+
"@types/node": "18.15.11",
|
|
185
|
+
"@types/prompts": "2.4.4",
|
|
186
|
+
"@typescript-eslint/eslint-plugin": "5.57.1",
|
|
187
|
+
"@typescript-eslint/parser": "5.57.1",
|
|
182
188
|
"@vue/compiler-sfc": "3.2.47",
|
|
183
189
|
"c8": "7.13.0",
|
|
184
190
|
"chai": "4.3.7",
|
|
185
191
|
"chai-json-schema": "1.5.1",
|
|
186
192
|
"coffeescript": "2.7.0",
|
|
187
|
-
"eslint": "8.
|
|
193
|
+
"eslint": "8.38.0",
|
|
188
194
|
"eslint-config-moving-meadow": "4.0.2",
|
|
189
|
-
"eslint-config-prettier": "8.
|
|
195
|
+
"eslint-config-prettier": "8.8.0",
|
|
190
196
|
"eslint-plugin-budapestian": "5.0.1",
|
|
191
197
|
"eslint-plugin-eslint-comments": "3.2.0",
|
|
192
198
|
"eslint-plugin-import": "2.27.5",
|
|
@@ -196,66 +202,36 @@
|
|
|
196
202
|
"eslint-plugin-unicorn": "^46.0.0",
|
|
197
203
|
"husky": "8.0.3",
|
|
198
204
|
"intercept-stdout": "0.1.2",
|
|
199
|
-
"lint-staged": "13.2.
|
|
205
|
+
"lint-staged": "13.2.1",
|
|
200
206
|
"mocha": "10.2.0",
|
|
201
|
-
"normalize-newline": "
|
|
207
|
+
"normalize-newline": "4.1.0",
|
|
202
208
|
"npm-run-all": "4.1.5",
|
|
203
|
-
"prettier": "2.8.
|
|
209
|
+
"prettier": "2.8.7",
|
|
204
210
|
"proxyquire": "2.1.3",
|
|
205
211
|
"shx": "0.3.4",
|
|
206
|
-
"svelte": "3.
|
|
212
|
+
"svelte": "3.58.0",
|
|
207
213
|
"symlink-dir": "5.1.1",
|
|
208
|
-
"typescript": "5.0.
|
|
214
|
+
"typescript": "5.0.4",
|
|
209
215
|
"upem": "7.3.2",
|
|
210
216
|
"vue-template-compiler": "2.7.14",
|
|
211
217
|
"yarn": "1.22.19"
|
|
212
218
|
},
|
|
213
219
|
"upem": {
|
|
214
220
|
"policies": [
|
|
215
|
-
{
|
|
216
|
-
"package": "chalk",
|
|
217
|
-
"policy": "wanted",
|
|
218
|
-
"because": "version 5 only exports esm - and we use cjs and don't transpile"
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
"package": "figures",
|
|
222
|
-
"policy": "wanted",
|
|
223
|
-
"because": "version 4 only exports esm - and we use cjs and don't transpile"
|
|
224
|
-
},
|
|
225
|
-
{
|
|
226
|
-
"package": "glob",
|
|
227
|
-
"policy": "pin",
|
|
228
|
-
"because": "from version 7.2.1 behavior on windows changes - in a potentially breaking fashion. Wait with upgrading until we're majoring or from when there's a vuln in 7.2.0"
|
|
229
|
-
},
|
|
230
|
-
{
|
|
231
|
-
"package": "indent-string",
|
|
232
|
-
"policy": "wanted",
|
|
233
|
-
"because": "version 5 only exports esm - and we use cjs and don't transpile"
|
|
234
|
-
},
|
|
235
221
|
{
|
|
236
222
|
"package": "interpret",
|
|
237
223
|
"policy": "wanted",
|
|
238
|
-
"because": "we want to keep interpret ~similar to what webpack-cli uses (which is ^3.1.
|
|
239
|
-
},
|
|
240
|
-
{
|
|
241
|
-
"package": "normalize-newline",
|
|
242
|
-
"policy": "wanted",
|
|
243
|
-
"because": "version 4 only exports esm - and we use cjs and don't transpile (this only used in unit tests - but one of'em is a cjs one ...)"
|
|
224
|
+
"because": "we want to keep interpret ~similar to what webpack-cli uses (which is ^3.1.1 since 2022-11-15). See https://github.com/webpack/webpack-cli/blame/master/packages/webpack-cli/package.json"
|
|
244
225
|
},
|
|
245
226
|
{
|
|
246
227
|
"package": "rechoir",
|
|
247
228
|
"policy": "wanted",
|
|
248
|
-
"because": "we want to keep rechoir ~similar to what webpack-cli uses (which is ^0.8.0 since 2022-11-15)
|
|
249
|
-
},
|
|
250
|
-
{
|
|
251
|
-
"package": "wrap-ansi",
|
|
252
|
-
"policy": "wanted",
|
|
253
|
-
"because": "version 8 only exports esm - and we use cjs and don't transpile"
|
|
229
|
+
"because": "we want to keep rechoir ~similar to what webpack-cli uses (which is ^0.8.0 since 2022-11-15). See https://github.com/webpack/webpack-cli/blame/master/packages/webpack-cli/package.json"
|
|
254
230
|
}
|
|
255
231
|
]
|
|
256
232
|
},
|
|
257
233
|
"engines": {
|
|
258
|
-
"node": "^14
|
|
234
|
+
"node": "^16.14||>=18"
|
|
259
235
|
},
|
|
260
236
|
"supportedTranspilers": {
|
|
261
237
|
"babel": ">=7.0.0 <8.0.0",
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { readFileSync, mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { scannableExtensions } from "../extract/transpile/meta.mjs";
|
|
4
|
+
import { optionsAreCompatible } from "./options-compatible.mjs";
|
|
5
|
+
import MetadataStrategy from "./metadata-strategy.mjs";
|
|
6
|
+
import ContentStrategy from "./content-strategy.mjs";
|
|
7
7
|
|
|
8
8
|
const CACHE_FILE_NAME = "cache.json";
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
export default class Cache {
|
|
11
11
|
/**
|
|
12
|
-
* @param {import("../../types/cache-options").cacheStrategyType=} pCacheStrategy
|
|
12
|
+
* @param {import("../../types/cache-options.js").cacheStrategyType=} pCacheStrategy
|
|
13
13
|
*/
|
|
14
14
|
constructor(pCacheStrategy) {
|
|
15
15
|
this.revisionData = null;
|
|
@@ -20,9 +20,9 @@ module.exports = class Cache {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* @param {import("../../types/strict-options").IStrictCruiseOptions} pCruiseOptions
|
|
24
|
-
* @param {import("
|
|
25
|
-
* @param {import("
|
|
23
|
+
* @param {import("../../types/strict-options.js").IStrictCruiseOptions} pCruiseOptions
|
|
24
|
+
* @param {import("../../types/dependency-cruiser.js").ICruiseResult} pCachedCruiseResult
|
|
25
|
+
* @param {import("../../types/dependency-cruiser.js").IRevisionData=} pRevisionData
|
|
26
26
|
* @returns {boolean}
|
|
27
27
|
*/
|
|
28
28
|
canServeFromCache(pCruiseOptions, pCachedCruiseResult, pRevisionData) {
|
|
@@ -34,9 +34,7 @@ module.exports = class Cache {
|
|
|
34
34
|
pCruiseOptions,
|
|
35
35
|
{
|
|
36
36
|
extensions: new Set(
|
|
37
|
-
|
|
38
|
-
pCruiseOptions.extraExtensionsToScan
|
|
39
|
-
)
|
|
37
|
+
scannableExtensions.concat(pCruiseOptions.extraExtensionsToScan)
|
|
40
38
|
),
|
|
41
39
|
}
|
|
42
40
|
);
|
|
@@ -54,7 +52,7 @@ module.exports = class Cache {
|
|
|
54
52
|
|
|
55
53
|
/**
|
|
56
54
|
* @param {string} pCacheFolder
|
|
57
|
-
* @returns {import("
|
|
55
|
+
* @returns {import("../../types/dependency-cruiser.js").ICruiseResult}
|
|
58
56
|
*/
|
|
59
57
|
read(pCacheFolder) {
|
|
60
58
|
try {
|
|
@@ -68,8 +66,8 @@ module.exports = class Cache {
|
|
|
68
66
|
|
|
69
67
|
/**
|
|
70
68
|
* @param {string} pCacheFolder
|
|
71
|
-
* @param {import("
|
|
72
|
-
* @param {import("
|
|
69
|
+
* @param {import("../../types/dependency-cruiser.js").ICruiseResult} pCruiseResult
|
|
70
|
+
* @param {import("../../types/dependency-cruiser.js").IRevisionData=} pRevisionData
|
|
73
71
|
*/
|
|
74
72
|
write(pCacheFolder, pCruiseResult, pRevisionData) {
|
|
75
73
|
const lRevisionData = pRevisionData ?? this.revisionData;
|
|
@@ -86,4 +84,4 @@ module.exports = class Cache {
|
|
|
86
84
|
"utf8"
|
|
87
85
|
);
|
|
88
86
|
}
|
|
89
|
-
}
|
|
87
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { isDeepStrictEqual } from "node:util";
|
|
2
|
+
import { join } from "node:path/posix";
|
|
3
|
+
import findContentChanges from "./find-content-changes.mjs";
|
|
4
|
+
import {
|
|
5
5
|
getFileHash,
|
|
6
6
|
isInterestingChangeType,
|
|
7
7
|
addCheckSumToChange,
|
|
8
8
|
moduleIsInterestingForDiff,
|
|
9
|
-
}
|
|
9
|
+
} from "./helpers.mjs";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* @param {string} pBaseDirectory
|
|
13
|
-
* @returns {(pModule: import("
|
|
13
|
+
* @returns {(pModule: import("../../types/dependency-cruiser.js").IModule) => import("../../types/dependency-cruiser.js").IModule}
|
|
14
14
|
*/
|
|
15
15
|
function addCheckSumToModule(pBaseDirectory) {
|
|
16
16
|
return (pModule) => {
|
|
@@ -25,9 +25,9 @@ function addCheckSumToModule(pBaseDirectory) {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
|
-
* @param {import("
|
|
29
|
-
* @param {import("
|
|
30
|
-
* @returns {import("
|
|
28
|
+
* @param {import("../../types/dependency-cruiser.js").IRevisionChange[]} pChanges
|
|
29
|
+
* @param {import("../../types/dependency-cruiser.js").IModule[]} pModules
|
|
30
|
+
* @returns {import("../../types/dependency-cruiser.js").IRevisionChange[]}
|
|
31
31
|
*/
|
|
32
32
|
function refreshChanges(pChanges, pModules) {
|
|
33
33
|
return pChanges.filter(
|
|
@@ -40,18 +40,18 @@ function refreshChanges(pChanges, pModules) {
|
|
|
40
40
|
);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
export default class ContentStrategy {
|
|
44
44
|
/**
|
|
45
45
|
* @param {string} pDirectory
|
|
46
|
-
* @param {import("
|
|
47
|
-
* @param {import("../../types/strict-options").IStrictCruiseOptions} pCruiseOptions
|
|
46
|
+
* @param {import("../../types/dependency-cruiser.js").ICruiseResult} pCachedCruiseResult
|
|
47
|
+
* @param {import("../../types/strict-options.js").IStrictCruiseOptions} pCruiseOptions
|
|
48
48
|
* @param {Object} pOptions
|
|
49
49
|
* @param {Set<string>} pOptions.extensions
|
|
50
50
|
* @param {Set<import("watskeburt").changeTypeType>} pOptions.interestingChangeTypes
|
|
51
51
|
* @param {string} pOptions.baseDir
|
|
52
52
|
* @param {(pString:string) => Array<import("watskeburt").IChange>} pOptions.diffListFn
|
|
53
53
|
* @param {(import("watskeburt").IChange) => import("../..").IRevisionChange} pOptions.checksumFn
|
|
54
|
-
* @returns {import("
|
|
54
|
+
* @returns {import("../../types/dependency-cruiser.js").IRevisionData}
|
|
55
55
|
*/
|
|
56
56
|
getRevisionData(pDirectory, pCachedCruiseResult, pCruiseOptions, pOptions) {
|
|
57
57
|
const lOptions = {
|
|
@@ -74,8 +74,8 @@ module.exports = class ContentStrategy {
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
|
-
* @param {import("
|
|
78
|
-
* @param {import("
|
|
77
|
+
* @param {import("../../types/dependency-cruiser.js").IRevisionData} pExistingRevisionData
|
|
78
|
+
* @param {import("../../types/dependency-cruiser.js").IRevisionData} pNewRevisionData
|
|
79
79
|
* @returns {boolean}
|
|
80
80
|
*/
|
|
81
81
|
revisionDataEqual(pExistingRevisionData, pNewRevisionData) {
|
|
@@ -91,9 +91,9 @@ module.exports = class ContentStrategy {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
/**
|
|
94
|
-
* @param {import("
|
|
95
|
-
* @param {import("
|
|
96
|
-
* @returns {import("
|
|
94
|
+
* @param {import("../../types/dependency-cruiser.js").ICruiseResult} pCruiseResult
|
|
95
|
+
* @param {import("../../types/dependency-cruiser.js").IRevisionData} pRevisionData
|
|
96
|
+
* @returns {import("../../types/dependency-cruiser.js").ICruiseResult}
|
|
97
97
|
*/
|
|
98
98
|
prepareRevisionDataForSaving(pCruiseResult, pRevisionData) {
|
|
99
99
|
const lModulesWithCheckSum = pCruiseResult.modules.map(
|
|
@@ -110,4 +110,4 @@ module.exports = class ContentStrategy {
|
|
|
110
110
|
revisionData: lRevisionData,
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
|
-
}
|
|
113
|
+
}
|