diff --git a/.eslintrc.json b/.eslintrc.json index 46c396738..f33545d46 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,6 +1,9 @@ { "root": true, - "extends": ["./configs/eslint-config.json", "eslint-config-prettier"], + "extends": ["moving-meadow"], + "rules": { + "security/detect-non-literal-fs-filename": "off" + }, "overrides": [ { "files": ["test/**/*.js"], diff --git a/Makefile b/Makefile index 89af8807c..e3db143af 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ GENERATED_SOURCES=src/cli/init-config/config.js.template.js \ src/report/csv/csv.template.js \ src/report/dot/dot.template.js \ src/report/html/html.template.js \ - src/report/err-html/err-html.template.js \ + src/report/error-html/error-html.template.js \ src/schema/configuration.schema.json \ src/schema/cruise-result.schema.json diff --git a/bin/depcruise-fmt.js b/bin/depcruise-fmt.js index 1e6f175b1..c76512905 100755 --- a/bin/depcruise-fmt.js +++ b/bin/depcruise-fmt.js @@ -1,5 +1,5 @@ #!/usr/bin/env node -const validateNodeEnv = require("../src/cli/validate-node-env"); +const validateNodeEnvironment = require("../src/cli/validate-node-environment"); function formatError(pError) { process.stderr.write(pError.message); @@ -7,7 +7,7 @@ function formatError(pError) { } try { - validateNodeEnv(); + validateNodeEnvironment(); // importing things only after the validateNodeEnv check so we can show an understandable // error. Otherwise, on unsupported platforms we would show a stack trace, which is diff --git a/bin/dependency-cruise.js b/bin/dependency-cruise.js index 879b2ad79..37488558c 100755 --- a/bin/dependency-cruise.js +++ b/bin/dependency-cruise.js @@ -1,8 +1,8 @@ #!/usr/bin/env node -const validateNodeEnv = require("../src/cli/validate-node-env"); +const validateNodeEnvironment = require("../src/cli/validate-node-environment"); try { - validateNodeEnv(); + validateNodeEnvironment(); // importing things only after the validateNodeEnv check so we can show an understandable // error. Otherwise, on unsupported platforms we would show a stack trace, which is diff --git a/configs/eslint-config.json b/configs/eslint-config.json deleted file mode 100644 index 1a51582b1..000000000 --- a/configs/eslint-config.json +++ /dev/null @@ -1,334 +0,0 @@ -{ - "plugins": ["security", "mocha", "node", "import", "unicorn"], - "parserOptions": { - "ecmaVersion": 2018, - "sourceType": "module", - "ecmaFeatures": { - "jsx": false - } - }, - "env": { - "node": true, - "es6": true - }, - "rules": { - // Possible errors - "no-cond-assign": "error", - "no-console": "error", - "no-constant-condition": "error", - "no-control-regex": "error", - "no-debugger": "error", - "no-dupe-args": "error", - "no-dupe-keys": "error", - "no-duplicate-case": "error", - "no-empty": "error", - "no-empty-character-class": "error", - "no-ex-assign": "error", - "no-extra-boolean-cast": "off", - "no-func-assign": "error", - "no-inner-declarations": "error", - "no-invalid-regexp": "error", - "no-irregular-whitespace": "error", - "no-negated-in-lhs": "error", - "no-obj-calls": "error", - "no-regex-spaces": "error", - "no-sparse-arrays": "error", - "no-unexpected-multiline": "error", - "no-unreachable": "error", - "no-unsafe-finally": "error", - "use-isnan": "error", - "valid-jsdoc": "error", - "valid-typeof": "error", - - // Best Practices - "accessor-pairs": "error", - "array-callback-return": "error", - "block-scoped-var": "error", - "complexity": ["warn", 6], - "consistent-return": "error", - "default-case": "error", - "dot-notation": "error", - "eqeqeq": "error", - "guard-for-in": "error", - "no-alert": "error", - "no-caller": "error", - "no-case-declarations": "error", - "no-div-regex": "error", - "no-else-return": "off", - "no-empty-function": "error", - "no-empty-pattern": "error", - "no-eq-null": "error", - "no-eval": "error", - "no-extend-native": "error", - "no-extra-bind": "error", - "no-extra-label": "error", - "no-fallthrough": "error", - "no-implicit-coercion": "error", - "no-implicit-globals": "error", - "no-implied-eval": "error", - "no-invalid-this": "error", - "no-iterator": "error", - "no-labels": "error", - "no-lone-blocks": "error", - "no-loop-func": "error", - "no-magic-numbers": ["error", { "ignore": [-1, 0, 1] }], - "no-multi-str": "error", - "no-native-reassign": "error", - "no-new": "error", - "no-new-func": "error", - "no-new-wrappers": "error", - "no-octal": "error", - "no-octal-escape": "error", - "no-param-reassign": "off", - "no-proto": "error", - "no-redeclare": "error", - "no-return-assign": "error", - "no-script-url": "error", - "no-self-assign": "error", - "no-self-compare": "error", - "no-sequences": "error", - "no-throw-literal": "error", - "no-unmodified-loop-condition": "error", - "no-unused-expressions": "error", - "no-unused-labels": "error", - "no-useless-call": "error", - "no-useless-concat": "error", - "no-useless-escape": "error", - "no-void": "error", - "no-warning-comments": ["off", { "terms": ["todo", "fixme"] }], - "no-with": "error", - "radix": "error", - "vars-on-top": "error", - "yoda": "off", - - // Strict mode - "strict": ["error", "never"], - - // Variables - "init-declarations": "error", - "no-catch-shadow": "error", - "no-delete-var": "error", - "no-label-var": "error", - "no-restricted-globals": "error", - "no-shadow": "error", - "no-shadow-restricted-names": "error", - "no-undef": "error", - "no-undef-init": "error", - "no-undefined": "error", - "no-unused-vars": ["error", { "vars": "all", "args": "after-used" }], - "no-use-before-define": "error", - - // Node.js and CommonJS - "callback-return": "error", - "global-require": "error", - "handle-callback-err": "error", - "no-mixed-requires": "error", - "no-new-require": "error", - "no-path-concat": "error", - "no-process-env": "error", - "no-process-exit": "error", - "no-restricted-modules": "error", - "no-sync": "off", - - // Stylistic Issues - "camelcase": "off", - "consistent-this": "error", - "func-names": "error", - "func-style": ["error", "declaration", { "allowArrowFunctions": true }], - "id-blacklist": "off", - "id-length": "off", - "id-match": "off", - "max-depth": ["error", 3], - "max-len": ["error", 120], - "max-nested-callbacks": ["error", 4], - "max-params": ["error", 4], - "max-statements": ["error", 21], - "max-statements-per-line": ["error", { "max": 1 }], - "new-cap": "error", - "newline-after-var": "error", - "newline-before-return": "off", - "no-array-constructor": "error", - "no-bitwise": "error", - "no-continue": "error", - "no-inline-comments": "error", - "no-lonely-if": "error", - "no-negated-condition": "error", - "no-nested-ternary": "error", - "no-new-object": "error", - "no-plusplus": "error", - "no-resctricted-syntax": "off", - "no-ternary": "off", - "no-underscore-dangle": "off", - "no-unneeded-ternary": "error", - "one-var": ["error", "never"], - "operator-assignment": "error", - "quotes": "off", - "require-jsdoc": "off", - "sort-vars": "off", - "spaced-comment": "error", - - // ECMAScript 6 - "constructor-super": "error", - "no-class-assign": "error", - "no-confusing-arrow": "off", - "no-const-assign": "error", - "no-dupe-class-members": "error", - "no-duplicate-imports": "error", - "no-new-symbol": "error", - "no-restricted-imports": "error", - "no-this-before-super": "error", - "no-useless-computed-key": "error", - "no-useless-constructor": "error", - "no-var": "error", - "object-shorthand": "error", - "prefer-const": "off", - "prefer-reflect": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - "prefer-template": "error", - "require-yield": "error", - "sort-imports": "error", - - // security - "security/detect-unsafe-regex": "error", - "security/detect-buffer-noassert": "error", - "security/detect-child-process": "error", - "security/detect-disable-mustache-escape": "error", - "security/detect-eval-with-expression": "error", - "security/detect-no-csrf-before-method-override": "error", - "security/detect-non-literal-fs-filename": "off", // disabled because the main goal of this package is to write to files anyway - "security/detect-non-literal-regexp": "error", - "security/detect-non-literal-require": "error", - "security/detect-object-injection": "error", - "security/detect-possible-timing-attacks": "error", // not doing anything which would need this kind of secrecy - "security/detect-pseudoRandomBytes": "error", - - // mocha - "mocha/handle-done-callback": "error", // - enforces handling of callbacks for async tests - "mocha/max-top-level-suites": ["warn", { "limit": 10 }], // limit the number of top-level suites in a single file - "mocha/no-exclusive-tests": "error", // disallow exclusive mocha tests - "mocha/no-global-tests": "error", // disallow global tests - "mocha/no-hooks": "off", // disallow hooks - "mocha/no-hooks-for-single-case": "warn", // disallow hooks for a single test or test suite - "mocha/no-identical-title": "warn", // disallow identical titles - "mocha/no-mocha-arrows": "off", // disallow arrow functions as arguments to mocha globals - "mocha/no-nested-tests": "error", // disallow tests to be nested within other tests - "mocha/no-pending-tests": "warn", // disallow pending/unimplemented mocha tests - "mocha/no-return-and-callback": "error", // disallow returning in a test or hook function that uses a callback - "mocha/no-sibling-hooks": "error", // disallow duplicate uses of a hook at the same level inside a describe - "mocha/no-skipped-tests": "error", // disallow skipped mocha tests (fixable) - "mocha/no-synchronous-tests": "off", // disallow synchronous tests - "mocha/no-top-level-hooks": "error", // disallow top-level hooks - "mocha/valid-suite-description": "error", // match suite descriptions against a pre-configured regular expression - "mocha/valid-test-description": "off", // match test descriptions against a pre-configured regular expression - "mocha/no-async-describe": "error", - - // node - "node/exports-style": ["error", "module.exports"], - "node/no-callback-literal": "error", - "node/no-exports-assign": "off", - "node/file-extension-in-import": ["error", "always"], - "node/no-deprecated-api": "error", - "node/no-extraneous-require": "error", - "node/no-missing-require": "error", - "node/no-unpublished-bin": "error", - "node/no-unpublished-require": "error", - "node/no-unsupported-features/es-syntax": "error", - "node/no-unsupported-features/es-builtins": "error", - "node/no-unsupported-features/node-builtins": "error", - "node/process-exit-as-throw": "error", - "node/shebang": "error", - - // imports - "import/no-unresolved": "error", - "import/named": "error", - "import/default": "error", - "import/namespace": "error", - "import/no-stricted-paths": "off", - "import/no-absolute-path": "error", - "import/no-dynamic-require": "error", - "import/no-internal-modules": "off", - "import/no-webpack-loader-syntax": "error", - "import/no-self-import": "error", - "import/no-cycle": "error", - "import/no-useless-path-segments": "error", - "import/no-relative-parent-imports": "error", - "import/no-unused-modules": "error", - - "import/export": "error", - "import/no-named-as-default": "error", - "import/no-named-as-default-member": "error", - "import/no-deprecated": "error", - "import/no-extraneous-dependencies": "error", - "import/no-mutable-exports": "error", - - "import/unambiguous": "off", - "import/no-commonjs": "off", - "import/no-amd": "error", - "import/no-nodejs-modules": "off", - - "import/first": "error", - "import/exports-last": "error", - "import/no-duplicates": "error", - "import/no-namespace": "error", - "import/extensions": "off", - "import/order": "error", - "import/newline-after-import": "error", - "import/prefer-default-export": "error", - "import/max-dependencies": ["error", { "max": 20 }], - "import/no-unassigned-import": "error", - "import/no-named-default": "error", - "import/no-named-export": "error", - "import/no-anonymous-default-export": "error", - "import/group-exports": "off", - "dynamic-import-chunkname": "off", - - "unicorn/better-regex": "off", - "unicorn/catch-error-name": ["error", { "name": "pError" }], - "unicorn/consistent-function-scoping": "off", - "unicorn/custom-error-definition": "off", - "unicorn/error-message": "error", - "unicorn/escape-case": "error", - "unicorn/expiring-todo-comments": "error", - "unicorn/explicit-length-check": "error", - "unicorn/filename-case": ["error", { "case": "kebabCase" }], - "unicorn/import-index": "off", - "unicorn/new-for-builtins": "off", // conflicts with security/detect-non-literal-regexp, apparently - "unicorn/no-abusive-eslint-disable": "error", - "unicorn/no-array-instanceof": "error", - "unicorn/no-console-spaces": "error", - "unicorn/no-fn-reference-in-iterator": "off", - "unicorn/no-for-loop": "error", - "unicorn/no-hex-escape": "error", - "unicorn/no-keyword-prefix": "off", - "no-nested-ternary": "off", - "unicorn/no-nested-ternary": "error", - "unicorn/no-new-buffer": "error", - "unicorn/no-process-exit": "error", - "unicorn/no-unreadable-array-destructuring": "error", - "unicorn/no-unsafe-regex": "error", - "unicorn/no-unused-properties": "off", - "unicorn/no-zero-fractions": "error", - "unicorn/number-literal-case": "error", - "unicorn/prefer-add-event-listener": "error", - "unicorn/prefer-dataset": "error", - "unicorn/prefer-event-key": "error", - "unicorn/prefer-flat-map": "error", - "unicorn/prefer-includes": "error", - "unicorn/prefer-modern-dom-apis": "error", - "unicorn/prefer-negative-index": "error", - "unicorn/prefer-node-append": "error", - "unicorn/prefer-node-remove": "error", - "unicorn/prefer-query-selector": "error", - "unicorn/prefer-reflect-apply": "error", - "unicorn/prefer-replace-all": "off", - "unicorn/prefer-spread": "error", - "unicorn/prefer-starts-ends-with": "error", - "unicorn/prefer-string-slice": "error", - "unicorn/prefer-text-content": "error", - "unicorn/prefer-trim-start-end": "error", - "unicorn/prefer-type-error": "off", - "unicorn/prevent-abbreviations": "off", - "unicorn/throw-new-error": "error" - } -} diff --git a/doc/assets/theming/bare.svg b/doc/assets/theming/bare.svg index ac477960d..ed9a136ac 100644 --- a/doc/assets/theming/bare.svg +++ b/doc/assets/theming/bare.svg @@ -19,11 +19,6 @@ main - -cluster_src/main/files-and-dirs - -files-and-dirs - cluster_src/main/options @@ -39,6 +34,11 @@ rule-set + +cluster_src/main/files-and-dirs + +files-and-dirs + src/main/files-and-dirs/normalize.js diff --git a/doc/real-world-samples/dependency-cruiser-dir-graph.svg b/doc/real-world-samples/dependency-cruiser-dir-graph.svg index 943ae81f7..0cb8c75e4 100644 --- a/doc/real-world-samples/dependency-cruiser-dir-graph.svg +++ b/doc/real-world-samples/dependency-cruiser-dir-graph.svg @@ -4,55 +4,55 @@ - + dependency-cruiser output - + cluster_src - -src + +src cluster_src/cli - -cli + +cli cluster_src/extract - -extract + +extract cluster_src/extract/derive - -derive + +derive cluster_src/extract/resolve - -resolve + +resolve cluster_src/main - -main + +main cluster_src/report - -report + +report bin - - - - -bin + + + + +bin @@ -60,450 +60,450 @@ bin->src/cli - - + + src/cli/tools - - - - -tools + + + + +tools bin->src/cli/tools - - + + src/cli->src/main - - + + src/cli/utl - - - - -utl + + + + +utl src/cli->src/cli/utl - - + + src/cli/compile-config - - - - -compile-config + + + + +compile-config src/cli->src/cli/compile-config - - + + src/cli/init-config - - - - -init-config + + + + +init-config src/cli->src/cli/init-config - - + + src/main/resolve-options - - - - -resolve-options + + + + +resolve-options src/main->src/main/resolve-options - - + + src/main->src/extract - - + + src/extract/transpile - - - - -transpile + + + + +transpile src/main->src/extract/transpile - - + + src/main->src/report - - + + src/schema - - - - -schema + + + + +schema src/main->src/schema - - + + src/main/files-and-dirs - - - - -files-and-dirs + + + + +files-and-dirs src/main->src/main/files-and-dirs - - + + src/main/options - - - - -options + + + + +options src/main->src/main/options - - + + src/main/rule-set - - - - -rule-set + + + + +rule-set src/main->src/main/rule-set - - + + src/cli/compile-config->src/extract/resolve - - + + -cli-to-main-only-warn +cli-to-main-only-warn src/cli/compile-config->src/main/resolve-options - - + + src/cli/init-config->src/cli - - + + src/extract/utl - - - - -utl + + + + +utl src/extract/resolve->src/extract/utl - - + + src/extract/resolve/read-package-deps - - - - -read-package-deps + + + + +read-package-deps src/extract/resolve->src/extract/resolve/read-package-deps - - + + src/main/resolve-options->src/extract/transpile - - + + src/extract->src/extract/resolve - - + + src/extract/derive/circular - - - - -circular + + + + +circular src/extract->src/extract/derive/circular - - + + src/extract/derive/orphan - - - - -orphan + + + + +orphan src/extract->src/extract/derive/orphan - - + + src/extract/derive/reachable - - - - -reachable + + + + +reachable src/extract->src/extract/derive/reachable - - + + src/extract->src/extract/utl - - + + src/validate - - - - -validate + + + + +validate src/extract->src/validate - - + + src/extract/parse - - - - -parse + + + + +parse src/extract->src/extract/parse - - + + src/extract->src/extract/resolve/read-package-deps - - + + src/extract->src/extract/transpile - - + + src/utl - - - - -utl + + + + +utl src/extract->src/utl - - + + src/extract/ast-extractors - - - - -ast-extractors + + + + +ast-extractors src/extract->src/extract/ast-extractors - - + + src/validate->src/utl - - + + src/extract/parse->src/extract/utl - - + + src/extract/parse->src/extract/transpile - - + + src/report->src/utl - - + + @@ -520,8 +520,8 @@ src/report->src/report/anon - - + + @@ -538,8 +538,8 @@ src/report->src/report/csv - - + + @@ -556,26 +556,26 @@ src/report->src/report/dot - - + + - + -src/report/err-html - - - - - -err-html +src/report/error-html + + + + + +error-html - + -src/report->src/report/err-html - - +src/report->src/report/error-html + + @@ -592,26 +592,26 @@ src/report->src/report/html - + src/main/options->src/report - - + + src/main/rule-set->src/schema - - + + src/main/rule-set->src/main/options - - + + diff --git a/doc/real-world-samples/dependency-cruiser-without-node_modules.svg b/doc/real-world-samples/dependency-cruiser-without-node_modules.svg index 0e445cd75..e89ef7625 100644 --- a/doc/real-world-samples/dependency-cruiser-without-node_modules.svg +++ b/doc/real-world-samples/dependency-cruiser-without-node_modules.svg @@ -4,11 +4,11 @@ - + dependency-cruiser output - + cluster_bin @@ -16,163 +16,163 @@ cluster_src - -src + +src cluster_src/main - -main + +main cluster_src/main/files-and-dirs - -files-and-dirs + +files-and-dirs cluster_src/main/options - -options + +options cluster_src/main/resolve-options - -resolve-options + +resolve-options cluster_src/main/rule-set - -rule-set + +rule-set cluster_src/report - -report + +report cluster_src/report/anon - -anon + +anon cluster_src/report/csv - -csv + +csv cluster_src/report/dot - -dot + +dot -cluster_src/report/err-html - -err-html +cluster_src/report/error-html + +error-html cluster_src/report/html - -html + +html cluster_src/report/utl - -utl + +utl - -cluster_src/cli - -cli + +cluster_src/schema + +schema - -cluster_src/cli/compile-config - -compile-config + +cluster_src/utl + +utl - -cluster_src/cli/init-config - -init-config + +cluster_src/validate + +validate + + +cluster_src/cli + +cli cluster_src/cli/tools - -tools + +tools cluster_src/cli/utl - -utl + +utl + + +cluster_src/cli/compile-config + +compile-config + + +cluster_src/cli/init-config + +init-config cluster_src/extract - -extract + +extract + + +cluster_src/extract/transpile + +transpile + + +cluster_src/extract/utl + +utl cluster_src/extract/ast-extractors - -ast-extractors + +ast-extractors cluster_src/extract/derive - -derive + +derive cluster_src/extract/derive/circular - -circular + +circular cluster_src/extract/derive/orphan - -orphan + +orphan cluster_src/extract/derive/reachable - -reachable + +reachable cluster_src/extract/parse - -parse + +parse cluster_src/extract/resolve - -resolve + +resolve cluster_src/extract/resolve/read-package-deps - -read-package-deps - - -cluster_src/extract/transpile - -transpile - - -cluster_src/extract/utl - -utl - - -cluster_src/schema - -schema - - -cluster_src/utl - -utl - - -cluster_src/validate - -validate + +read-package-deps @@ -187,91 +187,91 @@ src/cli/format.js - -format.js + +format.js bin/depcruise-fmt.js->src/cli/format.js - - + + - + -src/cli/validate-node-env.js - - -validate-node-env.js +src/cli/validate-node-environment.js + + +validate-node-environment.js - + -bin/depcruise-fmt.js->src/cli/validate-node-env.js - - +bin/depcruise-fmt.js->src/cli/validate-node-environment.js + + src/main/index.js - -index.js + +index.js src/cli/format.js->src/main/index.js - - + + src/cli/normalize-options.js - -normalize-options.js + +normalize-options.js src/cli/format.js->src/cli/normalize-options.js - - + + src/cli/utl/io.js - -io.js + +io.js src/cli/format.js->src/cli/utl/io.js - - + + src/cli/utl/validate-file-existence.js - -validate-file-existence.js + +validate-file-existence.js src/cli/format.js->src/cli/utl/validate-file-existence.js - - + + @@ -282,110 +282,110 @@ - + -bin/dependency-cruise.js->src/cli/validate-node-env.js - - +bin/dependency-cruise.js->src/cli/validate-node-environment.js + + src/cli/index.js - -index.js + +index.js bin/dependency-cruise.js->src/cli/index.js - - + + src/cli/format-meta-info.js - -format-meta-info.js + +format-meta-info.js src/cli/index.js->src/cli/format-meta-info.js - - + + src/cli/index.js->src/main/index.js - - + + src/cli/index.js->src/cli/normalize-options.js - - + + src/cli/index.js->src/cli/utl/io.js - - + + src/cli/index.js->src/cli/utl/validate-file-existence.js - - + + src/cli/get-resolve-config.js - -get-resolve-config.js + +get-resolve-config.js src/cli/index.js->src/cli/get-resolve-config.js - - + + src/cli/init-config/index.js - -index.js + +index.js src/cli/index.js->src/cli/init-config/index.js - - + + src/cli/parse-ts-config.js - -parse-ts-config.js + +parse-ts-config.js src/cli/index.js->src/cli/parse-ts-config.js - - + + @@ -400,23 +400,23 @@ src/cli/tools/wrap-stream-in-html.js - -wrap-stream-in-html.js + +wrap-stream-in-html.js bin/wrap-stream-in-html.js->src/cli/tools/wrap-stream-in-html.js - - + + src/cli/compile-config/index.js - -index.js + +index.js @@ -424,8 +424,8 @@ src/extract/resolve/resolve.js - -resolve.js + +resolve.js @@ -433,368 +433,368 @@ src/cli/compile-config/index.js->src/extract/resolve/resolve.js - - + + -cli-to-main-only-warn +cli-to-main-only-warn src/main/resolve-options/normalize.js - -normalize.js + +normalize.js src/cli/compile-config/index.js->src/main/resolve-options/normalize.js - - + + src/cli/compile-config/merge-configs.js - -merge-configs.js + +merge-configs.js src/cli/compile-config/index.js->src/cli/compile-config/merge-configs.js - - + + src/cli/compile-config/read-config.js - -read-config.js + +read-config.js src/cli/compile-config/index.js->src/cli/compile-config/read-config.js - - + + src/extract/utl/path-to-posix.js - -path-to-posix.js + +path-to-posix.js src/extract/resolve/resolve.js->src/extract/utl/path-to-posix.js - - + + - + -src/extract/utl/strip-query-params.js - - -strip-query-params.js +src/extract/utl/strip-query-parameters.js + + +strip-query-parameters.js - + -src/extract/resolve/resolve.js->src/extract/utl/strip-query-params.js - - +src/extract/resolve/resolve.js->src/extract/utl/strip-query-parameters.js + + src/extract/transpile/meta.js - -meta.js + +meta.js src/main/resolve-options/normalize.js->src/extract/transpile/meta.js - - + + src/cli/defaults.json - - -defaults.json + + +defaults.json src/cli/format-meta-info.js->src/main/index.js - - + + src/main/index.js->src/main/resolve-options/normalize.js - - + + src/main/index.js->src/extract/transpile/meta.js - - + + src/extract/index.js - -index.js + +index.js src/main/index.js->src/extract/index.js - - + + src/main/files-and-dirs/normalize.js - -normalize.js + +normalize.js src/main/index.js->src/main/files-and-dirs/normalize.js - - + + src/report/index.js - -index.js + +index.js src/main/index.js->src/report/index.js - - + + src/schema/cruise-result.schema.json - - -cruise-result.schema.json + + +cruise-result.schema.json src/main/index.js->src/schema/cruise-result.schema.json - - + + src/main/options/normalize.js - -normalize.js + +normalize.js src/main/index.js->src/main/options/normalize.js - - + + src/main/options/validate.js - -validate.js + +validate.js src/main/index.js->src/main/options/validate.js - - + + src/main/rule-set/normalize.js - -normalize.js + +normalize.js src/main/index.js->src/main/rule-set/normalize.js - - + + src/main/rule-set/validate.js - -validate.js + +validate.js src/main/index.js->src/main/rule-set/validate.js - - + + src/cli/normalize-options.js->src/cli/compile-config/index.js - - + + src/cli/normalize-options.js->src/cli/defaults.json - - + + src/cli/utl/make-absolute.js - -make-absolute.js + +make-absolute.js src/cli/get-resolve-config.js->src/cli/utl/make-absolute.js - - + + src/cli/init-config/index.js->src/cli/defaults.json - - + + src/cli/init-config/create-config-file.js - -create-config-file.js + +create-config-file.js src/cli/init-config/index.js->src/cli/init-config/create-config-file.js - - + + src/cli/init-config/helpers.js - -helpers.js + +helpers.js src/cli/init-config/index.js->src/cli/init-config/helpers.js - - + + src/cli/init-config/get-user-input.js - -get-user-input.js + +get-user-input.js src/cli/init-config/index.js->src/cli/init-config/get-user-input.js - - + + src/cli/init-config/config.js.template.js - -config.js.template.js + +config.js.template.js src/cli/init-config/create-config-file.js->src/cli/init-config/config.js.template.js - - + + src/cli/init-config/create-config-file.js->src/cli/init-config/helpers.js - - + + src/cli/init-config/get-user-input.js->src/cli/defaults.json - - + + src/cli/init-config/get-user-input.js->src/cli/init-config/helpers.js - - + + src/extract/add-validations.js - -add-validations.js + +add-validations.js @@ -802,53 +802,53 @@ src/validate/index.js - -index.js + +index.js src/extract/add-validations.js->src/validate/index.js - - + + src/validate/match-dependency-rule.js - -match-dependency-rule.js + +match-dependency-rule.js src/validate/index.js->src/validate/match-dependency-rule.js - - + + src/validate/match-module-rule.js - -match-module-rule.js + +match-module-rule.js src/validate/index.js->src/validate/match-module-rule.js - - + + src/extract/ast-extractors/estree-helpers.js - -estree-helpers.js + +estree-helpers.js @@ -856,59 +856,59 @@ src/extract/ast-extractors/extract-amd-deps.js - -extract-amd-deps.js + +extract-amd-deps.js src/extract/ast-extractors/extract-amd-deps.js->src/extract/ast-extractors/estree-helpers.js - - + + src/extract/ast-extractors/extract-cjs-deps.js - -extract-cjs-deps.js + +extract-cjs-deps.js src/extract/ast-extractors/extract-amd-deps.js->src/extract/ast-extractors/extract-cjs-deps.js - - + + src/extract/ast-extractors/extract-cjs-deps.js->src/extract/ast-extractors/estree-helpers.js - - + + src/extract/ast-extractors/extract-es6-deps.js - -extract-es6-deps.js + +extract-es6-deps.js src/extract/ast-extractors/extract-es6-deps.js->src/extract/ast-extractors/estree-helpers.js - - + + src/extract/ast-extractors/extract-typescript-deps.js - -extract-typescript-deps.js + +extract-typescript-deps.js @@ -916,236 +916,236 @@ src/extract/clear-caches.js - -clear-caches.js + +clear-caches.js src/extract/clear-caches.js->src/extract/resolve/resolve.js - - + + src/extract/derive/reachable/is-reachable.js - -is-reachable.js + +is-reachable.js src/extract/clear-caches.js->src/extract/derive/reachable/is-reachable.js - - + + src/extract/parse/to-javascript-ast.js - -to-javascript-ast.js + +to-javascript-ast.js src/extract/clear-caches.js->src/extract/parse/to-javascript-ast.js - - + + src/extract/parse/to-typescript-ast.js - -to-typescript-ast.js + +to-typescript-ast.js src/extract/clear-caches.js->src/extract/parse/to-typescript-ast.js - - + + src/extract/resolve/local-npm-helpers.js - -local-npm-helpers.js + +local-npm-helpers.js src/extract/clear-caches.js->src/extract/resolve/local-npm-helpers.js - - + + src/extract/resolve/read-package-deps/index.js - -index.js + +index.js src/extract/clear-caches.js->src/extract/resolve/read-package-deps/index.js - - + + src/extract/resolve/resolve-amd.js - -resolve-amd.js + +resolve-amd.js src/extract/clear-caches.js->src/extract/resolve/resolve-amd.js - - + + src/extract/transpile/index.js - -index.js + +index.js src/extract/parse/to-javascript-ast.js->src/extract/transpile/index.js - - + + src/extract/utl/get-extension.js - -get-extension.js + +get-extension.js src/extract/parse/to-javascript-ast.js->src/extract/utl/get-extension.js - - + + src/extract/resolve/local-npm-helpers.js->src/extract/resolve/resolve.js - - + + src/extract/resolve/is-relative-module-name.js - -is-relative-module-name.js + +is-relative-module-name.js src/extract/resolve/local-npm-helpers.js->src/extract/resolve/is-relative-module-name.js - - + + src/extract/resolve/read-package-deps/merge-packages.js - -merge-packages.js + +merge-packages.js src/extract/resolve/read-package-deps/index.js->src/extract/resolve/read-package-deps/merge-packages.js - - + + src/extract/resolve/resolve-amd.js->src/extract/resolve/read-package-deps/index.js - - + + src/extract/resolve/resolve-amd.js->src/extract/utl/path-to-posix.js - - + + src/extract/resolve/determine-dependency-types.js - -determine-dependency-types.js + +determine-dependency-types.js src/extract/resolve/resolve-amd.js->src/extract/resolve/determine-dependency-types.js - - + + src/extract/resolve/is-core.js - -is-core.js + +is-core.js src/extract/resolve/resolve-amd.js->src/extract/resolve/is-core.js - - + + src/extract/resolve/resolve-helpers.js - -resolve-helpers.js + +resolve-helpers.js src/extract/resolve/resolve-amd.js->src/extract/resolve/resolve-helpers.js - - + + src/extract/derive/circular/get-cycle.js - -get-cycle.js + +get-cycle.js @@ -1153,23 +1153,23 @@ src/extract/derive/circular/index.js - -index.js + +index.js src/extract/derive/circular/index.js->src/extract/derive/circular/get-cycle.js - - + + src/extract/derive/orphan/index.js - -index.js + +index.js @@ -1177,622 +1177,622 @@ src/extract/derive/orphan/is-orphan.js - -is-orphan.js + +is-orphan.js src/extract/derive/orphan/index.js->src/extract/derive/orphan/is-orphan.js - - + + src/extract/derive/reachable/index.js - -index.js + +index.js src/extract/derive/reachable/index.js->src/extract/derive/reachable/is-reachable.js - - + + src/extract/gather-initial-sources.js - -gather-initial-sources.js + +gather-initial-sources.js src/extract/gather-initial-sources.js->src/extract/transpile/meta.js - - + + src/extract/gather-initial-sources.js->src/extract/utl/path-to-posix.js - - + + src/extract/transpile/coffeescript-wrap.js - -coffeescript-wrap.js + +coffeescript-wrap.js src/extract/transpile/meta.js->src/extract/transpile/coffeescript-wrap.js - - + + src/extract/transpile/javascript-wrap.js - -javascript-wrap.js + +javascript-wrap.js src/extract/transpile/meta.js->src/extract/transpile/javascript-wrap.js - - + + src/extract/transpile/livescript-wrap.js - -livescript-wrap.js + +livescript-wrap.js src/extract/transpile/meta.js->src/extract/transpile/livescript-wrap.js - - + + src/extract/transpile/typescript-wrap.js - -typescript-wrap.js + +typescript-wrap.js src/extract/transpile/meta.js->src/extract/transpile/typescript-wrap.js - - + + src/extract/transpile/vue-template-wrap.js - -vue-template-wrap.js + +vue-template-wrap.js src/extract/transpile/meta.js->src/extract/transpile/vue-template-wrap.js - - + + src/extract/get-dependencies.js - -get-dependencies.js + +get-dependencies.js src/extract/get-dependencies.js->src/extract/ast-extractors/extract-amd-deps.js - - + + src/extract/get-dependencies.js->src/extract/ast-extractors/extract-cjs-deps.js - - + + src/extract/get-dependencies.js->src/extract/ast-extractors/extract-es6-deps.js - - + + src/extract/get-dependencies.js->src/extract/ast-extractors/extract-typescript-deps.js - - + + src/extract/get-dependencies.js->src/extract/parse/to-javascript-ast.js - - + + src/extract/get-dependencies.js->src/extract/parse/to-typescript-ast.js - - + + src/utl/array-util.js - -array-util.js + +array-util.js src/extract/get-dependencies.js->src/utl/array-util.js - - + + src/extract/resolve/index.js - -index.js + +index.js src/extract/get-dependencies.js->src/extract/resolve/index.js - - + + src/extract/utl/detect-pre-compilation-ness.js - -detect-pre-compilation-ness.js + +detect-pre-compilation-ness.js src/extract/get-dependencies.js->src/extract/utl/detect-pre-compilation-ness.js - - + + src/extract/resolve/index.js->src/extract/resolve/resolve-amd.js - - + + src/extract/resolve/index.js->src/extract/utl/path-to-posix.js - - + + src/extract/resolve/index.js->src/extract/resolve/is-relative-module-name.js - - + + src/extract/resolve/resolve-cjs.js - -resolve-cjs.js + +resolve-cjs.js src/extract/resolve/index.js->src/extract/resolve/resolve-cjs.js - - + + src/extract/utl/compare.js - -compare.js + +compare.js src/extract/utl/detect-pre-compilation-ness.js->src/extract/utl/compare.js - - + + src/extract/index.js->src/extract/add-validations.js - - + + src/extract/index.js->src/extract/clear-caches.js - - + + src/extract/index.js->src/extract/derive/circular/index.js - - + + src/extract/index.js->src/extract/derive/orphan/index.js - - + + src/extract/index.js->src/extract/derive/reachable/index.js - - + + src/extract/index.js->src/extract/gather-initial-sources.js - - + + src/extract/index.js->src/extract/utl/path-to-posix.js - - + + src/extract/index.js->src/extract/get-dependencies.js - - + + src/extract/summarize.js - -summarize.js + +summarize.js src/extract/index.js->src/extract/summarize.js - - + + src/utl/find-rule-by-name.js - -find-rule-by-name.js + +find-rule-by-name.js src/extract/summarize.js->src/utl/find-rule-by-name.js - - + + src/extract/summarize.js->src/extract/utl/compare.js - - + + src/extract/transpile/index.js->src/extract/transpile/meta.js - - + + src/extract/resolve/determine-dependency-types.js->src/extract/resolve/local-npm-helpers.js - - + + src/extract/resolve/determine-dependency-types.js->src/extract/resolve/is-core.js - - + + src/extract/resolve/determine-dependency-types.js->src/extract/resolve/is-relative-module-name.js - - + + src/extract/resolve/resolve-cjs.js->src/extract/resolve/resolve.js - - + + src/extract/resolve/resolve-cjs.js->src/extract/resolve/read-package-deps/index.js - - + + src/extract/resolve/resolve-cjs.js->src/extract/utl/path-to-posix.js - - + + src/extract/resolve/resolve-cjs.js->src/extract/resolve/determine-dependency-types.js - - + + src/extract/resolve/resolve-cjs.js->src/extract/resolve/is-core.js - - + + src/extract/resolve/is-followable.js - -is-followable.js + +is-followable.js src/extract/resolve/resolve-cjs.js->src/extract/resolve/is-followable.js - - + + src/extract/resolve/resolve-cjs.js->src/extract/resolve/resolve-helpers.js - - + + src/extract/resolve/is-followable.js->src/extract/utl/get-extension.js - - + + src/extract/resolve/resolve-helpers.js->src/extract/resolve/local-npm-helpers.js - - + + src/report/anon/index.js - -index.js + +index.js src/report/index.js->src/report/anon/index.js - - + + src/report/csv/index.js - -index.js + +index.js src/report/index.js->src/report/csv/index.js - - + + src/report/dot/index.js - -index.js + +index.js src/report/index.js->src/report/dot/index.js - - + + - + -src/report/err-html/index.js - - -index.js +src/report/error-html/index.js + + +index.js - + -src/report/index.js->src/report/err-html/index.js - - +src/report/index.js->src/report/error-html/index.js + + - + -src/report/err.js - - -err.js +src/report/error.js + + +error.js - + -src/report/index.js->src/report/err.js - - +src/report/index.js->src/report/error.js + + src/report/html/index.js - -index.js + +index.js src/report/index.js->src/report/html/index.js - - + + src/report/identity.js - -identity.js + +identity.js src/report/index.js->src/report/identity.js - - + + src/report/json.js - -json.js + +json.js src/report/index.js->src/report/json.js - - + + src/report/teamcity.js - -teamcity.js + +teamcity.js src/report/index.js->src/report/teamcity.js - - + + src/main/options/defaults.json - - -defaults.json + + +defaults.json src/main/options/normalize.js->src/main/options/defaults.json - - + + src/main/options/validate.js->src/report/index.js - - + + src/main/rule-set/validate.js->src/main/options/validate.js - - + + src/schema/configuration.schema.json - - -configuration.schema.json + + +configuration.schema.json src/main/rule-set/validate.js->src/schema/configuration.schema.json - - + + src/report/anon/anonymize-path-element.js - -anonymize-path-element.js + +anonymize-path-element.js @@ -1800,75 +1800,75 @@ src/report/anon/random-string.js - -random-string.js + +random-string.js src/report/anon/anonymize-path-element.js->src/report/anon/random-string.js - - + + src/report/anon/anonymize-path.js - -anonymize-path.js + +anonymize-path.js src/report/anon/anonymize-path.js->src/report/anon/anonymize-path-element.js - - + + src/report/anon/index.js->src/report/anon/anonymize-path.js - - + + src/report/csv/csv.template.js - -csv.template.js + +csv.template.js src/report/csv/index.js->src/report/csv/csv.template.js - - + + src/report/utl/dependency-to-incidence-transformer.js - -dependency-to-incidence-transformer.js + +dependency-to-incidence-transformer.js src/report/csv/index.js->src/report/utl/dependency-to-incidence-transformer.js - - + + src/report/dot/default-theme.json - - -default-theme.json + + +default-theme.json @@ -1876,298 +1876,298 @@ src/report/dot/dot.template.js - -dot.template.js + +dot.template.js src/report/dot/index.js->src/report/dot/dot.template.js - - + + src/report/dot/module-utl.js - -module-utl.js + +module-utl.js src/report/dot/index.js->src/report/dot/module-utl.js - - + + src/report/dot/prepare-custom-level.js - -prepare-custom-level.js + +prepare-custom-level.js src/report/dot/index.js->src/report/dot/prepare-custom-level.js - - + + src/report/dot/prepare-folder-level.js - -prepare-folder-level.js + +prepare-folder-level.js src/report/dot/index.js->src/report/dot/prepare-folder-level.js - - + + src/report/dot/theming.js - -theming.js + +theming.js src/report/dot/index.js->src/report/dot/theming.js - - + + src/report/dot/module-utl.js->src/report/dot/theming.js - - + + src/report/dot/prepare-custom-level.js->src/report/dot/module-utl.js - - + + src/report/utl/consolidate-to-pattern.js - -consolidate-to-pattern.js + +consolidate-to-pattern.js src/report/dot/prepare-custom-level.js->src/report/utl/consolidate-to-pattern.js - - + + src/report/dot/prepare-folder-level.js->src/report/dot/module-utl.js - - + + src/report/utl/consolidate-to-folder.js - -consolidate-to-folder.js + +consolidate-to-folder.js src/report/dot/prepare-folder-level.js->src/report/utl/consolidate-to-folder.js - - + + src/report/dot/theming.js->src/report/dot/default-theme.json - - + + src/report/utl/consolidate-module-dependencies.js - -consolidate-module-dependencies.js + +consolidate-module-dependencies.js src/report/utl/consolidate-to-pattern.js->src/report/utl/consolidate-module-dependencies.js - - + + src/report/utl/consolidate-modules.js - -consolidate-modules.js + +consolidate-modules.js src/report/utl/consolidate-to-pattern.js->src/report/utl/consolidate-modules.js - - + + src/report/utl/consolidate-to-folder.js->src/report/utl/consolidate-module-dependencies.js - - + + src/report/utl/consolidate-to-folder.js->src/report/utl/consolidate-modules.js - - + + - + -src/report/err-html/err-html.template.js - - -err-html.template.js +src/report/error-html/error-html.template.js + + +error-html.template.js - + -src/report/err-html/index.js->src/report/err-html/err-html.template.js - - +src/report/error-html/index.js->src/report/error-html/error-html.template.js + + - + -src/report/err-html/utl.js - - -utl.js +src/report/error-html/utl.js + + +utl.js - + -src/report/err-html/index.js->src/report/err-html/utl.js - - +src/report/error-html/index.js->src/report/error-html/utl.js + + - + -src/report/err.js->src/utl/find-rule-by-name.js - - +src/report/error.js->src/utl/find-rule-by-name.js + + src/report/html/html.template.js - -html.template.js + +html.template.js src/report/html/index.js->src/report/utl/dependency-to-incidence-transformer.js - - + + src/report/html/index.js->src/report/html/html.template.js - - + + src/report/utl/compare-rules.js - -compare-rules.js + +compare-rules.js src/report/utl/consolidate-module-dependencies.js->src/report/utl/compare-rules.js - - + + src/report/utl/consolidate-modules.js->src/report/utl/compare-rules.js - - + + src/validate/is-module-only-rule.js - -is-module-only-rule.js + +is-module-only-rule.js src/validate/match-dependency-rule.js->src/validate/is-module-only-rule.js - - + + src/validate/matches.js - -matches.js + +matches.js src/validate/match-dependency-rule.js->src/validate/matches.js - - + + src/validate/match-module-rule.js->src/validate/is-module-only-rule.js - - + + src/validate/match-module-rule.js->src/validate/matches.js - - + + src/validate/matches.js->src/utl/array-util.js - - + + diff --git a/docs/dependency-cruiser-dependency-graph.html b/docs/dependency-cruiser-dependency-graph.html index e84a8ece6..040a2bcf9 100644 --- a/docs/dependency-cruiser-dependency-graph.html +++ b/docs/dependency-cruiser-dependency-graph.html @@ -44,11 +44,11 @@ - + dependency-cruiser output - + cluster_bin @@ -56,163 +56,163 @@ cluster_src - -src - - -cluster_src/report - -report - - -cluster_src/report/anon - -anon - - -cluster_src/report/csv - -csv - - -cluster_src/report/dot - -dot - - -cluster_src/report/err-html - -err-html - - -cluster_src/report/html - -html - - -cluster_src/report/utl - -utl - - -cluster_src/schema - -schema - - -cluster_src/utl - -utl - - -cluster_src/validate - -validate - - -cluster_src/main - -main - - -cluster_src/main/resolve-options - -resolve-options - - -cluster_src/main/rule-set - -rule-set - - -cluster_src/main/files-and-dirs - -files-and-dirs - - -cluster_src/main/options - -options + +src cluster_src/cli - -cli + +cli cluster_src/cli/compile-config - -compile-config + +compile-config cluster_src/cli/init-config - -init-config + +init-config cluster_src/cli/tools - -tools + +tools cluster_src/cli/utl - -utl + +utl cluster_src/extract - -extract - - -cluster_src/extract/utl - -utl - - -cluster_src/extract/transpile - -transpile + +extract cluster_src/extract/ast-extractors - -ast-extractors + +ast-extractors cluster_src/extract/derive - -derive + +derive cluster_src/extract/derive/circular - -circular + +circular cluster_src/extract/derive/orphan - -orphan + +orphan cluster_src/extract/derive/reachable - -reachable + +reachable cluster_src/extract/parse - -parse + +parse cluster_src/extract/resolve - -resolve + +resolve cluster_src/extract/resolve/read-package-deps - -read-package-deps + +read-package-deps + + +cluster_src/extract/transpile + +transpile + + +cluster_src/extract/utl + +utl + + +cluster_src/main + +main + + +cluster_src/main/files-and-dirs + +files-and-dirs + + +cluster_src/main/options + +options + + +cluster_src/main/resolve-options + +resolve-options + + +cluster_src/main/rule-set + +rule-set + + +cluster_src/report + +report + + +cluster_src/report/anon + +anon + + +cluster_src/report/csv + +csv + + +cluster_src/report/dot + +dot + + +cluster_src/report/error-html + +error-html + + +cluster_src/report/html + +html + + +cluster_src/report/utl + +utl + + +cluster_src/schema + +schema + + +cluster_src/utl + +utl + + +cluster_src/validate + +validate @@ -227,91 +227,91 @@ src/cli/format.js - -format.js + +format.js bin/depcruise-fmt.js->src/cli/format.js - - + + - + -src/cli/validate-node-env.js - - -validate-node-env.js +src/cli/validate-node-environment.js + + +validate-node-environment.js - + -bin/depcruise-fmt.js->src/cli/validate-node-env.js - - +bin/depcruise-fmt.js->src/cli/validate-node-environment.js + + src/main/index.js - -index.js + +index.js src/cli/format.js->src/main/index.js - - + + src/cli/normalize-options.js - -normalize-options.js + +normalize-options.js src/cli/format.js->src/cli/normalize-options.js - - + + src/cli/utl/io.js - -io.js + +io.js src/cli/format.js->src/cli/utl/io.js - - + + src/cli/utl/validate-file-existence.js - -validate-file-existence.js + +validate-file-existence.js src/cli/format.js->src/cli/utl/validate-file-existence.js - - + + @@ -322,110 +322,110 @@ - + -bin/dependency-cruise.js->src/cli/validate-node-env.js - - +bin/dependency-cruise.js->src/cli/validate-node-environment.js + + src/cli/index.js - -index.js + +index.js bin/dependency-cruise.js->src/cli/index.js - - + + src/cli/format-meta-info.js - -format-meta-info.js + +format-meta-info.js src/cli/index.js->src/cli/format-meta-info.js - - + + src/cli/index.js->src/main/index.js - - + + src/cli/index.js->src/cli/normalize-options.js - - + + src/cli/index.js->src/cli/utl/io.js - - + + src/cli/index.js->src/cli/utl/validate-file-existence.js - - + + src/cli/get-resolve-config.js - -get-resolve-config.js + +get-resolve-config.js src/cli/index.js->src/cli/get-resolve-config.js - - + + src/cli/init-config/index.js - -index.js + +index.js src/cli/index.js->src/cli/init-config/index.js - - + + src/cli/parse-ts-config.js - -parse-ts-config.js + +parse-ts-config.js src/cli/index.js->src/cli/parse-ts-config.js - - + + @@ -440,23 +440,23 @@ src/cli/tools/wrap-stream-in-html.js - -wrap-stream-in-html.js + +wrap-stream-in-html.js bin/wrap-stream-in-html.js->src/cli/tools/wrap-stream-in-html.js - - + + src/cli/compile-config/index.js - -index.js + +index.js @@ -464,8 +464,8 @@ src/extract/resolve/resolve.js - -resolve.js + +resolve.js @@ -473,368 +473,368 @@ src/cli/compile-config/index.js->src/extract/resolve/resolve.js - - + + -cli-to-main-only-warn +cli-to-main-only-warn src/main/resolve-options/normalize.js - -normalize.js + +normalize.js src/cli/compile-config/index.js->src/main/resolve-options/normalize.js - - + + src/cli/compile-config/merge-configs.js - -merge-configs.js + +merge-configs.js src/cli/compile-config/index.js->src/cli/compile-config/merge-configs.js - - + + src/cli/compile-config/read-config.js - -read-config.js + +read-config.js src/cli/compile-config/index.js->src/cli/compile-config/read-config.js - - + + src/extract/utl/path-to-posix.js - -path-to-posix.js + +path-to-posix.js src/extract/resolve/resolve.js->src/extract/utl/path-to-posix.js - - + + - + -src/extract/utl/strip-query-params.js - - -strip-query-params.js +src/extract/utl/strip-query-parameters.js + + +strip-query-parameters.js - + -src/extract/resolve/resolve.js->src/extract/utl/strip-query-params.js - - +src/extract/resolve/resolve.js->src/extract/utl/strip-query-parameters.js + + src/extract/transpile/meta.js - -meta.js + +meta.js src/main/resolve-options/normalize.js->src/extract/transpile/meta.js - - + + src/cli/defaults.json - - -defaults.json + + +defaults.json src/cli/format-meta-info.js->src/main/index.js - - + + src/main/index.js->src/main/resolve-options/normalize.js - - + + src/main/index.js->src/extract/transpile/meta.js - - + + src/extract/index.js - -index.js + +index.js src/main/index.js->src/extract/index.js - - + + src/main/files-and-dirs/normalize.js - -normalize.js + +normalize.js src/main/index.js->src/main/files-and-dirs/normalize.js - - + + src/report/index.js - -index.js + +index.js src/main/index.js->src/report/index.js - - + + src/schema/cruise-result.schema.json - - -cruise-result.schema.json + + +cruise-result.schema.json src/main/index.js->src/schema/cruise-result.schema.json - - + + src/main/options/normalize.js - -normalize.js + +normalize.js src/main/index.js->src/main/options/normalize.js - - + + src/main/options/validate.js - -validate.js + +validate.js src/main/index.js->src/main/options/validate.js - - + + src/main/rule-set/normalize.js - -normalize.js + +normalize.js src/main/index.js->src/main/rule-set/normalize.js - - + + src/main/rule-set/validate.js - -validate.js + +validate.js src/main/index.js->src/main/rule-set/validate.js - - + + src/cli/normalize-options.js->src/cli/compile-config/index.js - - + + src/cli/normalize-options.js->src/cli/defaults.json - - + + src/cli/utl/make-absolute.js - -make-absolute.js + +make-absolute.js src/cli/get-resolve-config.js->src/cli/utl/make-absolute.js - - + + src/cli/init-config/index.js->src/cli/defaults.json - - + + src/cli/init-config/create-config-file.js - -create-config-file.js + +create-config-file.js src/cli/init-config/index.js->src/cli/init-config/create-config-file.js - - + + src/cli/init-config/helpers.js - -helpers.js + +helpers.js src/cli/init-config/index.js->src/cli/init-config/helpers.js - - + + src/cli/init-config/get-user-input.js - -get-user-input.js + +get-user-input.js src/cli/init-config/index.js->src/cli/init-config/get-user-input.js - - + + src/cli/init-config/config.js.template.js - -config.js.template.js + +config.js.template.js src/cli/init-config/create-config-file.js->src/cli/init-config/config.js.template.js - - + + src/cli/init-config/create-config-file.js->src/cli/init-config/helpers.js - - + + src/cli/init-config/get-user-input.js->src/cli/defaults.json - - + + src/cli/init-config/get-user-input.js->src/cli/init-config/helpers.js - - + + src/extract/add-validations.js - -add-validations.js + +add-validations.js @@ -842,53 +842,53 @@ src/validate/index.js - -index.js + +index.js src/extract/add-validations.js->src/validate/index.js - - + + src/validate/match-dependency-rule.js - -match-dependency-rule.js + +match-dependency-rule.js src/validate/index.js->src/validate/match-dependency-rule.js - - + + src/validate/match-module-rule.js - -match-module-rule.js + +match-module-rule.js src/validate/index.js->src/validate/match-module-rule.js - - + + src/extract/ast-extractors/estree-helpers.js - -estree-helpers.js + +estree-helpers.js @@ -896,59 +896,59 @@ src/extract/ast-extractors/extract-amd-deps.js - -extract-amd-deps.js + +extract-amd-deps.js src/extract/ast-extractors/extract-amd-deps.js->src/extract/ast-extractors/estree-helpers.js - - + + src/extract/ast-extractors/extract-cjs-deps.js - -extract-cjs-deps.js + +extract-cjs-deps.js src/extract/ast-extractors/extract-amd-deps.js->src/extract/ast-extractors/extract-cjs-deps.js - - + + src/extract/ast-extractors/extract-cjs-deps.js->src/extract/ast-extractors/estree-helpers.js - - + + src/extract/ast-extractors/extract-es6-deps.js - -extract-es6-deps.js + +extract-es6-deps.js src/extract/ast-extractors/extract-es6-deps.js->src/extract/ast-extractors/estree-helpers.js - - + + src/extract/ast-extractors/extract-typescript-deps.js - -extract-typescript-deps.js + +extract-typescript-deps.js @@ -956,236 +956,236 @@ src/extract/clear-caches.js - -clear-caches.js + +clear-caches.js src/extract/clear-caches.js->src/extract/resolve/resolve.js - - + + src/extract/derive/reachable/is-reachable.js - -is-reachable.js + +is-reachable.js src/extract/clear-caches.js->src/extract/derive/reachable/is-reachable.js - - + + src/extract/parse/to-javascript-ast.js - -to-javascript-ast.js + +to-javascript-ast.js src/extract/clear-caches.js->src/extract/parse/to-javascript-ast.js - - + + src/extract/parse/to-typescript-ast.js - -to-typescript-ast.js + +to-typescript-ast.js src/extract/clear-caches.js->src/extract/parse/to-typescript-ast.js - - + + src/extract/resolve/local-npm-helpers.js - -local-npm-helpers.js + +local-npm-helpers.js src/extract/clear-caches.js->src/extract/resolve/local-npm-helpers.js - - + + src/extract/resolve/read-package-deps/index.js - -index.js + +index.js src/extract/clear-caches.js->src/extract/resolve/read-package-deps/index.js - - + + src/extract/resolve/resolve-amd.js - -resolve-amd.js + +resolve-amd.js src/extract/clear-caches.js->src/extract/resolve/resolve-amd.js - - + + src/extract/transpile/index.js - -index.js + +index.js src/extract/parse/to-javascript-ast.js->src/extract/transpile/index.js - - + + src/extract/utl/get-extension.js - -get-extension.js + +get-extension.js src/extract/parse/to-javascript-ast.js->src/extract/utl/get-extension.js - - + + src/extract/resolve/local-npm-helpers.js->src/extract/resolve/resolve.js - - + + src/extract/resolve/is-relative-module-name.js - -is-relative-module-name.js + +is-relative-module-name.js src/extract/resolve/local-npm-helpers.js->src/extract/resolve/is-relative-module-name.js - - + + src/extract/resolve/read-package-deps/merge-packages.js - -merge-packages.js + +merge-packages.js src/extract/resolve/read-package-deps/index.js->src/extract/resolve/read-package-deps/merge-packages.js - - + + src/extract/resolve/resolve-amd.js->src/extract/resolve/read-package-deps/index.js - - + + src/extract/resolve/resolve-amd.js->src/extract/utl/path-to-posix.js - - + + src/extract/resolve/determine-dependency-types.js - -determine-dependency-types.js + +determine-dependency-types.js src/extract/resolve/resolve-amd.js->src/extract/resolve/determine-dependency-types.js - - + + src/extract/resolve/is-core.js - -is-core.js + +is-core.js src/extract/resolve/resolve-amd.js->src/extract/resolve/is-core.js - - + + src/extract/resolve/resolve-helpers.js - -resolve-helpers.js + +resolve-helpers.js src/extract/resolve/resolve-amd.js->src/extract/resolve/resolve-helpers.js - - + + src/extract/derive/circular/get-cycle.js - -get-cycle.js + +get-cycle.js @@ -1193,23 +1193,23 @@ src/extract/derive/circular/index.js - -index.js + +index.js src/extract/derive/circular/index.js->src/extract/derive/circular/get-cycle.js - - + + src/extract/derive/orphan/index.js - -index.js + +index.js @@ -1217,622 +1217,622 @@ src/extract/derive/orphan/is-orphan.js - -is-orphan.js + +is-orphan.js src/extract/derive/orphan/index.js->src/extract/derive/orphan/is-orphan.js - - + + src/extract/derive/reachable/index.js - -index.js + +index.js src/extract/derive/reachable/index.js->src/extract/derive/reachable/is-reachable.js - - + + src/extract/gather-initial-sources.js - -gather-initial-sources.js + +gather-initial-sources.js src/extract/gather-initial-sources.js->src/extract/transpile/meta.js - - + + src/extract/gather-initial-sources.js->src/extract/utl/path-to-posix.js - - + + src/extract/transpile/coffeescript-wrap.js - -coffeescript-wrap.js + +coffeescript-wrap.js src/extract/transpile/meta.js->src/extract/transpile/coffeescript-wrap.js - - + + src/extract/transpile/javascript-wrap.js - -javascript-wrap.js + +javascript-wrap.js src/extract/transpile/meta.js->src/extract/transpile/javascript-wrap.js - - + + src/extract/transpile/livescript-wrap.js - -livescript-wrap.js + +livescript-wrap.js src/extract/transpile/meta.js->src/extract/transpile/livescript-wrap.js - - + + src/extract/transpile/typescript-wrap.js - -typescript-wrap.js + +typescript-wrap.js src/extract/transpile/meta.js->src/extract/transpile/typescript-wrap.js - - + + src/extract/transpile/vue-template-wrap.js - -vue-template-wrap.js + +vue-template-wrap.js src/extract/transpile/meta.js->src/extract/transpile/vue-template-wrap.js - - + + src/extract/get-dependencies.js - -get-dependencies.js + +get-dependencies.js src/extract/get-dependencies.js->src/extract/ast-extractors/extract-amd-deps.js - - + + src/extract/get-dependencies.js->src/extract/ast-extractors/extract-cjs-deps.js - - + + src/extract/get-dependencies.js->src/extract/ast-extractors/extract-es6-deps.js - - + + src/extract/get-dependencies.js->src/extract/ast-extractors/extract-typescript-deps.js - - + + src/extract/get-dependencies.js->src/extract/parse/to-javascript-ast.js - - + + src/extract/get-dependencies.js->src/extract/parse/to-typescript-ast.js - - + + src/utl/array-util.js - -array-util.js + +array-util.js src/extract/get-dependencies.js->src/utl/array-util.js - - + + src/extract/resolve/index.js - -index.js + +index.js src/extract/get-dependencies.js->src/extract/resolve/index.js - - + + src/extract/utl/detect-pre-compilation-ness.js - -detect-pre-compilation-ness.js + +detect-pre-compilation-ness.js src/extract/get-dependencies.js->src/extract/utl/detect-pre-compilation-ness.js - - + + src/extract/resolve/index.js->src/extract/resolve/resolve-amd.js - - + + src/extract/resolve/index.js->src/extract/utl/path-to-posix.js - - + + src/extract/resolve/index.js->src/extract/resolve/is-relative-module-name.js - - + + src/extract/resolve/resolve-cjs.js - -resolve-cjs.js + +resolve-cjs.js src/extract/resolve/index.js->src/extract/resolve/resolve-cjs.js - - + + src/extract/utl/compare.js - -compare.js + +compare.js src/extract/utl/detect-pre-compilation-ness.js->src/extract/utl/compare.js - - + + src/extract/index.js->src/extract/add-validations.js - - + + src/extract/index.js->src/extract/clear-caches.js - - + + src/extract/index.js->src/extract/derive/circular/index.js - - + + src/extract/index.js->src/extract/derive/orphan/index.js - - + + src/extract/index.js->src/extract/derive/reachable/index.js - - + + src/extract/index.js->src/extract/gather-initial-sources.js - - + + src/extract/index.js->src/extract/utl/path-to-posix.js - - + + src/extract/index.js->src/extract/get-dependencies.js - - + + src/extract/summarize.js - -summarize.js + +summarize.js src/extract/index.js->src/extract/summarize.js - - + + src/utl/find-rule-by-name.js - -find-rule-by-name.js + +find-rule-by-name.js src/extract/summarize.js->src/utl/find-rule-by-name.js - - + + src/extract/summarize.js->src/extract/utl/compare.js - - + + src/extract/transpile/index.js->src/extract/transpile/meta.js - - + + src/extract/resolve/determine-dependency-types.js->src/extract/resolve/local-npm-helpers.js - - + + src/extract/resolve/determine-dependency-types.js->src/extract/resolve/is-core.js - - + + src/extract/resolve/determine-dependency-types.js->src/extract/resolve/is-relative-module-name.js - - + + src/extract/resolve/resolve-cjs.js->src/extract/resolve/resolve.js - - + + src/extract/resolve/resolve-cjs.js->src/extract/resolve/read-package-deps/index.js - - + + src/extract/resolve/resolve-cjs.js->src/extract/utl/path-to-posix.js - - + + src/extract/resolve/resolve-cjs.js->src/extract/resolve/determine-dependency-types.js - - + + src/extract/resolve/resolve-cjs.js->src/extract/resolve/is-core.js - - + + src/extract/resolve/is-followable.js - -is-followable.js + +is-followable.js src/extract/resolve/resolve-cjs.js->src/extract/resolve/is-followable.js - - + + src/extract/resolve/resolve-cjs.js->src/extract/resolve/resolve-helpers.js - - + + src/extract/resolve/is-followable.js->src/extract/utl/get-extension.js - - + + src/extract/resolve/resolve-helpers.js->src/extract/resolve/local-npm-helpers.js - - + + src/report/anon/index.js - -index.js + +index.js src/report/index.js->src/report/anon/index.js - - + + src/report/csv/index.js - -index.js + +index.js src/report/index.js->src/report/csv/index.js - - + + src/report/dot/index.js - -index.js + +index.js src/report/index.js->src/report/dot/index.js - - + + - + -src/report/err-html/index.js - - -index.js +src/report/error-html/index.js + + +index.js - + -src/report/index.js->src/report/err-html/index.js - - +src/report/index.js->src/report/error-html/index.js + + - + -src/report/err.js - - -err.js +src/report/error.js + + +error.js - + -src/report/index.js->src/report/err.js - - +src/report/index.js->src/report/error.js + + src/report/html/index.js - -index.js + +index.js src/report/index.js->src/report/html/index.js - - + + src/report/identity.js - -identity.js + +identity.js src/report/index.js->src/report/identity.js - - + + src/report/json.js - -json.js + +json.js src/report/index.js->src/report/json.js - - + + src/report/teamcity.js - -teamcity.js + +teamcity.js src/report/index.js->src/report/teamcity.js - - + + src/main/options/defaults.json - - -defaults.json + + +defaults.json src/main/options/normalize.js->src/main/options/defaults.json - - + + src/main/options/validate.js->src/report/index.js - - + + src/main/rule-set/validate.js->src/main/options/validate.js - - + + src/schema/configuration.schema.json - - -configuration.schema.json + + +configuration.schema.json src/main/rule-set/validate.js->src/schema/configuration.schema.json - - + + src/report/anon/anonymize-path-element.js - -anonymize-path-element.js + +anonymize-path-element.js @@ -1840,75 +1840,75 @@ src/report/anon/random-string.js - -random-string.js + +random-string.js src/report/anon/anonymize-path-element.js->src/report/anon/random-string.js - - + + src/report/anon/anonymize-path.js - -anonymize-path.js + +anonymize-path.js src/report/anon/anonymize-path.js->src/report/anon/anonymize-path-element.js - - + + src/report/anon/index.js->src/report/anon/anonymize-path.js - - + + src/report/csv/csv.template.js - -csv.template.js + +csv.template.js src/report/csv/index.js->src/report/csv/csv.template.js - - + + src/report/utl/dependency-to-incidence-transformer.js - -dependency-to-incidence-transformer.js + +dependency-to-incidence-transformer.js src/report/csv/index.js->src/report/utl/dependency-to-incidence-transformer.js - - + + src/report/dot/default-theme.json - - -default-theme.json + + +default-theme.json @@ -1916,298 +1916,298 @@ src/report/dot/dot.template.js - -dot.template.js + +dot.template.js src/report/dot/index.js->src/report/dot/dot.template.js - - + + src/report/dot/module-utl.js - -module-utl.js + +module-utl.js src/report/dot/index.js->src/report/dot/module-utl.js - - + + src/report/dot/prepare-custom-level.js - -prepare-custom-level.js + +prepare-custom-level.js src/report/dot/index.js->src/report/dot/prepare-custom-level.js - - + + src/report/dot/prepare-folder-level.js - -prepare-folder-level.js + +prepare-folder-level.js src/report/dot/index.js->src/report/dot/prepare-folder-level.js - - + + src/report/dot/theming.js - -theming.js + +theming.js src/report/dot/index.js->src/report/dot/theming.js - - + + src/report/dot/module-utl.js->src/report/dot/theming.js - - + + src/report/dot/prepare-custom-level.js->src/report/dot/module-utl.js - - + + src/report/utl/consolidate-to-pattern.js - -consolidate-to-pattern.js + +consolidate-to-pattern.js src/report/dot/prepare-custom-level.js->src/report/utl/consolidate-to-pattern.js - - + + src/report/dot/prepare-folder-level.js->src/report/dot/module-utl.js - - + + src/report/utl/consolidate-to-folder.js - -consolidate-to-folder.js + +consolidate-to-folder.js src/report/dot/prepare-folder-level.js->src/report/utl/consolidate-to-folder.js - - + + src/report/dot/theming.js->src/report/dot/default-theme.json - - + + src/report/utl/consolidate-module-dependencies.js - -consolidate-module-dependencies.js + +consolidate-module-dependencies.js src/report/utl/consolidate-to-pattern.js->src/report/utl/consolidate-module-dependencies.js - - + + src/report/utl/consolidate-modules.js - -consolidate-modules.js + +consolidate-modules.js src/report/utl/consolidate-to-pattern.js->src/report/utl/consolidate-modules.js - - + + src/report/utl/consolidate-to-folder.js->src/report/utl/consolidate-module-dependencies.js - - + + src/report/utl/consolidate-to-folder.js->src/report/utl/consolidate-modules.js - - + + - + -src/report/err-html/err-html.template.js - - -err-html.template.js +src/report/error-html/error-html.template.js + + +error-html.template.js - + -src/report/err-html/index.js->src/report/err-html/err-html.template.js - - +src/report/error-html/index.js->src/report/error-html/error-html.template.js + + - + -src/report/err-html/utl.js - - -utl.js +src/report/error-html/utl.js + + +utl.js - + -src/report/err-html/index.js->src/report/err-html/utl.js - - +src/report/error-html/index.js->src/report/error-html/utl.js + + - + -src/report/err.js->src/utl/find-rule-by-name.js - - +src/report/error.js->src/utl/find-rule-by-name.js + + src/report/html/html.template.js - -html.template.js + +html.template.js src/report/html/index.js->src/report/utl/dependency-to-incidence-transformer.js - - + + src/report/html/index.js->src/report/html/html.template.js - - + + src/report/utl/compare-rules.js - -compare-rules.js + +compare-rules.js src/report/utl/consolidate-module-dependencies.js->src/report/utl/compare-rules.js - - + + src/report/utl/consolidate-modules.js->src/report/utl/compare-rules.js - - + + src/validate/is-module-only-rule.js - -is-module-only-rule.js + +is-module-only-rule.js src/validate/match-dependency-rule.js->src/validate/is-module-only-rule.js - - + + src/validate/matches.js - -matches.js + +matches.js src/validate/match-dependency-rule.js->src/validate/matches.js - - + + src/validate/match-module-rule.js->src/validate/is-module-only-rule.js - - + + src/validate/match-module-rule.js->src/validate/matches.js - - + + src/validate/matches.js->src/utl/array-util.js - - + + diff --git a/docs/dependency-cruiser-dir-graph.html b/docs/dependency-cruiser-dir-graph.html index 303828142..1c3dcdfa7 100644 --- a/docs/dependency-cruiser-dir-graph.html +++ b/docs/dependency-cruiser-dir-graph.html @@ -44,55 +44,55 @@ - + dependency-cruiser output - + cluster_src - -src - - -cluster_src/report - -report - - -cluster_src/main - -main + +src cluster_src/cli - -cli + +cli cluster_src/extract - -extract + +extract cluster_src/extract/derive - -derive + +derive cluster_src/extract/resolve - -resolve + +resolve + + +cluster_src/main + +main + + +cluster_src/report + +report bin - - - - -bin + + + + +bin @@ -100,450 +100,450 @@ bin->src/cli - - + + src/cli/tools - - - - -tools + + + + +tools bin->src/cli/tools - - + + src/cli->src/main - - + + src/cli/utl - - - - -utl + + + + +utl src/cli->src/cli/utl - - + + src/cli/compile-config - - - - -compile-config + + + + +compile-config src/cli->src/cli/compile-config - - + + src/cli/init-config - - - - -init-config + + + + +init-config src/cli->src/cli/init-config - - + + src/main/resolve-options - - - - -resolve-options + + + + +resolve-options src/main->src/main/resolve-options - - + + src/main->src/extract - - + + src/extract/transpile - - - - -transpile + + + + +transpile src/main->src/extract/transpile - - + + src/main->src/report - - + + src/schema - - - - -schema + + + + +schema src/main->src/schema - - + + src/main/files-and-dirs - - - - -files-and-dirs + + + + +files-and-dirs src/main->src/main/files-and-dirs - - + + src/main/options - - - - -options + + + + +options src/main->src/main/options - - + + src/main/rule-set - - - - -rule-set + + + + +rule-set src/main->src/main/rule-set - - + + src/cli/compile-config->src/extract/resolve - - + + -cli-to-main-only-warn +cli-to-main-only-warn src/cli/compile-config->src/main/resolve-options - - + + src/cli/init-config->src/cli - - + + src/extract/utl - - - - -utl + + + + +utl src/extract/resolve->src/extract/utl - - + + src/extract/resolve/read-package-deps - - - - -read-package-deps + + + + +read-package-deps src/extract/resolve->src/extract/resolve/read-package-deps - - + + src/main/resolve-options->src/extract/transpile - - + + src/extract->src/extract/resolve - - + + src/extract/derive/circular - - - - -circular + + + + +circular src/extract->src/extract/derive/circular - - + + src/extract/derive/orphan - - - - -orphan + + + + +orphan src/extract->src/extract/derive/orphan - - + + src/extract/derive/reachable - - - - -reachable + + + + +reachable src/extract->src/extract/derive/reachable - - + + src/extract->src/extract/utl - - + + src/validate - - - - -validate + + + + +validate src/extract->src/validate - - + + src/extract/parse - - - - -parse + + + + +parse src/extract->src/extract/parse - - + + src/extract->src/extract/resolve/read-package-deps - - + + src/extract->src/extract/transpile - - + + src/utl - - - - -utl + + + + +utl src/extract->src/utl - - + + src/extract/ast-extractors - - - - -ast-extractors + + + + +ast-extractors src/extract->src/extract/ast-extractors - - + + src/validate->src/utl - - + + src/extract/parse->src/extract/utl - - + + src/extract/parse->src/extract/transpile - - + + src/report->src/utl - - + + @@ -560,8 +560,8 @@ src/report->src/report/anon - - + + @@ -578,8 +578,8 @@ src/report->src/report/csv - - + + @@ -596,26 +596,26 @@ src/report->src/report/dot - - + + - + -src/report/err-html - - - - - -err-html +src/report/error-html + + + + + +error-html - + -src/report->src/report/err-html - - +src/report->src/report/error-html + + @@ -632,26 +632,26 @@ src/report->src/report/html - + src/main/options->src/report - - + + src/main/rule-set->src/schema - - + + src/main/rule-set->src/main/options - - + + diff --git a/package.json b/package.json index 9710c0cf9..144a39584 100644 --- a/package.json +++ b/package.json @@ -47,8 +47,6 @@ "files": [ "bin/", "configs/**/*.js", - "configs/**/*.json", - "!configs/eslint-config.json", "src/", "!src/**/*.hbs", "!src/**/*.md", @@ -73,9 +71,7 @@ "depcruise:graph:doc:svg": "./bin/depcruise-fmt.js -T dot -f - tmp_graph_deps.json | dot -T svg > doc/real-world-samples/dependency-cruiser-without-node_modules.svg", "depcruise:graph:doc:svg-archi": "./bin/depcruise-fmt.js -T archi -f - tmp_graph_deps.json | dot -Grankdir=TD -T svg > doc/real-world-samples/dependency-cruiser-archi-graph.svg", "depcruise:graph:doc:svg-dir": "./bin/depcruise-fmt.js -T ddot -f - tmp_graph_deps.json | dot -Grankdir=TD -T svg > doc/real-world-samples/dependency-cruiser-dir-graph.svg", - "depcruise:graph:doc:schema": "npm-run-all depcruise:graph:doc:schema:svg depcruise:graph:doc:schema:html", - "depcruise:graph:doc:schema:svg": "cd utl/schema && node ../../bin/dependency-cruise.js --validate ../../.dependency-cruiser.json --prefix https://github.com/sverweij/dependency-cruiser/blob/develop/utl/schema/ --output-type dot . | dot -Gsplines=true -T svg > ../overview.svg && cd -", - "depcruise:graph:doc:schema:html": "node ./bin/wrap-stream-in-html.js < utl/overview.svg > docs/schema-overview.html", + "depcruise:graph:doc:schema": "cd utl/schema && node ../../bin/dependency-cruise.js --validate ../../.dependency-cruiser.json --prefix https://github.com/sverweij/dependency-cruiser/blob/develop/utl/schema/ --output-type dot . | dot -Gsplines=true -T svg | tee ../overview.svg | node ../../bin/wrap-stream-in-html.js > ../../docs/schema-overview.html && cd -", "depcruise:graph:doc:theming:bare": " bin/dependency-cruise.js -Tdot -v doc/assets/theming/bare.config.js src/main | dot -Tsvg > doc/assets/theming/bare.svg", "depcruise:graph:doc:theming:base": " bin/dependency-cruise.js -Tdot -v doc/assets/theming/base.config.js src/main | dot -Tsvg > doc/assets/theming/base.svg", "depcruise:graph:doc:theming:engineering": " bin/dependency-cruise.js -Tdot -v doc/assets/theming/engineering.config.js src/main | dot -Tsvg > doc/assets/theming/engineering.svg", @@ -152,7 +148,9 @@ "chai-json-schema": "1.5.1", "coffeescript": "2.5.1", "eslint": "6.8.0", + "eslint-config-moving-meadow": "1.0.0", "eslint-config-prettier": "6.10.0", + "eslint-plugin-budapestian": "1.0.0", "eslint-plugin-import": "2.20.1", "eslint-plugin-mocha": "6.3.0", "eslint-plugin-node": "11.0.0", diff --git a/src/cli/compile-config/index.js b/src/cli/compile-config/index.js index 44e810732..2ece26fa2 100644 --- a/src/cli/compile-config/index.js +++ b/src/cli/compile-config/index.js @@ -5,23 +5,26 @@ const readConfig = require("./read-config"); const mergeConfigs = require("./merge-configs"); /* eslint no-use-before-define: 0 */ -function processExtends(pRetval, pAlreadyVisited, pBaseDir) { - if (typeof pRetval.extends === "string") { - pRetval = mergeConfigs( - pRetval, - compileConfig(pRetval.extends, pAlreadyVisited, pBaseDir) +function processExtends(pReturnValue, pAlreadyVisited, pBaseDirectory) { + if (typeof pReturnValue.extends === "string") { + pReturnValue = mergeConfigs( + pReturnValue, + compileConfig(pReturnValue.extends, pAlreadyVisited, pBaseDirectory) ); } - if (Array.isArray(pRetval.extends)) { - pRetval = pRetval.extends.reduce( + if (Array.isArray(pReturnValue.extends)) { + pReturnValue = pReturnValue.extends.reduce( (pAll, pExtends) => - mergeConfigs(pAll, compileConfig(pExtends, pAlreadyVisited, pBaseDir)), - pRetval + mergeConfigs( + pAll, + compileConfig(pExtends, pAlreadyVisited, pBaseDirectory) + ), + pReturnValue ); } - Reflect.deleteProperty(pRetval, "extends"); - return pRetval; + Reflect.deleteProperty(pReturnValue, "extends"); + return pReturnValue; } function getRunningProcessResolutionStrategy() { @@ -37,11 +40,11 @@ function getRunningProcessResolutionStrategy() { function compileConfig( pConfigFileName, pAlreadyVisited = new Set(), - pBaseDir = process.cwd() + pBaseDirectory = process.cwd() ) { const lResolvedFileName = resolve( pConfigFileName, - pBaseDir, + pBaseDirectory, normalizeResolveOptions( { extensions: [".js", ".json"] @@ -52,7 +55,7 @@ function compileConfig( ), "cli" ); - const lBaseDir = path.dirname(lResolvedFileName); + const lBaseDirectory = path.dirname(lResolvedFileName); if (pAlreadyVisited.has(lResolvedFileName)) { throw new Error( @@ -63,13 +66,17 @@ function compileConfig( } pAlreadyVisited.add(lResolvedFileName); - let lRetval = readConfig(lResolvedFileName, pBaseDir); + let lReturnValue = readConfig(lResolvedFileName, pBaseDirectory); - if (lRetval.hasOwnProperty("extends")) { - lRetval = processExtends(lRetval, pAlreadyVisited, lBaseDir); + if (lReturnValue.hasOwnProperty("extends")) { + lReturnValue = processExtends( + lReturnValue, + pAlreadyVisited, + lBaseDirectory + ); } - return lRetval; + return lReturnValue; } module.exports = compileConfig; diff --git a/src/cli/get-resolve-config.js b/src/cli/get-resolve-config.js index 452b41b4f..5fb5a9eb3 100644 --- a/src/cli/get-resolve-config.js +++ b/src/cli/get-resolve-config.js @@ -5,25 +5,25 @@ function pryConfigFromTheConfig( pEnvironment, pArguments ) { - let lRetval = pWebpackConfigModule; + let lReturnValue = pWebpackConfigModule; if (typeof pWebpackConfigModule === "function") { - lRetval = pWebpackConfigModule(pEnvironment, pArguments); + lReturnValue = pWebpackConfigModule(pEnvironment, pArguments); } if (Array.isArray(pWebpackConfigModule)) { - lRetval = pryConfigFromTheConfig( + lReturnValue = pryConfigFromTheConfig( pWebpackConfigModule[0], pEnvironment, pArguments ); } - return lRetval; + return lReturnValue; } module.exports = (pWebpackConfigFilename, pEnvironment, pArguments) => { - let lRetval = {}; + let lReturnValue = {}; try { /* eslint global-require:0, security/detect-non-literal-require:0, import/no-dynamic-require:0 */ @@ -35,7 +35,7 @@ module.exports = (pWebpackConfigFilename, pEnvironment, pArguments) => { ); if (lWebpackConfig.resolve) { - lRetval = lWebpackConfig.resolve; + lReturnValue = lWebpackConfig.resolve; } } catch (pError) { throw new Error( @@ -44,5 +44,5 @@ module.exports = (pWebpackConfigFilename, pEnvironment, pArguments) => { ); } - return lRetval; + return lReturnValue; }; diff --git a/src/cli/index.js b/src/cli/index.js index 31b261a6f..974146e2c 100644 --- a/src/cli/index.js +++ b/src/cli/index.js @@ -28,7 +28,7 @@ function extractResolveOptions(pOptions) { } function extractTSConfigOptions(pOptions) { - let lRetval = {}; + let lReturnValue = {}; const lTSConfigFileName = _get( pOptions, "ruleSet.options.tsConfig.fileName", @@ -36,21 +36,21 @@ function extractTSConfigOptions(pOptions) { ); if (lTSConfigFileName) { - lRetval = parseTSConfig(lTSConfigFileName); + lReturnValue = parseTSConfig(lTSConfigFileName); } - return lRetval; + return lReturnValue; } -function runCruise(pFileDirArray, pOptions) { - pFileDirArray - .filter(pFileOrDir => !glob.hasMagic(pFileOrDir)) +function runCruise(pFileDirectoryArray, pOptions) { + pFileDirectoryArray + .filter(pFileOrDirectory => !glob.hasMagic(pFileOrDirectory)) .forEach(validateFileExistence); pOptions = normalizeOptions(pOptions); const lReportingResult = main.cruise( - pFileDirArray, + pFileDirectoryArray, pOptions, extractResolveOptions(pOptions), extractTSConfigOptions(pOptions) @@ -61,7 +61,7 @@ function runCruise(pFileDirArray, pOptions) { return lReportingResult.exitCode; } -module.exports = (pFileDirArray, pOptions) => { +module.exports = (pFileDirectoryArray, pOptions) => { pOptions = pOptions || {}; let lExitCode = 0; @@ -71,7 +71,7 @@ module.exports = (pFileDirArray, pOptions) => { } else if (pOptions.init) { initConfig(pOptions.init); } else { - lExitCode = runCruise(pFileDirArray, pOptions); + lExitCode = runCruise(pFileDirectoryArray, pOptions); } } catch (pError) { process.stderr.write(`\n ERROR: ${pError.message}\n`); diff --git a/src/cli/init-config/create-config-file.js b/src/cli/init-config/create-config-file.js index 207065b0a..8ad9363e8 100644 --- a/src/cli/init-config/create-config-file.js +++ b/src/cli/init-config/create-config-file.js @@ -29,22 +29,22 @@ function writeTheThing(pFileName, pConfig) { } function normalizeInitOptions(pInitOptions) { - let lRetval = { + let lReturnValue = { version: $package.version, date: new Date().toJSON(), configType: "self-contained", ...pInitOptions }; - if (lRetval.configType === "preset" && !lRetval.preset) { - lRetval.preset = "dependency-cruiser/configs/recommended-warn-only"; + if (lReturnValue.configType === "preset" && !lReturnValue.preset) { + lReturnValue.preset = "dependency-cruiser/configs/recommended-warn-only"; } - if (lRetval.useYarnPnP) { - lRetval.externalModuleResolutionStrategy = "yarn-pnp"; + if (lReturnValue.useYarnPnP) { + lReturnValue.externalModuleResolutionStrategy = "yarn-pnp"; } - return lRetval; + return lReturnValue; } /** diff --git a/src/cli/init-config/helpers.js b/src/cli/init-config/helpers.js index 175f5fb79..18529ee0c 100644 --- a/src/cli/init-config/helpers.js +++ b/src/cli/init-config/helpers.js @@ -15,17 +15,17 @@ function fileExists(pFile) { } function pnpIsEnabled() { - let lRetval = false; + let lReturnValue = false; try { const lPackageFileText = fs.readFileSync("./package.json", "utf8"); const lPackageJSON = JSON.parse(lPackageFileText); - lRetval = _get(lPackageJSON, "installConfig.pnp", lRetval); + lReturnValue = _get(lPackageJSON, "installConfig.pnp", lReturnValue); } catch (pError) { // silently ignore - we'll return false anyway then } - return lRetval; + return lReturnValue; } module.exports = { diff --git a/src/cli/normalize-options.js b/src/cli/normalize-options.js index 3aa1de350..e1d055946 100644 --- a/src/cli/normalize-options.js +++ b/src/cli/normalize-options.js @@ -8,12 +8,12 @@ const defaults = require("./defaults.json"); function getOptionValue(pDefault) { return pValue => { - let lRetval = pDefault; + let lReturnValue = pDefault; if (typeof pValue === "string") { - lRetval = pValue; + lReturnValue = pValue; } - return lRetval; + return lReturnValue; }; } @@ -55,40 +55,40 @@ function fileExists(pFileName) { } function validateAndGetCustomRulesFileName(pValidate) { - let lRetval = ""; + let lReturnValue = ""; if (fileExists(pValidate)) { - lRetval = pValidate; + lReturnValue = pValidate; } else { throw new Error( `Can't open '${pValidate}' for reading. Does it exist?` + ` (You can create a dependency-cruiser configuration file with depcruise --init .)\n` ); } - return lRetval; + return lReturnValue; } function validateAndGetDefaultRulesFileName() { - let lRetval = defaults.RULES_FILE_NAME_SEARCH_ARRAY.find(fileExists); + let lReturnValue = defaults.RULES_FILE_NAME_SEARCH_ARRAY.find(fileExists); - if (typeof lRetval === "undefined") { - throw new Error( + if (typeof lReturnValue === "undefined") { + throw new TypeError( `Can't open '${defaults.RULES_FILE_NAME}' for reading. Does it exist?\n` ); } - return lRetval; + return lReturnValue; } function validateAndNormalizeRulesFileName(pValidate) { - let lRetval = ""; + let lReturnValue = ""; if (typeof pValidate === "string") { - lRetval = validateAndGetCustomRulesFileName(pValidate); + lReturnValue = validateAndGetCustomRulesFileName(pValidate); } else { - lRetval = validateAndGetDefaultRulesFileName(); + lReturnValue = validateAndGetDefaultRulesFileName(); } - return lRetval; + return lReturnValue; } /** diff --git a/src/cli/parse-ts-config.js b/src/cli/parse-ts-config.js index 34c57d833..315ef58e8 100644 --- a/src/cli/parse-ts-config.js +++ b/src/cli/parse-ts-config.js @@ -10,13 +10,13 @@ const typescript = tryRequire( const formatDiagnosticsHost = { getCanonicalFileName(pFileName) { - let lRetval = pFileName.toLowerCase(); + let lReturnValue = pFileName.toLowerCase(); /* istanbul ignore next - depends on the platform which branch is taken */ if (_get(typescript, "sys.useCaseSensitiveFileNames", false)) { - lRetval = pFileName; + lReturnValue = pFileName; } - return lRetval; + return lReturnValue; }, getCurrentDirectory() { return process.cwd(); @@ -27,7 +27,7 @@ const formatDiagnosticsHost = { }; module.exports = function parseConfig(pTSConfigFileName) { - let lRetval = {}; + let lReturnValue = {}; /* istanbul ignore else */ if (typescript) { @@ -37,11 +37,11 @@ module.exports = function parseConfig(pTSConfigFileName) { ); if (typeof lConfig.error !== "undefined") { - throw new Error( + throw new TypeError( typescript.formatDiagnostics([lConfig.error], formatDiagnosticsHost) ); } - lRetval = typescript.parseJsonConfigFileContent( + lReturnValue = typescript.parseJsonConfigFileContent( lConfig.config, typescript.sys, path.dirname(pTSConfigFileName), @@ -49,14 +49,14 @@ module.exports = function parseConfig(pTSConfigFileName) { pTSConfigFileName ); - if (lRetval.errors.length !== 0) { + if (lReturnValue.errors.length !== 0) { throw new Error( - typescript.formatDiagnostics(lRetval.errors, formatDiagnosticsHost) + typescript.formatDiagnostics(lReturnValue.errors, formatDiagnosticsHost) ); } // lRetval.fileNames; // all files included in the project // lRetval.options; // CompilerOptions } - return lRetval; + return lReturnValue; }; diff --git a/src/cli/utl/make-absolute.js b/src/cli/utl/make-absolute.js index f8d8b7e34..a56e226c2 100644 --- a/src/cli/utl/make-absolute.js +++ b/src/cli/utl/make-absolute.js @@ -1,10 +1,10 @@ const path = require("path"); module.exports = pFilename => { - let lRetval = pFilename; + let lReturnValue = pFilename; if (!path.isAbsolute(pFilename)) { - lRetval = path.join(process.cwd(), pFilename); + lReturnValue = path.join(process.cwd(), pFilename); } - return lRetval; + return lReturnValue; }; diff --git a/src/cli/utl/validate-file-existence.js b/src/cli/utl/validate-file-existence.js index c6082159c..40f763c7f 100644 --- a/src/cli/utl/validate-file-existence.js +++ b/src/cli/utl/validate-file-existence.js @@ -1,9 +1,11 @@ const fs = require("fs"); -module.exports = pDirOrFile => { +module.exports = pDirectoryOrFile => { try { - fs.accessSync(pDirOrFile, fs.R_OK); + fs.accessSync(pDirectoryOrFile, fs.R_OK); } catch (pError) { - throw new Error(`Can't open '${pDirOrFile}' for reading. Does it exist?\n`); + throw new Error( + `Can't open '${pDirectoryOrFile}' for reading. Does it exist?\n` + ); } }; diff --git a/src/cli/validate-node-env.js b/src/cli/validate-node-environment.js similarity index 90% rename from src/cli/validate-node-env.js rename to src/cli/validate-node-environment.js index 9a0854a03..9d2f4d15c 100644 --- a/src/cli/validate-node-env.js +++ b/src/cli/validate-node-environment.js @@ -1,7 +1,7 @@ const semver = require("semver"); const $package = require("../../package.json"); -module.exports = function validateNodeEnv(pNodeVersion) { +module.exports = function validateNodeEnvironment(pNodeVersion) { // not using default parameter here because the check should run // run on node 4 as well const lNodeVersion = pNodeVersion || process.versions.node; diff --git a/src/extract/ast-extractors/extract-amd-deps.js b/src/extract/ast-extractors/extract-amd-deps.js index 43598c955..788ccc793 100644 --- a/src/extract/ast-extractors/extract-amd-deps.js +++ b/src/extract/ast-extractors/extract-amd-deps.js @@ -5,11 +5,11 @@ const estreeHelpers = require("./estree-helpers"); function extractRegularAMDDependencies(pNode, pDependencies) { if (estreeHelpers.isLikelyAMDDefineOrRequire(pNode)) { pNode.expression.arguments - .filter(pArg => pArg.type === "ArrayExpression") - .forEach(arg => - arg.elements.forEach(el => { - if (Boolean(el.value) && typeof el.value === "string") { - el.value.split("!").forEach(pString => + .filter(pArgument => pArgument.type === "ArrayExpression") + .forEach(pArgument => + pArgument.elements.forEach(pElement => { + if (Boolean(pElement.value) && typeof pElement.value === "string") { + pElement.value.split("!").forEach(pString => pDependencies.push({ module: pString, moduleSystem: "amd", @@ -27,13 +27,13 @@ function extractCommonJSWrappers(pNode, pDependencies, pExoticRequireStrings) { if (estreeHelpers.isLikelyAMDDefine(pNode)) { pNode.expression.arguments .filter( - pArg => - pArg.type === "FunctionExpression" && - pArg.params.some( - pParam => - pParam.name === "require" || + pArgument => + pArgument.type === "FunctionExpression" && + pArgument.params.some( + pParameter => + pParameter.name === "require" || pExoticRequireStrings.some( - pExoticRequireString => pExoticRequireString === pParam.name + pExoticRequireString => pExoticRequireString === pParameter.name ) ) ) diff --git a/src/extract/ast-extractors/extract-cjs-deps.js b/src/extract/ast-extractors/extract-cjs-deps.js index 3d307fd72..c1ff2511d 100644 --- a/src/extract/ast-extractors/extract-cjs-deps.js +++ b/src/extract/ast-extractors/extract-cjs-deps.js @@ -2,15 +2,15 @@ const walk = require("acorn-walk"); const estreeHelpers = require("./estree-helpers"); function pryStringsFromArguments(pArguments) { - let lRetval = []; + let lReturnValue = []; if (estreeHelpers.firstArgumentIsAString(pArguments)) { - lRetval = pArguments[0].value.split("!"); + lReturnValue = pArguments[0].value.split("!"); } else if (estreeHelpers.firstArgumentIsATemplateLiteral(pArguments)) { - lRetval = [pArguments[0].quasis[0].value.cooked]; + lReturnValue = [pArguments[0].quasis[0].value.cooked]; } - return lRetval; + return lReturnValue; } function pushRequireCallsToDependencies( diff --git a/src/extract/ast-extractors/extract-typescript-deps.js b/src/extract/ast-extractors/extract-typescript-deps.js index b432668ac..d32fbe931 100644 --- a/src/extract/ast-extractors/extract-typescript-deps.js +++ b/src/extract/ast-extractors/extract-typescript-deps.js @@ -88,7 +88,7 @@ function extractTrippleSlashDirectives(pAST) { ); } -function firstArgIsAString(pASTNode) { +function firstArgumentIsAString(pASTNode) { const lFirstArgument = pASTNode.arguments[0]; return ( @@ -106,7 +106,7 @@ function isRequireCallExpression(pASTNode) { pASTNode.expression && typescript.SyntaxKind[pASTNode.expression.originalKeywordKind] === "RequireKeyword" && - firstArgIsAString(pASTNode) + firstArgumentIsAString(pASTNode) ); } @@ -115,7 +115,7 @@ function isSingleExoticRequire(pASTNode, pString) { typescript.SyntaxKind[pASTNode.kind] === "CallExpression" && pASTNode.expression && pASTNode.expression.text === pString && - firstArgIsAString(pASTNode) + firstArgumentIsAString(pASTNode) ); } @@ -133,7 +133,7 @@ function isCompositeExoticRequire(pASTNode, pObjectName, pPropertyName) { pASTNode.expression.name && typescript.SyntaxKind[pASTNode.expression.name.kind] === "Identifier" && pASTNode.expression.name.escapedText === pPropertyName && - firstArgIsAString(pASTNode) + firstArgumentIsAString(pASTNode) ); } @@ -150,7 +150,7 @@ function isDynamicImportExpression(pASTNode) { typescript.SyntaxKind[pASTNode.kind] === "CallExpression" && pASTNode.expression && typescript.SyntaxKind[pASTNode.expression.kind] === "ImportKeyword" && - firstArgIsAString(pASTNode) + firstArgumentIsAString(pASTNode) ); } diff --git a/src/extract/derive/circular/index.js b/src/extract/derive/circular/index.js index 49726a6e3..79abe3ee4 100644 --- a/src/extract/derive/circular/index.js +++ b/src/extract/derive/circular/index.js @@ -2,19 +2,19 @@ const getCycle = require("./get-cycle"); function addCircularityCheckToDependency(pToDep, pGraph, pFrom) { const lCycle = getCycle(pGraph, pFrom, pToDep.resolved); - let lRetval = { + let lReturnValue = { ...pToDep, circular: lCycle.length > 0 }; - if (lRetval.circular) { - lRetval = { - ...lRetval, + if (lReturnValue.circular) { + lReturnValue = { + ...lReturnValue, cycle: lCycle }; } - return lRetval; + return lReturnValue; } /** diff --git a/src/extract/derive/reachable/is-reachable.js b/src/extract/derive/reachable/is-reachable.js index 8d383da8e..41b9d0a32 100644 --- a/src/extract/derive/reachable/is-reachable.js +++ b/src/extract/derive/reachable/is-reachable.js @@ -11,7 +11,7 @@ const _memoize = require("lodash/memoize"); * @returns {boolean} - the result */ function isReachable(pGraph, pFrom, pTo, pVisited = new Set()) { - let lRetval = false; + let lReturnValue = false; const lNode = pGraph.find(pNode => pNode.source === pFrom); pVisited.add(pFrom); @@ -27,15 +27,15 @@ function isReachable(pGraph, pFrom, pTo, pVisited = new Set()) { pDirectDependency => pDirectDependency === pTo ) ) { - lRetval = true; + lReturnValue = true; } else { - lRetval = lDirectUnvisitedDependencies.some(pDirectDependency => + lReturnValue = lDirectUnvisitedDependencies.some(pDirectDependency => // eslint-disable-next-line no-use-before-define isReachableMemoized(pGraph, pDirectDependency, pTo, pVisited) ); } } - return lRetval; + return lReturnValue; } const isReachableMemoized = _memoize( diff --git a/src/extract/gather-initial-sources.js b/src/extract/gather-initial-sources.js index 7a324d46c..1aa94cb91 100644 --- a/src/extract/gather-initial-sources.js +++ b/src/extract/gather-initial-sources.js @@ -11,17 +11,22 @@ function matchesPattern(pFullPathToFile, pPattern) { return RegExp(pPattern, "g").test(pFullPathToFile); } -function gatherScannableFilesFromDir(pDirName, pOptions) { +function gatherScannableFilesFromDirectory(pDirectoryName, pOptions) { return fs - .readdirSync(pDirName) + .readdirSync(pDirectoryName) .reduce((pSum, pFileName) => { - if (fs.statSync(path.join(pDirName, pFileName)).isDirectory()) { + if (fs.statSync(path.join(pDirectoryName, pFileName)).isDirectory()) { return pSum.concat( - gatherScannableFilesFromDir(path.join(pDirName, pFileName), pOptions) + gatherScannableFilesFromDirectory( + path.join(pDirectoryName, pFileName), + pOptions + ) ); } - if (SUPPORTED_EXTENSIONS.some(pExt => pFileName.endsWith(pExt))) { - return pSum.concat(path.join(pDirName, pFileName)); + if ( + SUPPORTED_EXTENSIONS.some(pExtension => pFileName.endsWith(pExtension)) + ) { + return pSum.concat(path.join(pDirectoryName, pFileName)); } return pSum; }, []) @@ -47,7 +52,7 @@ function gatherScannableFilesFromDir(pDirName, pOptions) { * Files and directories are assumed to be either absolute, or relative to the * current working directory. * - * @param {array} pFileDirArray an array of strings, representing globs and/ or + * @param {array} pFileAndDirectoryArray an array of strings, representing globs and/ or * paths to files or directories to be gathered * @param {object} pOptions (optional) object with attributes * - exclude - regexp of what to exclude @@ -55,17 +60,17 @@ function gatherScannableFilesFromDir(pDirName, pOptions) { * @return {array} an array of strings, representing paths to * files to be gathered. */ -module.exports = (pFileDirArray, pOptions) => { +module.exports = (pFileAndDirectoryArray, pOptions) => { const lOptions = { baseDir: process.cwd(), ...pOptions }; - return pFileDirArray + return pFileAndDirectoryArray .reduce( (pAll, pThis) => pAll.concat(glob.sync(pThis, { cwd: lOptions.baseDir })), [] ) .reduce((pAll, pThis) => { if (fs.statSync(path.join(lOptions.baseDir, pThis)).isDirectory()) { - return pAll.concat(gatherScannableFilesFromDir(pThis, lOptions)); + return pAll.concat(gatherScannableFilesFromDirectory(pThis, lOptions)); } else { return pAll.concat(pThis); } diff --git a/src/extract/index.js b/src/extract/index.js index 6d30d8e61..830b25f79 100644 --- a/src/extract/index.js +++ b/src/extract/index.js @@ -48,13 +48,15 @@ function extractRecursive( : []; return lDependencies - .filter(pDep => pDep.followable && !pDep.matchesDoNotFollow) + .filter( + pDependency => pDependency.followable && !pDependency.matchesDoNotFollow + ) .reduce( - (pAll, pDep) => { - if (!pVisited.has(pDep.resolved)) { + (pAll, pDependency) => { + if (!pVisited.has(pDependency.resolved)) { return pAll.concat( extractRecursive( - pDep.resolved, + pDependency.resolved, pOptions, pVisited, pDepth + 1, @@ -74,8 +76,8 @@ function extractRecursive( ); } -function extractFileDirArray( - pFileDirArray, +function extractFileDirectoryArray( + pFileDirectoryArray, pOptions, pResolveOptions, pTSConfig @@ -83,7 +85,7 @@ function extractFileDirArray( let lVisited = new Set(); return _spread(_concat)( - gatherInitialSources(pFileDirArray, pOptions).reduce( + gatherInitialSources(pFileDirectoryArray, pOptions).reduce( (pDependencies, pFilename) => { if (!lVisited.has(pFilename)) { lVisited.add(pFilename); @@ -156,11 +158,11 @@ function makeOptionsPresentable(pOptions) { }, {}); } -function summarizeOptions(pFileDirArray, pOptions) { +function summarizeOptions(pFileDirectoryArray, pOptions) { return { optionsUsed: { ...makeOptionsPresentable(pOptions), - args: pFileDirArray.map(pathToPosix).join(" ") + args: pFileDirectoryArray.map(pathToPosix).join(" ") } }; } @@ -178,7 +180,7 @@ function addRuleSetUsed(pOptions) { } function filterExcludedDependencies(pModule, pExclude) { - // no need to do the 'path' thing as that was addressed in extractFileDirArray already + // no need to do the 'path' thing as that was addressed in extractFileDirectoryArray already return { ...pModule, dependencies: pModule.dependencies.filter( @@ -189,12 +191,17 @@ function filterExcludedDependencies(pModule, pExclude) { }; } -module.exports = (pFileDirArray, pOptions, pResolveOptions, pTSConfig) => { +module.exports = ( + pFileDirectoryArray, + pOptions, + pResolveOptions, + pTSConfig +) => { clearCaches(); let lModules = _uniqBy( - extractFileDirArray( - pFileDirArray, + extractFileDirectoryArray( + pFileDirectoryArray, pOptions, pResolveOptions, pTSConfig @@ -212,7 +219,7 @@ module.exports = (pFileDirArray, pOptions, pResolveOptions, pTSConfig) => { modules: lModules, summary: Object.assign( summarize(lModules, pOptions.ruleSet), - summarizeOptions(pFileDirArray, pOptions), + summarizeOptions(pFileDirectoryArray, pOptions), pOptions.ruleSet ? { ruleSetUsed: addRuleSetUsed(pOptions) } : {} ) }; diff --git a/src/extract/parse/to-typescript-ast.js b/src/extract/parse/to-typescript-ast.js index 4cd0745df..e38c743a5 100644 --- a/src/extract/parse/to-typescript-ast.js +++ b/src/extract/parse/to-typescript-ast.js @@ -31,6 +31,7 @@ function getASTFromSource(pTypescriptSource, pFileName) { * @return {object} - a (typescript) AST */ function getAST(pFileName) { + // reading files is kind of the point, so disabled that check here... return getASTFromSource(fs.readFileSync(pFileName, "utf8"), pFileName); } diff --git a/src/extract/resolve/determine-dependency-types.js b/src/extract/resolve/determine-dependency-types.js index 3dbc5a34b..9a7ec0f9e 100644 --- a/src/extract/resolve/determine-dependency-types.js +++ b/src/extract/resolve/determine-dependency-types.js @@ -10,21 +10,21 @@ const npm2depType = { peerDependencies: "npm-peer" }; -function determineNpmDependencyTypes(pModuleName, pPackageDeps) { - let lRetval = ["npm-unknown"]; +function determineNpmDependencyTypes(pModuleName, pPackageDependencies) { + let lReturnValue = ["npm-unknown"]; - if (Boolean(pPackageDeps)) { - lRetval = Object.keys(pPackageDeps) + if (Boolean(pPackageDependencies)) { + lReturnValue = Object.keys(pPackageDependencies) .filter( pKey => pKey.includes("ependencies") && - pPackageDeps[pKey].hasOwnProperty(pModuleName) + pPackageDependencies[pKey].hasOwnProperty(pModuleName) ) .map(pKey => npm2depType[pKey] || "npm-no-pkg"); - lRetval = lRetval.length === 0 ? ["npm-no-pkg"] : lRetval; + lReturnValue = lReturnValue.length === 0 ? ["npm-no-pkg"] : lReturnValue; } - return lRetval; + return lReturnValue; } /* @@ -32,26 +32,26 @@ function determineNpmDependencyTypes(pModuleName, pPackageDeps) { * an array, and not an object, hence needs different treatment */ function dependencyIsBundled(pModule, pPackageDeps) { - let lRetval = false; + let lReturnValue = false; if (Boolean(pPackageDeps)) { const lBundledDependencies = pPackageDeps.bundledDependencies || pPackageDeps.bundleDependencies; if (lBundledDependencies) { - lRetval = lBundledDependencies.some(pDep => pDep === pModule); + lReturnValue = lBundledDependencies.some(pDep => pDep === pModule); } } - return lRetval; + return lReturnValue; } function determineNodeModuleDependencyTypes( pModuleName, pPackageDeps, - pFileDir, + pFileDirectory, pResolveOptions ) { - let lRetval = determineNpmDependencyTypes( + let lReturnValue = determineNpmDependencyTypes( localNpmHelpers.getPackageRoot(pModuleName), pPackageDeps ); @@ -59,16 +59,16 @@ function determineNodeModuleDependencyTypes( if ( localNpmHelpers.dependencyIsDeprecated( pModuleName, - pFileDir, + pFileDirectory, pResolveOptions ) ) { - lRetval.push("deprecated"); + lReturnValue.push("deprecated"); } if (dependencyIsBundled(pModuleName, pPackageDeps)) { - lRetval.push("npm-bundled"); + lReturnValue.push("npm-bundled"); } - return lRetval; + return lReturnValue; } function isNodeModule(pDependency) { @@ -79,25 +79,29 @@ function determineModuleDependencyTypes( pDependency, pModuleName, pPackageDeps, - pFileDir, + pFileDirectory, pResolveOptions ) { - let lRetval = []; + let lReturnValue = []; if (isNodeModule(pDependency)) { - lRetval = determineNodeModuleDependencyTypes( + lReturnValue = determineNodeModuleDependencyTypes( pModuleName, pPackageDeps, - pFileDir, + pFileDirectory, pResolveOptions ); } else { - lRetval = ["localmodule"]; + lReturnValue = ["localmodule"]; } - return lRetval; + return lReturnValue; } -function isModule(pDependency, pModules = ["node_modules"], pBaseDir = ".") { +function isModule( + pDependency, + pModules = ["node_modules"], + pBaseDirectory = "." +) { return pModules.some( // pModules can contain relative paths, but also absolute ones. // WebPack treats these differently: @@ -109,7 +113,9 @@ function isModule(pDependency, pModules = ["node_modules"], pBaseDir = ".") { // reference: https://webpack.js.org/configuration/resolve/#resolve-modules pModule => { if (path.isAbsolute(pModule)) { - return path.resolve(pBaseDir, pDependency.resolved).startsWith(pModule); + return path + .resolve(pBaseDirectory, pDependency.resolved) + .startsWith(pModule); } return pDependency.resolved.includes(pModule); } @@ -148,9 +154,9 @@ function isAliassy(pModuleName, pDependency, pResolveOptions) { * @param {any} pDependency the dependency object with all information found hitherto * @param {string} pModuleName the module name as found in the source * @param {any} pPackageDeps a package.json, in object format - * @param {string} pFileDir the directory relative to which to resolve (only used for npm deps here) + * @param {string} pFileDirectory the directory relative to which to resolve (only used for npm deps here) * @param {any} pResolveOptions an enhanced resolve 'resolve' key - * @param {string} pBaseDir the base directory dependency cruise is run on + * @param {string} pBaseDirectory the base directory dependency cruise is run on * * @return {string[]} an array of dependency types for the dependency */ @@ -158,38 +164,38 @@ module.exports = ( pDependency, pModuleName, pPackageDeps, - pFileDir, + pFileDirectory, pResolveOptions, - pBaseDir + pBaseDirectory ) => { - let lRetval = ["undetermined"]; + let lReturnValue = ["undetermined"]; pResolveOptions = pResolveOptions || {}; if (pDependency.couldNotResolve) { - lRetval = ["unknown"]; + lReturnValue = ["unknown"]; } else if (isCore(pModuleName)) { // this 'isCore' business seems duplicate (it's already in // the passed object as `coreModule`- determined by the resolve-AMD or // resolve-commonJS module). I want to deprecate the `coreModule` // attribute in favor of this one and determining it here will make // live easier in the future - lRetval = ["core"]; + lReturnValue = ["core"]; } else if (isRelativeModuleName(pModuleName)) { - lRetval = ["local"]; - } else if (isModule(pDependency, pResolveOptions.modules, pBaseDir)) { - lRetval = determineModuleDependencyTypes( + lReturnValue = ["local"]; + } else if (isModule(pDependency, pResolveOptions.modules, pBaseDirectory)) { + lReturnValue = determineModuleDependencyTypes( pDependency, pModuleName, pPackageDeps, - pFileDir, + pFileDirectory, pResolveOptions ); } else if (isAliassy(pModuleName, pDependency, pResolveOptions)) { - lRetval = ["aliased"]; + lReturnValue = ["aliased"]; } - return lRetval; + return lReturnValue; }; /* eslint security/detect-object-injection: 0*/ diff --git a/src/extract/resolve/index.js b/src/extract/resolve/index.js index 34682a5aa..db304aa8e 100644 --- a/src/extract/resolve/index.js +++ b/src/extract/resolve/index.js @@ -5,28 +5,33 @@ const isRelativeModuleName = require("./is-relative-module-name"); const resolveAMD = require("./resolve-amd"); const resolveCommonJS = require("./resolve-cjs"); -function resolveModule(pDependency, pBaseDir, pFileDir, pResolveOptions) { - let lRetval = null; +function resolveModule( + pDependency, + pBaseDirectory, + pFileDirectory, + pResolveOptions +) { + let lReturnValue = null; if ( isRelativeModuleName(pDependency.module) || ["cjs", "es6"].includes(pDependency.moduleSystem) ) { - lRetval = resolveCommonJS( + lReturnValue = resolveCommonJS( pDependency.module, - pBaseDir, - pFileDir, + pBaseDirectory, + pFileDirectory, pResolveOptions ); } else { - lRetval = resolveAMD( + lReturnValue = resolveAMD( pDependency.module, - pBaseDir, - pFileDir, + pBaseDirectory, + pFileDirectory, pResolveOptions ); } - return lRetval; + return lReturnValue; } /** @@ -34,9 +39,9 @@ function resolveModule(pDependency, pBaseDir, pFileDir, pResolveOptions) { * * @param {object} pDependency an object with a module and the moduleSystem * according to which this is a dependency - * @param {string} pBaseDir the directory to consider as base (or 'root') + * @param {string} pBaseDirectory the directory to consider as base (or 'root') * for resolved files. - * @param {string} pFileDir the directory of the file the dependency was + * @param {string} pFileDirectory the directory of the file the dependency was * detected in * @param {object} pResolveOptions an object with options to pass to the resolver * see https://github.com/webpack/enhanced-resolve#resolver-options @@ -63,11 +68,16 @@ function resolveModule(pDependency, pBaseDir, pFileDir, pResolveOptions) { * - dependencyTypes: an array of dependencyTypes * */ -module.exports = (pDependency, pBaseDir, pFileDir, pResolveOptions) => { +module.exports = ( + pDependency, + pBaseDirectory, + pFileDirectory, + pResolveOptions +) => { let lResolvedModule = resolveModule( pDependency, - pBaseDir, - pFileDir, + pBaseDirectory, + pFileDirectory, pResolveOptions ); @@ -79,8 +89,10 @@ module.exports = (pDependency, pBaseDir, pFileDir, pResolveOptions) => { try { lResolvedModule.resolved = pathToPosix( path.relative( - pBaseDir, - fs.realpathSync(path.resolve(pBaseDir, lResolvedModule.resolved)) + pBaseDirectory, + fs.realpathSync( + path.resolve(pBaseDirectory, lResolvedModule.resolved) + ) ) ); } catch (pError) { diff --git a/src/extract/resolve/is-followable.js b/src/extract/resolve/is-followable.js index c359ffc8e..da00c99a4 100644 --- a/src/extract/resolve/is-followable.js +++ b/src/extract/resolve/is-followable.js @@ -4,7 +4,7 @@ let gFollowableExtensions = new Set(); let gFollowableExtensionsInitialized = false; function initFollowableExtensions(pResolveOptions) { - let lRetval = new Set(pResolveOptions.extensions); + let lReturnValue = new Set(pResolveOptions.extensions); // we could include things like pictures, movies, html, xml // etc in KNOWN_UNFOLLOWABLES as well. Typically in @@ -27,9 +27,9 @@ function initFollowableExtensions(pResolveOptions) { ]; KNOWN_UNFOLLOWABLES.forEach(pUnfollowable => { - lRetval.delete(pUnfollowable); + lReturnValue.delete(pUnfollowable); }); - return lRetval; + return lReturnValue; } function init(pResolveOptions) { diff --git a/src/extract/resolve/local-npm-helpers.js b/src/extract/resolve/local-npm-helpers.js index e9db2cee6..7843ce99f 100644 --- a/src/extract/resolve/local-npm-helpers.js +++ b/src/extract/resolve/local-npm-helpers.js @@ -58,84 +58,84 @@ function getPackageRoot(pModule) { /** * returns the contents of the package.json of the given pModule as it would - * resolve from pBaseDir + * resolve from pBaseDirectory * * e.g. to get the package.json of `lodash` that is required bya * `src/report/something.js` use `getPackageJSON('lodash', 'src/report/');` * - * The pBaseDir parameter is necessary because dependency-cruiser/ this module + * The pBaseDirectory parameter is necessary because dependency-cruiser/ this module * will have a different base dir, and will hence resolve either to the * wrong package or not to a package at all. * * @param {string} pModule The module to get the package.json of - * @param {string} pBaseDir The base dir. Defaults to '.' + * @param {string} pBaseDirectory The base dir. Defaults to '.' * @param {any} pResolveOptions options for the resolver * @return {object} The package.json as a javascript object, or * null if either module or package.json could * not be found */ -function bareGetPackageJson(pModule, pBaseDir, pResolveOptions) { - let lRetval = null; +function bareGetPackageJson(pModule, pBaseDirectory, pResolveOptions) { + let lReturnValue = null; try { let lPackageJsonFilename = resolve( path.join(getPackageRoot(pModule), "package.json"), - pBaseDir ? pBaseDir : ".", + pBaseDirectory ? pBaseDirectory : ".", pResolveOptions ); - lRetval = JSON.parse(fs.readFileSync(lPackageJsonFilename, "utf8")); + lReturnValue = JSON.parse(fs.readFileSync(lPackageJsonFilename, "utf8")); } catch (pError) { // left empty on purpose } - return lRetval; + return lReturnValue; } const getPackageJson = _memoize( bareGetPackageJson, - (pModule, pBaseDir) => `${pBaseDir}|${pModule}` + (pModule, pBaseDirectory) => `${pBaseDirectory}|${pModule}` ); /** - * Tells whether the pModule as resolved to pBaseDir is deprecated + * Tells whether the pModule as resolved to pBaseDirectory is deprecated * * @param {string} pModule The module to get the deprecation status of - * @param {string} pBaseDir The base dir. Defaults to '.' + * @param {string} pBaseDirectory The base dir. Defaults to '.' * @param {any} pResolveOptions options for the resolver * @return {boolean} true if deprecated, false in all other cases */ -function dependencyIsDeprecated(pModule, pBaseDir, pResolveOptions) { - let lRetval = false; - let lPackageJson = getPackageJson(pModule, pBaseDir, pResolveOptions); +function dependencyIsDeprecated(pModule, pBaseDirectory, pResolveOptions) { + let lReturnValue = false; + let lPackageJson = getPackageJson(pModule, pBaseDirectory, pResolveOptions); if (Boolean(lPackageJson)) { - lRetval = + lReturnValue = lPackageJson.hasOwnProperty("deprecated") && lPackageJson.deprecated; } - return lRetval; + return lReturnValue; } /** - * Returns the license of pModule as resolved to pBaseDir - if any + * Returns the license of pModule as resolved to pBaseDirectory - if any * * @param {string} pModule The module to get the deprecation status of - * @param {string} pBaseDir The base dir. Defaults to '.' + * @param {string} pBaseDirectory The base dir. Defaults to '.' * @param {any} pResolveOptions options for the resolver * @return {string} The module's license string, or '' in case * there is no package.json or no license field */ -function getLicense(pModule, pBaseDir, pResolveOptions) { - let lRetval = ""; - let lPackageJson = getPackageJson(pModule, pBaseDir, pResolveOptions); +function getLicense(pModule, pBaseDirectory, pResolveOptions) { + let lReturnValue = ""; + let lPackageJson = getPackageJson(pModule, pBaseDirectory, pResolveOptions); if ( Boolean(lPackageJson) && lPackageJson.hasOwnProperty("license") && typeof lPackageJson.license === "string" ) { - lRetval = lPackageJson.license; + lReturnValue = lPackageJson.license; } - return lRetval; + return lReturnValue; } function clearCache() { diff --git a/src/extract/resolve/read-package-deps/index.js b/src/extract/resolve/read-package-deps/index.js index ea00bc8f8..38aa01b47 100644 --- a/src/extract/resolve/read-package-deps/index.js +++ b/src/extract/resolve/read-package-deps/index.js @@ -10,97 +10,103 @@ const mergePackages = require("./merge-packages"); * * This behavior is consistent with node's lookup mechanism * - * @param {string} pFileDir the folder relative to which to find + * @param {string} pFileDirectory the folder relative to which to find * the package.json * @return {any} the contents of the package.json as a javascript * object or null if the package.json could not be * found or is invalid */ -const readPackageDeps = _memoize(pFileDir => { - let lRetval = null; +const readPackageDeps = _memoize(pFileDirectory => { + let lReturnValue = null; try { - // find the closest package.json from pFileDir + // find the closest package.json from pFileDirectory const lPackageContent = fs.readFileSync( - path.join(pFileDir, "package.json"), + path.join(pFileDirectory, "package.json"), "utf8" ); try { - lRetval = JSON.parse(lPackageContent); + lReturnValue = JSON.parse(lPackageContent); } catch (pError) { // left empty on purpose } } catch (pError) { - const lNextDir = path.dirname(pFileDir); + const lNextDirectory = path.dirname(pFileDirectory); - if (lNextDir !== pFileDir) { + if (lNextDirectory !== pFileDirectory) { // not yet reached root directory - lRetval = readPackageDeps(lNextDir); + lReturnValue = readPackageDeps(lNextDirectory); } } - return lRetval; + return lReturnValue; }); -function maybeReadPackage(pFileDir) { - let lRetval = {}; +function maybeReadPackage(pFileDirectory) { + let lReturnValue = {}; try { const lPackageContent = fs.readFileSync( - path.join(pFileDir, "package.json"), + path.join(pFileDirectory, "package.json"), "utf8" ); try { - lRetval = JSON.parse(lPackageContent); + lReturnValue = JSON.parse(lPackageContent); } catch (pError) { // left empty on purpose } } catch (pError) { // left empty on purpose } - return lRetval; + return lReturnValue; } -function getIntermediatePaths(pFileDir, pBaseDir) { - let lRetval = []; - let lIntermediate = pFileDir; +function getIntermediatePaths(pFileDirectory, pBaseDirectory) { + let lReturnValue = []; + let lIntermediate = pFileDirectory; while ( - lIntermediate !== pBaseDir && - // safety hatch in case pBaseDir is either not a part of - // pFileDir or not something uniquely comparable to a + lIntermediate !== pBaseDirectory && + // safety hatch in case pBaseDirectory is either not a part of + // pFileDirectory or not something uniquely comparable to a // dirname lIntermediate !== path.dirname(lIntermediate) ) { - lRetval.push(lIntermediate); + lReturnValue.push(lIntermediate); lIntermediate = path.dirname(lIntermediate); } - lRetval.push(pBaseDir); - return lRetval; + lReturnValue.push(pBaseDirectory); + return lReturnValue; } // despite the two parameters there's no resolver function provided -// to the _.memoize. This is deliberate - the pBaseDir will typically +// to the _.memoize. This is deliberate - the pBaseDirectory will typically // be the same for each call in a typical cruise, so the lodash' // default memoize resolver (the first param) will suffice. -const readPackageDepsCombined = _memoize((pFileDir, pBaseDir) => { +const readPackageDepsCombined = _memoize((pFileDirectory, pBaseDirectory) => { // The way this is called, this shouldn't happen. If it is, there's // something gone terribly awry - if (!pFileDir.startsWith(pBaseDir) || pBaseDir.endsWith(path.sep)) { + if ( + !pFileDirectory.startsWith(pBaseDirectory) || + pBaseDirectory.endsWith(path.sep) + ) { throw new Error( - `Unexpected Error: Unusal baseDir passed to package reading function: '${pBaseDir}'\n` + + `Unexpected Error: Unusal baseDir passed to package reading function: '${pBaseDirectory}'\n` + `Please file a bug: https://github.com/sverweij/dependency-cruiser/issues/new?template=bug-report.md` + - `&title=Unexpected Error: Unusal baseDir passed to package reading function: '${pBaseDir}'` + `&title=Unexpected Error: Unusal baseDir passed to package reading function: '${pBaseDirectory}'` ); } - const lRetval = getIntermediatePaths(pFileDir, pBaseDir).reduce( + const lReturnValue = getIntermediatePaths( + pFileDirectory, + pBaseDirectory + ).reduce( (pAll, pCurrent) => mergePackages(pAll, maybeReadPackage(pCurrent)), {} ); - return Object.keys(lRetval).length > 0 ? lRetval : null; + return Object.keys(lReturnValue).length > 0 ? lReturnValue : null; }); /** @@ -110,20 +116,24 @@ const readPackageDepsCombined = _memoize((pFileDir, pBaseDir) => { * - the 'combined' contents of all package.jsons between the passed folder * and the 'root' folder (the folder the cruise was run from) in * all other cases - * @param {string} pFileDir the folder relative to which to find + * @param {string} pFileDirectory the folder relative to which to find * the (closest) package.json - * @param {string} pBaseDir the directory to consider as base (or 'root') + * @param {string} pBaseDirectory the directory to consider as base (or 'root') * @param {Boolean} pCombinedDependencies whether to stop (false) or continue * searching until the 'root' * @return {any} the contents of a package.json as a javascript * object or null if a package.json could not be * found or is invalid */ -module.exports = (pFileDir, pBaseDir, pCombinedDependencies = false) => { +module.exports = ( + pFileDirectory, + pBaseDirectory, + pCombinedDependencies = false +) => { if (pCombinedDependencies) { - return readPackageDepsCombined(pFileDir, pBaseDir); + return readPackageDepsCombined(pFileDirectory, pBaseDirectory); } else { - return readPackageDeps(pFileDir); + return readPackageDeps(pFileDirectory); } }; module.exports.clearCache = () => { diff --git a/src/extract/resolve/read-package-deps/merge-packages.js b/src/extract/resolve/read-package-deps/merge-packages.js index 2a1bc3743..d822319e9 100644 --- a/src/extract/resolve/read-package-deps/merge-packages.js +++ b/src/extract/resolve/read-package-deps/merge-packages.js @@ -3,13 +3,13 @@ const _get = require("lodash/get"); const _clone = require("lodash/clone"); function normalizePackageKeys(pPackage) { - let lRetval = pPackage; + let lReturnValue = pPackage; if (pPackage.bundleDependencies) { pPackage.bundledDependencies = _clone(pPackage.bundleDependencies); Reflect.deleteProperty(pPackage, "bundleDependencies"); } - return lRetval; + return lReturnValue; } function mergeDependencyKey(pClosestDependencyKey, pFurtherDependencyKey) { diff --git a/src/extract/resolve/resolve-amd.js b/src/extract/resolve/resolve-amd.js index b6fbcca21..099e1bbb1 100644 --- a/src/extract/resolve/resolve-amd.js +++ b/src/extract/resolve/resolve-amd.js @@ -17,7 +17,12 @@ const fileExists = memoize(pFile => { return true; }); -module.exports = (pModuleName, pBaseDir, pFileDir, pResolveOptions) => { +module.exports = ( + pModuleName, + pBaseDirectory, + pFileDirectory, + pResolveOptions +) => { // lookups: // - [x] could be relative in the end (implemented) // - [ ] require.config kerfuffle (command line, html, file, ...) @@ -25,9 +30,12 @@ module.exports = (pModuleName, pBaseDir, pFileDir, pResolveOptions) => { // - [ ] or https://github.com/jaredhanson/amd-resolve ? // - [x] funky plugins (json!wappie, ./screeching-cat!sabertooth) -> fixed in 'extract' const lProbablePath = pathToPosix( - path.relative(pBaseDir, path.join(pFileDir, `${pModuleName}.js`)) + path.relative( + pBaseDirectory, + path.join(pFileDirectory, `${pModuleName}.js`) + ) ); - let lRetval = { + let lReturnValue = { resolved: fileExists(lProbablePath) ? lProbablePath : pModuleName, coreModule: Boolean(isCore(pModuleName)), followable: fileExists(lProbablePath), @@ -36,15 +44,19 @@ module.exports = (pModuleName, pBaseDir, pFileDir, pResolveOptions) => { // we might want to use resolve options instead of {} here return { - ...lRetval, - ...resolveHelpers.addLicenseAttribute(pModuleName, pBaseDir, {}), + ...lReturnValue, + ...resolveHelpers.addLicenseAttribute(pModuleName, pBaseDirectory, {}), dependencyTypes: determineDependencyTypes( - lRetval, + lReturnValue, pModuleName, - readPackageDeps(pFileDir, pBaseDir, pResolveOptions.combinedDependencies), - pFileDir, + readPackageDeps( + pFileDirectory, + pBaseDirectory, + pResolveOptions.combinedDependencies + ), + pFileDirectory, pResolveOptions, - pBaseDir + pBaseDirectory ) }; }; diff --git a/src/extract/resolve/resolve-cjs.js b/src/extract/resolve/resolve-cjs.js index 592da7b96..f243f38b4 100644 --- a/src/extract/resolve/resolve-cjs.js +++ b/src/extract/resolve/resolve-cjs.js @@ -8,55 +8,75 @@ const resolve = require("./resolve"); const isFollowable = require("./is-followable"); function addResolutionAttributes( - pBaseDir, + pBaseDirectory, pModuleName, - pFileDir, + pFileDirectory, pResolveOptions ) { - let lRetval = {}; + let lReturnValue = {}; if (isCore(pModuleName)) { - lRetval.coreModule = true; + lReturnValue.coreModule = true; } else { try { - lRetval.resolved = pathToPosix( - path.relative(pBaseDir, resolve(pModuleName, pFileDir, pResolveOptions)) + lReturnValue.resolved = pathToPosix( + path.relative( + pBaseDirectory, + resolve(pModuleName, pFileDirectory, pResolveOptions) + ) + ); + lReturnValue.followable = isFollowable( + lReturnValue.resolved, + pResolveOptions ); - lRetval.followable = isFollowable(lRetval.resolved, pResolveOptions); } catch (pError) { - lRetval.couldNotResolve = true; + lReturnValue.couldNotResolve = true; } } - return lRetval; + return lReturnValue; } /* * resolves both CommonJS and ES6 */ -module.exports = (pModuleName, pBaseDir, pFileDir, pResolveOptions) => { - let lRetval = { +module.exports = ( + pModuleName, + pBaseDirectory, + pFileDirectory, + pResolveOptions +) => { + let lReturnValue = { resolved: pModuleName, coreModule: false, followable: false, couldNotResolve: false, dependencyTypes: ["undetermined"], - ...addResolutionAttributes(pBaseDir, pModuleName, pFileDir, pResolveOptions) + ...addResolutionAttributes( + pBaseDirectory, + pModuleName, + pFileDirectory, + pResolveOptions + ) }; return { - ...lRetval, + ...lReturnValue, ...resolveHelpers.addLicenseAttribute( pModuleName, - pBaseDir, + pBaseDirectory, pResolveOptions ), dependencyTypes: determineDependencyTypes( - lRetval, + lReturnValue, pModuleName, - readPackageDeps(pFileDir, pBaseDir, pResolveOptions.combinedDependencies), - pFileDir, + readPackageDeps( + pFileDirectory, + pBaseDirectory, + pResolveOptions.combinedDependencies + ), + pFileDirectory, pResolveOptions, - pBaseDir + pBaseDirectory ) }; }; diff --git a/src/extract/resolve/resolve-helpers.js b/src/extract/resolve/resolve-helpers.js index 469d86eb1..809a293f4 100644 --- a/src/extract/resolve/resolve-helpers.js +++ b/src/extract/resolve/resolve-helpers.js @@ -1,17 +1,17 @@ const localNpmHelpers = require("./local-npm-helpers"); module.exports = { - addLicenseAttribute(pModuleName, pBaseDir, pResolveOptions) { - let lRetval = {}; + addLicenseAttribute(pModuleName, pBaseDirectory, pResolveOptions) { + let lReturnValue = {}; const lLicense = localNpmHelpers.getLicense( pModuleName, - pBaseDir, + pBaseDirectory, pResolveOptions ); if (Boolean(lLicense)) { - lRetval.license = lLicense; + lReturnValue.license = lLicense; } - return lRetval; + return lReturnValue; } }; diff --git a/src/extract/resolve/resolve.js b/src/extract/resolve/resolve.js index 134cd57ae..a86709930 100644 --- a/src/extract/resolve/resolve.js +++ b/src/extract/resolve/resolve.js @@ -1,6 +1,6 @@ const enhancedResolve = require("enhanced-resolve"); const pathToPosix = require("../utl/path-to-posix"); -const stripQueryParams = require("../utl/strip-query-params"); +const stripQueryParameters = require("../utl/strip-query-parameters"); let gResolver = null; let gInitialized = {}; @@ -23,7 +23,7 @@ function init(pResolveOptions, pCachingContext) { * Resolves the given module to a path to a file on disk. * * @param {string} pModuleName The module name to resolve (e.g. 'slodash', './myModule') - * @param {string} pFileDir The directory from which to resolve the module + * @param {string} pFileDirectory The directory from which to resolve the module * @param {any} pResolveOptions Options to pass to enhanced resolve * @param {any} pCachingContext - caching * @@ -31,17 +31,17 @@ function init(pResolveOptions, pCachingContext) { */ function resolve( pModuleName, - pFileDir, + pFileDirectory, pResolveOptions, pCachingContext = "cruise" ) { init(pResolveOptions, pCachingContext); - return stripQueryParams( + return stripQueryParameters( gResolver.resolveSync( {}, // lookupStartPath - pathToPosix(pFileDir), + pathToPosix(pFileDirectory), // request pModuleName ) diff --git a/src/extract/summarize.js b/src/extract/summarize.js index 89e85ff9f..6a51ab19b 100644 --- a/src/extract/summarize.js +++ b/src/extract/summarize.js @@ -49,7 +49,7 @@ function extractDependencyViolations(pModules, pRuleSet) { .map(pModule => pModule.dependencies.map(pDep => pDep.rules.map(pRule => { - let lRetval = { + let lReturnValue = { from: pModule.source, to: pDep.resolved, rule: pRule @@ -59,13 +59,13 @@ function extractDependencyViolations(pModules, pRuleSet) { pDep.cycle && _get(findRuleByName(pRuleSet, pRule.name), "to.circular") ) { - lRetval = { - ...lRetval, + lReturnValue = { + ...lReturnValue, cycle: pDep.cycle }; } - return lRetval; + return lReturnValue; }) ) ) diff --git a/src/extract/transpile/coffeescript-wrap.js b/src/extract/transpile/coffeescript-wrap.js index 80f62239a..d6fe9a844 100644 --- a/src/extract/transpile/coffeescript-wrap.js +++ b/src/extract/transpile/coffeescript-wrap.js @@ -7,19 +7,19 @@ const $package = require("../../../package.json"); * As long as that is happening: first try coffeescript, then coffee-script. */ function getCoffeeScriptModule() { - let lRetval = tryRequire( + let lReturnValue = tryRequire( "coffeescript", $package.supportedTranspilers.coffeescript ); /* istanbul ignore if*/ - if (lRetval === false) { - lRetval = tryRequire( + if (lReturnValue === false) { + lReturnValue = tryRequire( "coffee-script", $package.supportedTranspilers["coffee-script"] ); } - return lRetval; + return lReturnValue; } const coffeeScript = getCoffeeScriptModule(); diff --git a/src/extract/utl/get-extension.js b/src/extract/utl/get-extension.js index 56cb12a94..fc06d9deb 100644 --- a/src/extract/utl/get-extension.js +++ b/src/extract/utl/get-extension.js @@ -11,10 +11,10 @@ const path = require("path"); * @return {string} extension */ module.exports = pFileName => { - let lRetval = path.extname(pFileName); + let lReturnValue = path.extname(pFileName); - if (lRetval === ".md") { - return pFileName.endsWith(".coffee.md") ? ".coffee.md" : lRetval; + if (lReturnValue === ".md") { + return pFileName.endsWith(".coffee.md") ? ".coffee.md" : lReturnValue; } - return lRetval; + return lReturnValue; }; diff --git a/src/extract/utl/strip-query-params.js b/src/extract/utl/strip-query-parameters.js similarity index 89% rename from src/extract/utl/strip-query-params.js rename to src/extract/utl/strip-query-parameters.js index dc63c49fe..cbdb48b96 100644 --- a/src/extract/utl/strip-query-params.js +++ b/src/extract/utl/strip-query-parameters.js @@ -8,7 +8,7 @@ * @param {string} pFilenameString string to strip the query parameters from * @returns {string} the stripped string */ -module.exports = function stripQueryParams(pFilenameString) { +module.exports = function stripQueryParameters(pFilenameString) { // url.parse(pFilenameString).pathname did this quite admirably, but it's // deprecated, hence this fonky RE replace. And accompanying unit test :-/ return pFilenameString.replace(/\?.+$/, ""); diff --git a/src/main/files-and-dirs/normalize.js b/src/main/files-and-dirs/normalize.js index 839bd6389..8dcda4256 100644 --- a/src/main/files-and-dirs/normalize.js +++ b/src/main/files-and-dirs/normalize.js @@ -1,12 +1,13 @@ const path = require("path"); -function relativize(pFileDir) { - // if pFileDir === process.cwd() path.relative will yield an empty string +function relativize(pFileDirectory) { + // if pFileDirectory === process.cwd() path.relative will yield an empty string // whereas we actually want something non-empty => hence normalize // the thing - return path.isAbsolute(pFileDir) - ? path.normalize(path.relative(process.cwd(), pFileDir)) - : pFileDir; + return path.isAbsolute(pFileDirectory) + ? path.normalize(path.relative(process.cwd(), pFileDirectory)) + : pFileDirectory; } -module.exports = pFileDirArray => pFileDirArray.map(relativize); +module.exports = pFileAndDirectoryArray => + pFileAndDirectoryArray.map(relativize); diff --git a/src/main/index.js b/src/main/index.js index 21edd62eb..22fa90430 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -3,7 +3,7 @@ const extract = require("../extract"); const cruiseResultSchema = require("../schema/cruise-result.schema.json"); const meta = require("../extract/transpile/meta"); const report = require("../report"); -const normalizeFilesAndDirs = require("./files-and-dirs/normalize"); +const normalizeFilesAndDirectories = require("./files-and-dirs/normalize"); const validateRuleSet = require("./rule-set/validate"); const normalizeRuleSet = require("./rule-set/normalize"); const validateOptions = require("./options/validate"); @@ -27,7 +27,7 @@ function format(pResult, pOutputType) { // see [api.md](../../doc/api.md) and/ or the // [type definition](../../types/depencency-cruiser.d.ts) for details -function cruise(pFileDirArray, pOptions, pResolveOptions, pTSConfig) { +function cruise(pFileAndDirectoryArray, pOptions, pResolveOptions, pTSConfig) { pOptions = normalizeOptions(validateOptions(pOptions)); if (Boolean(pOptions.ruleSet)) { @@ -35,7 +35,7 @@ function cruise(pFileDirArray, pOptions, pResolveOptions, pTSConfig) { } const lExtractionResult = extract( - normalizeFilesAndDirs(pFileDirArray), + normalizeFilesAndDirectories(pFileAndDirectoryArray), pOptions, normalizeResolveOptions(pResolveOptions, pOptions, pTSConfig), pTSConfig diff --git a/src/main/options/normalize.js b/src/main/options/normalize.js index b0dc92cc1..f17de03fe 100644 --- a/src/main/options/normalize.js +++ b/src/main/options/normalize.js @@ -16,17 +16,19 @@ function normalizeFilterOption(pFilterOption) { } module.exports = pOptions => { - let lRetval = { + let lReturnValue = { baseDir: process.cwd(), ...defaults, ...pOptions }; - lRetval.maxDepth = parseInt(lRetval.maxDepth, 10); - lRetval.moduleSystems = uniq(lRetval.moduleSystems.sort()); - lRetval.doNotFollow = normalizeFilterOption(lRetval.doNotFollow); - lRetval.exclude = normalizeFilterOption(lRetval.exclude); - lRetval.exoticRequireStrings = uniq(lRetval.exoticRequireStrings.sort()); + lReturnValue.maxDepth = parseInt(lReturnValue.maxDepth, 10); + lReturnValue.moduleSystems = uniq(lReturnValue.moduleSystems.sort()); + lReturnValue.doNotFollow = normalizeFilterOption(lReturnValue.doNotFollow); + lReturnValue.exclude = normalizeFilterOption(lReturnValue.exclude); + lReturnValue.exoticRequireStrings = uniq( + lReturnValue.exoticRequireStrings.sort() + ); - return lRetval; + return lReturnValue; }; diff --git a/src/main/options/validate.js b/src/main/options/validate.js index 9f5d3223f..46c17e3b5 100644 --- a/src/main/options/validate.js +++ b/src/main/options/validate.js @@ -54,7 +54,7 @@ function validatePathsSafety(pFilterOption) { } function validate(pOptions) { - let lRetval = {}; + let lReturnValue = {}; if (Boolean(pOptions)) { // neccessary because can slip through the cracks when passed as a cli parameter @@ -72,11 +72,11 @@ function validate(pOptions) { validateMaxDepth(pOptions.maxDepth); if (_get(pOptions, "ruleSet.options")) { - lRetval = validate(pOptions.ruleSet.options); + lReturnValue = validate(pOptions.ruleSet.options); } - return { ...lRetval, ...pOptions }; + return { ...lReturnValue, ...pOptions }; } - return lRetval; + return lReturnValue; } module.exports = validate; diff --git a/src/report/anon/random-string.js b/src/report/anon/random-string.js index 48e0e0272..a79c7f731 100644 --- a/src/report/anon/random-string.js +++ b/src/report/anon/random-string.js @@ -53,10 +53,10 @@ function getRandomChar(pChar) { * @return {string} - a random string with above specs */ module.exports = function getRandomString(pString) { - let lRetval = ""; + let lReturnValue = ""; for (let lChar of pString) { - lRetval += getRandomChar(lChar); + lReturnValue += getRandomChar(lChar); } - return lRetval; + return lReturnValue; }; diff --git a/src/report/dot/module-utl.js b/src/report/dot/module-utl.js index 53a10d2d4..d62dfbea7 100644 --- a/src/report/dot/module-utl.js +++ b/src/report/dot/module-utl.js @@ -59,11 +59,11 @@ function aggregate(pPathSnippet, pCounter, pPathArray) { function folderify(pModule) { let lAdditions = {}; - let lDirName = path.dirname(pModule.source); + let lDirectoryName = path.dirname(pModule.source); - if (lDirName !== ".") { - lAdditions.folder = lDirName; - lAdditions.path = lDirName.split(path.sep).map(aggregate); + if (lDirectoryName !== ".") { + lAdditions.folder = lDirectoryName; + lAdditions.path = lDirectoryName.split(path.sep).map(aggregate); } lAdditions.label = path.basename(pModule.source); diff --git a/src/report/dot/theming.js b/src/report/dot/theming.js index 30285b2c6..d922c2743 100644 --- a/src/report/dot/theming.js +++ b/src/report/dot/theming.js @@ -26,22 +26,24 @@ function determineAttributes(pModuleOrDependency, pAttributeCriteria) { } function normalizeTheme(pTheme) { - let lRetval = DEFAULT_THEME; + let lReturnValue = DEFAULT_THEME; if (pTheme) { if (pTheme.replace) { - lRetval = pTheme; + lReturnValue = pTheme; } else { - lRetval.graph = { ...DEFAULT_THEME.graph, ...pTheme.graph }; - lRetval.node = { ...DEFAULT_THEME.node, ...pTheme.node }; - lRetval.edge = { ...DEFAULT_THEME.edge, ...pTheme.edge }; - lRetval.modules = (pTheme.modules || []).concat(DEFAULT_THEME.modules); - lRetval.dependencies = (pTheme.dependencies || []).concat( + lReturnValue.graph = { ...DEFAULT_THEME.graph, ...pTheme.graph }; + lReturnValue.node = { ...DEFAULT_THEME.node, ...pTheme.node }; + lReturnValue.edge = { ...DEFAULT_THEME.edge, ...pTheme.edge }; + lReturnValue.modules = (pTheme.modules || []).concat( + DEFAULT_THEME.modules + ); + lReturnValue.dependencies = (pTheme.dependencies || []).concat( DEFAULT_THEME.dependencies ); } } - return lRetval; + return lReturnValue; } module.exports = { diff --git a/src/report/err-html/err-html.template.hbs b/src/report/error-html/error-html.template.hbs similarity index 100% rename from src/report/err-html/err-html.template.hbs rename to src/report/error-html/error-html.template.hbs diff --git a/src/report/err-html/err-html.template.js b/src/report/error-html/error-html.template.js similarity index 99% rename from src/report/err-html/err-html.template.js rename to src/report/error-html/error-html.template.js index b68f58fa5..c22f5288a 100644 --- a/src/report/err-html/err-html.template.js +++ b/src/report/error-html/error-html.template.js @@ -1,5 +1,5 @@ var Handlebars = require("handlebars/runtime"); var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; -templates['err-html.template.hbs'] = template({"1":function(container,depth0,helpers,partials,data) { +templates['error-html.template.hbs'] = template({"1":function(container,depth0,helpers,partials,data) { var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { return parent[propertyName]; diff --git a/src/report/err-html/index.js b/src/report/error-html/index.js similarity index 94% rename from src/report/err-html/index.js rename to src/report/error-html/index.js index 4d5e903b2..05188ad17 100644 --- a/src/report/err-html/index.js +++ b/src/report/error-html/index.js @@ -8,7 +8,7 @@ const { } = require("./utl"); // eslint-disable-next-line import/no-unassigned-import -require("./err-html.template"); +require("./error-html.template"); function aggregateViolations(pViolations, pRuleSetUsed) { const lViolationCounts = pViolations.reduce((pAll, pCurrentViolation) => { @@ -31,7 +31,7 @@ function aggregateViolations(pViolations, pRuleSetUsed) { } function report(pResults) { - return Handlebars.templates["err-html.template.hbs"]({ + return Handlebars.templates["error-html.template.hbs"]({ summary: { ...formatSummaryForReport(pResults.summary), agggregateViolations: aggregateViolations( diff --git a/src/report/err-html/utl.js b/src/report/error-html/utl.js similarity index 100% rename from src/report/err-html/utl.js rename to src/report/error-html/utl.js diff --git a/src/report/err.js b/src/report/error.js similarity index 100% rename from src/report/err.js rename to src/report/error.js diff --git a/src/report/index.js b/src/report/index.js index 9c3e23472..7f6a9c5e3 100644 --- a/src/report/index.js +++ b/src/report/index.js @@ -4,9 +4,9 @@ const csv = require("./csv"); const dot = require("./dot")("module"); const ddot = require("./dot")("folder"); const cdot = require("./dot")("custom"); -const errHtml = require("./err-html"); -const errLong = curryRight(require("./err"))({ long: true }); -const err = require("./err"); +const errorHtml = require("./error-html"); +const errorLong = curryRight(require("./error"))({ long: true }); +const error = require("./error"); const html = require("./html"); const identity = require("./identity"); const json = require("./json"); @@ -19,9 +19,9 @@ const TYPE2REPORTER = { ddot, cdot, archi: cdot, - "err-html": errHtml, - "err-long": errLong, - err, + "err-html": errorHtml, + "err-long": errorLong, + err: error, html, json, teamcity diff --git a/src/report/teamcity.js b/src/report/teamcity.js index b83f0e31a..186c78a02 100644 --- a/src/report/teamcity.js +++ b/src/report/teamcity.js @@ -31,20 +31,20 @@ function reportForbiddenRules(pForbiddenRules, pViolations) { } function reportAllowedRule(pAllowedRule, pViolations) { - let lRetval = []; + let lReturnValue = []; if ( pAllowedRule.length > 0 && pViolations.some(pViolation => pViolation.rule.name === "not-in-allowed") ) { - lRetval = tsm.inspectionType({ + lReturnValue = tsm.inspectionType({ id: "not-in-allowed", name: "not-in-allowed", description: "dependency is not in the 'allowed' set of rules", category: CATEGORY }); } - return lRetval; + return lReturnValue; } function reportViolatedRules(pRuleSetUsed, pViolations) { diff --git a/src/report/utl/consolidate-module-dependencies.js b/src/report/utl/consolidate-module-dependencies.js index e95a4f3f6..c03ddf8c5 100644 --- a/src/report/utl/consolidate-module-dependencies.js +++ b/src/report/utl/consolidate-module-dependencies.js @@ -34,16 +34,18 @@ function mergeDependencies(pResolvedName, pDependencies) { function consolidateDependencies(pDependencies) { let lDependencies = _clone(pDependencies); - let lRetval = []; + let lReturnValue = []; while (lDependencies.length > 0) { - lRetval.push(mergeDependencies(lDependencies[0].resolved, lDependencies)); + lReturnValue.push( + mergeDependencies(lDependencies[0].resolved, lDependencies) + ); lDependencies = _reject(lDependencies, { resolved: lDependencies[0].resolved }); } - return lRetval; + return lReturnValue; } module.exports = pModule => ({ diff --git a/src/report/utl/consolidate-modules.js b/src/report/utl/consolidate-modules.js index bb6f8b848..e7cbd7e05 100644 --- a/src/report/utl/consolidate-modules.js +++ b/src/report/utl/consolidate-modules.js @@ -37,11 +37,11 @@ function mergeModules(pSourceString, pModules) { module.exports = pModules => { let lModules = _clone(pModules); - let lRetval = []; + let lReturnValue = []; while (lModules.length > 0) { - lRetval.push(mergeModules(lModules[0].source, lModules)); + lReturnValue.push(mergeModules(lModules[0].source, lModules)); lModules = _reject(lModules, { source: lModules[0].source }); } - return lRetval; + return lReturnValue; }; diff --git a/src/report/utl/consolidate-to-folder.js b/src/report/utl/consolidate-to-folder.js index 1338244ab..8a01149d8 100644 --- a/src/report/utl/consolidate-to-folder.js +++ b/src/report/utl/consolidate-to-folder.js @@ -2,22 +2,22 @@ const path = require("path"); const consolidateModules = require("./consolidate-modules"); const consolidateModuleDependencies = require("./consolidate-module-dependencies"); -function squashDependencyToDir(pDependency) { +function squashDependencyToDirectory(pDependency) { return { ...pDependency, resolved: path.dirname(pDependency.resolved) }; } -function squashModuleToDir(pModule) { +function squashModuleToDirectory(pModule) { return { ...pModule, source: path.dirname(pModule.source), consolidated: true, - dependencies: pModule.dependencies.map(squashDependencyToDir) + dependencies: pModule.dependencies.map(squashDependencyToDirectory) }; } module.exports = pModules => - consolidateModules(pModules.map(squashModuleToDir)).map( + consolidateModules(pModules.map(squashModuleToDirectory)).map( consolidateModuleDependencies ); diff --git a/src/report/utl/dependency-to-incidence-transformer.js b/src/report/utl/dependency-to-incidence-transformer.js index 1e3ef1dda..2a8167e8d 100644 --- a/src/report/utl/dependency-to-incidence-transformer.js +++ b/src/report/utl/dependency-to-incidence-transformer.js @@ -1,7 +1,8 @@ -function compareOnSource(pOne, pTwo) { - const deriveSortKey = pModule => - `${pModule.coreModule ? "1" : "0"}-${pModule.source}`; +function deriveSortKey(pModule) { + return `${pModule.coreModule ? "1" : "0"}-${pModule.source}`; +} +function compareOnSource(pOne, pTwo) { return deriveSortKey(pOne) > deriveSortKey(pTwo) ? 1 : -1; } diff --git a/src/validate/index.js b/src/validate/index.js index 5665d9d2a..af4ed1593 100644 --- a/src/validate/index.js +++ b/src/validate/index.js @@ -45,7 +45,7 @@ function validateAgainstForbiddenRules(pRuleSet, pMatchModule, pFrom, pTo) { } function validateAgainstRules(pRuleSet, pFrom, pTo, pMatchModule) { - let lRetval = { valid: true }; + let lReturnValue = { valid: true }; const lFoundRuleViolations = validateAgainstAllowedRules( pRuleSet, @@ -56,11 +56,11 @@ function validateAgainstRules(pRuleSet, pFrom, pTo, pMatchModule) { .concat(validateAgainstForbiddenRules(pRuleSet, pMatchModule, pFrom, pTo)) .sort(compareSeverity); - lRetval.valid = lFoundRuleViolations.length === 0; - if (!lRetval.valid) { - lRetval.rules = lFoundRuleViolations; + lReturnValue.valid = lFoundRuleViolations.length === 0; + if (!lReturnValue.valid) { + lReturnValue.rules = lFoundRuleViolations; } - return lRetval; + return lReturnValue; } /** diff --git a/src/validate/match-dependency-rule.js b/src/validate/match-dependency-rule.js index 013b21690..1e5667b09 100644 --- a/src/validate/match-dependency-rule.js +++ b/src/validate/match-dependency-rule.js @@ -15,16 +15,18 @@ function propertyEquals(pTo, pRule, pProperty) { matches. */ function extractGroups(pRule, pActualPath) { - let lRetval = []; + let lReturnValue = []; if (Boolean(pRule.path)) { let lMatchResult = pActualPath.match(pRule.path); if (Boolean(lMatchResult) && lMatchResult.length > 1) { - lRetval = lMatchResult.filter(pResult => typeof pResult === "string"); + lReturnValue = lMatchResult.filter( + pResult => typeof pResult === "string" + ); } } - return lRetval; + return lReturnValue; } function match(pFrom, pTo) { diff --git a/src/validate/match-module-rule.js b/src/validate/match-module-rule.js index 34394e35c..b54f1f0a9 100644 --- a/src/validate/match-module-rule.js +++ b/src/validate/match-module-rule.js @@ -2,28 +2,28 @@ const isModuleOnlyRule = require("./is-module-only-rule"); const matches = require("./matches"); function matchesOrphanRule(pRule, pModule) { - let lRetval = true; + let lReturnValue = true; if (pRule.from.hasOwnProperty("orphan")) { if (pModule.hasOwnProperty("orphan")) { - lRetval = + lReturnValue = pModule.orphan === pRule.from.orphan && matches.fromPath(pRule, pModule) && matches.fromPathNot(pRule, pModule); } else { - lRetval = !pRule.from.orphan; + lReturnValue = !pRule.from.orphan; } } - return lRetval; + return lReturnValue; } function matchesReachableRule(pRule, pModule) { - let lRetval = true; + let lReturnValue = true; if (pRule.to.hasOwnProperty("reachable")) { - lRetval = pRule.to.reachable; + lReturnValue = pRule.to.reachable; if (pModule.hasOwnProperty("reachable")) { - lRetval = + lReturnValue = pModule.reachable.some( pReachable => pReachable.asDefinedInRule === (pRule.name || "not-in-allowed") && @@ -33,7 +33,7 @@ function matchesReachableRule(pRule, pModule) { matches.toModulePathNot(pRule, pModule); } } - return lRetval; + return lReturnValue; } function match(pModule) { diff --git a/test/cli/compile-config/index.spec.js b/test/cli/compile-config/index.spec.js index 9949611e2..2c20772f6 100644 --- a/test/cli/compile-config/index.spec.js +++ b/test/cli/compile-config/index.spec.js @@ -6,25 +6,30 @@ const mergedFixture = require("./mocks/extends/merged.json"); const mergedArrayOneFixture = require("./mocks/extends/merged-array-1.json"); const mergedArrayTwoFixture = require("./mocks/extends/merged-array-2.json"); -const mockDir = path.join(__dirname, "mocks"); +const mockDirectory = path.join(__dirname, "mocks"); describe("cli/compile-config", () => { it("a rule set without an extends returns just that rule set", () => { expect( - compileConfig(path.join(mockDir, "rules.sub-not-allowed-error.json")) + compileConfig( + path.join(mockDirectory, "rules.sub-not-allowed-error.json") + ) ).to.deep.equal(fixture); }); it("a rule set with an extends returns that rule set, extending the mentioned base", () => { expect( - compileConfig(path.join(mockDir, "extends/extending.json")) + compileConfig(path.join(mockDirectory, "extends/extending.json")) ).to.deep.equal(mergedFixture); }); it("a rule set with an extends array (0 members) returns that rule set", () => { expect( compileConfig( - path.join(mockDir, "extends/extending-array-with-zero-members.json") + path.join( + mockDirectory, + "extends/extending-array-with-zero-members.json" + ) ) ).to.deep.equal({ forbidden: [ @@ -40,7 +45,7 @@ describe("cli/compile-config", () => { it("a rule set with an extends array (1 member) returns that rule set, extending the mentioned base", () => { expect( compileConfig( - path.join(mockDir, "extends/extending-array-with-one-member.json") + path.join(mockDirectory, "extends/extending-array-with-one-member.json") ) ).to.deep.equal(mergedArrayOneFixture); }); @@ -48,7 +53,10 @@ describe("cli/compile-config", () => { it("a rule set with an extends array (>1 member) returns that rule set, extending the mentioned bases", () => { expect( compileConfig( - path.join(mockDir, "extends/extending-array-with-two-members.json") + path.join( + mockDirectory, + "extends/extending-array-with-two-members.json" + ) ) ).to.deep.equal(mergedArrayTwoFixture); }); @@ -56,7 +64,7 @@ describe("cli/compile-config", () => { it("a rule set with an extends from node_modules gets merged properly as well", () => { expect( compileConfig( - path.join(mockDir, "extends/extending-from-node-modules.json") + path.join(mockDirectory, "extends/extending-from-node-modules.json") ) ).to.deep.equal({ allowed: [ @@ -79,15 +87,15 @@ describe("cli/compile-config", () => { it("borks on a circular extends (1 step)", () => { const lMessageOutTake = `config is circular - ${path.join( - mockDir, + mockDirectory, "extends/circular-one.js" - )} -> ${path.join(mockDir, "extends/circular-two.js")} -> ${path.join( - mockDir, + )} -> ${path.join(mockDirectory, "extends/circular-two.js")} -> ${path.join( + mockDirectory, "extends/circular-one.js" )}.`; expect(() => { - compileConfig(path.join(mockDir, "extends/circular-one.js")); + compileConfig(path.join(mockDirectory, "extends/circular-one.js")); }).to.throw(lMessageOutTake); }); }); diff --git a/test/cli/index.spec.js b/test/cli/index.spec.js index c435637e0..c14c791b0 100644 --- a/test/cli/index.spec.js +++ b/test/cli/index.spec.js @@ -107,7 +107,7 @@ const testPairs = [ } ]; -function resetOutputDir() { +function resetOutputDirectory() { testPairs .filter(pPair => pPair.cleanup) .forEach(pPair => { @@ -130,7 +130,7 @@ function resetOutputDir() { function setModuleType(pTestPairs, pModuleType) { return pTestPairs.map(pTestPair => { - let lRetval = { + let lReturnValue = { description: pTestPair.description.replace( /{{moduleType}}/g, pModuleType @@ -141,19 +141,19 @@ function setModuleType(pTestPairs, pModuleType) { cleanup: pTestPair.cleanup }; - lRetval.options = Object.assign({}, pTestPair.options); - lRetval.options.outputTo = pTestPair.options.outputTo.replace( + lReturnValue.options = Object.assign({}, pTestPair.options); + lReturnValue.options.outputTo = pTestPair.options.outputTo.replace( /{{moduleType}}/g, pModuleType ); if (Boolean(pTestPair.options.moduleSystems)) { - lRetval.options.moduleSystems = pTestPair.options.moduleSystems.replace( + lReturnValue.options.moduleSystems = pTestPair.options.moduleSystems.replace( /{{moduleType}}/g, pModuleType ); } - return lRetval; + return lReturnValue; }); } @@ -180,11 +180,11 @@ function runFileBasedTests(pModuleType) { /* eslint mocha/no-hooks-for-single-case: off */ describe("cli/index", () => { before("set up", () => { - resetOutputDir(); + resetOutputDirectory(); }); after("tear down", () => { - resetOutputDir(); + resetOutputDirectory(); }); describe("specials", () => { @@ -210,7 +210,7 @@ describe("cli/index", () => { ); }); - it("returns 0 even if there's transgressions when outputType !== 'err' ", () => { + it("returns 0 even if there's transgressions when outputType !== 'error' ", () => { const lOutputFileName = "transgression-count.json"; const lOutputTo = path.join(OUT_DIR, lOutputFileName); const lExitCode = cli(["test/cli/fixtures/cjs"], { @@ -223,7 +223,7 @@ describe("cli/index", () => { expect(lExitCode).to.equal(lExpectedTransgressions); }); - it("returns the number of transgressions if outputType === 'err' ", () => { + it("returns the number of transgressions if outputType === 'error' ", () => { const lOutputFileName = "transgression-count.json"; const lOutputTo = path.join(OUT_DIR, lOutputFileName); const lExitCode = cli(["test/cli/fixtures/cjs"], { @@ -256,7 +256,7 @@ describe("cli/index", () => { const unhookInterceptStdOut = intercept(() => { // This space intentionally left empty }); - const unhookInterceptStdErr = intercept(pText => { + const unhookInterceptStdError = intercept(pText => { lCapturedStderr += pText; }); const lExitCode = cli(["this-doesnot-exist"], { @@ -264,7 +264,7 @@ describe("cli/index", () => { }); unhookInterceptStdOut(); - unhookInterceptStdErr(); + unhookInterceptStdError(); expect(lExitCode).to.equal(1); return expect(lCapturedStderr).to.contain( @@ -277,7 +277,7 @@ describe("cli/index", () => { const unhookInterceptStdOut = intercept(() => { // This space intentionally left empty }); - const unhookInterceptStdErr = intercept(pText => { + const unhookInterceptStdError = intercept(pText => { lCapturedStderr += pText; }); const lExitCode = cli(["test/cli/fixtures"], { @@ -285,7 +285,7 @@ describe("cli/index", () => { }); unhookInterceptStdOut(); - unhookInterceptStdErr(); + unhookInterceptStdError(); intercept(pText => { lCapturedStderr += pText; })(); @@ -301,13 +301,13 @@ describe("cli/index", () => { const unhookInterceptStdOut = intercept(() => { // This space intentionally left empty }); - const unhookInterceptStdErr = intercept(pText => { + const unhookInterceptStdError = intercept(pText => { lCapturedStderr += pText; }); const lExitCode = cli(["test/cli/fixtures"]); unhookInterceptStdOut(); - unhookInterceptStdErr(); + unhookInterceptStdError(); intercept(pText => { lCapturedStderr += pText; })(); @@ -324,7 +324,7 @@ describe("cli/index", () => { const unhookInterceptStdOut = intercept(pText => { lCapturedStdout += pText; }); - const unhookInterceptStdErr = intercept(() => { + const unhookInterceptStdError = intercept(() => { // This space intentionally left empty }); @@ -334,7 +334,7 @@ describe("cli/index", () => { }); unhookInterceptStdOut(); - unhookInterceptStdErr(); + unhookInterceptStdError(); intercept(pText => { lCapturedStdout += pText; })(); diff --git a/test/cli/utl/io.spec.js b/test/cli/utl/io.spec.js index 4c1f22e6a..80afd7f8e 100644 --- a/test/cli/utl/io.spec.js +++ b/test/cli/utl/io.spec.js @@ -5,6 +5,17 @@ const stream = require("stream"); const expect = require("chai").expect; const getInStream = require("../../../src/cli/utl/io").getInStream; +function removeDammit(pFileName) { + try { + fs.unlinkSync(pFileName); + } catch (pError) { + // probably files didn't exist in the first place + // so ignore the exception + } finally { + // explicitly ignore finally as well + } +} + describe("cli/utl/io", () => { const OUTFILE = path.join( __dirname, @@ -14,17 +25,6 @@ describe("cli/utl/io", () => { .slice("0.".length)}.json` ); - function removeDammit(pFileName) { - try { - fs.unlinkSync(pFileName); - } catch (pError) { - // probably files didn't exist in the first place - // so ignore the exception - } finally { - // explicitly ignore finally as well - } - } - before("set up", () => { fs.writeFileSync(OUTFILE, "{}", "utf8"); }); diff --git a/test/cli/validate-node-env.spec.js b/test/cli/validate-node-environment.spec.js similarity index 76% rename from test/cli/validate-node-env.spec.js rename to test/cli/validate-node-environment.spec.js index a5c8c2b8a..45ed729a6 100644 --- a/test/cli/validate-node-env.spec.js +++ b/test/cli/validate-node-environment.spec.js @@ -1,47 +1,47 @@ const expect = require("chai").expect; -const validateNodeEnv = require("../../src/cli/validate-node-env"); +const validateNodeEnvironment = require("../../src/cli/validate-node-environment"); describe("cli/validateNodeEnv", () => { it("throws when an older and unsupported node version is passed", () => { expect(() => { - validateNodeEnv("6.0.0"); + validateNodeEnvironment("6.0.0"); }).to.throw(); }); it("throws when a newer but unsupported node version is passed", () => { expect(() => { - validateNodeEnv("9.0.0"); + validateNodeEnvironment("9.0.0"); }).to.throw(); }); it("doesn't throw when an empty node version is passed (assuming test is run on a supported platform)", () => { expect(() => { - validateNodeEnv(""); + validateNodeEnvironment(""); }).to.not.throw(); }); it("doesn't throw when a null node version is passed (assuming test is run on a supported platform)", () => { expect(() => { - validateNodeEnv(null); + validateNodeEnvironment(null); }).to.not.throw(); }); it("doesn't throw when an undefined node version is passed (assuming test is run on a supported platform)", () => { expect(() => { // eslint-disable-next-line no-undefined - validateNodeEnv(undefined); + validateNodeEnvironment(undefined); }).to.not.throw(); }); it("doesn't throw when no node version is passed (assuming this test is run on a supported platform ...)", () => { expect(() => { - validateNodeEnv(); + validateNodeEnvironment(); }).to.not.throw(); }); it("doesn't throw when a supported node version is passed", () => { expect(() => { - validateNodeEnv("12.0.0"); + validateNodeEnvironment("12.0.0"); }).to.not.throw(); }); }); diff --git a/test/extract/get-dependencies.spec.js b/test/extract/get-dependencies.spec.js index 86adbc984..b830f80d0 100644 --- a/test/extract/get-dependencies.spec.js +++ b/test/extract/get-dependencies.spec.js @@ -42,13 +42,13 @@ function runFixture(pFixture) { } /* eslint-disable mocha/no-top-level-hooks */ -before(cb => { +before(pCallback => { symlinkDir( path.join(__dirname, "fixtures", "symlinkTarget"), symlinkDirectory ).then( - () => cb(), - err => cb(err) + () => pCallback(), + pError => pCallback(pError) ); }); diff --git a/test/extract/utl/strip-query-params.spec.js b/test/extract/utl/strip-query-parameters.spec.js similarity index 54% rename from test/extract/utl/strip-query-params.spec.js rename to test/extract/utl/strip-query-parameters.spec.js index 51ec79a68..683b77e0c 100644 --- a/test/extract/utl/strip-query-params.spec.js +++ b/test/extract/utl/strip-query-parameters.spec.js @@ -1,20 +1,22 @@ const expect = require("chai").expect; -const stripQueryParams = require("../../../src/extract/utl/strip-query-params"); +const stripQueryParameters = require("../../../src/extract/utl/strip-query-parameters"); describe("extract/utl/stripQueryParams", () => { it("leaves the empty string alone", () => { - expect(stripQueryParams("")).to.equal(""); + expect(stripQueryParameters("")).to.equal(""); }); it("leaves paths without query parameters alone", () => { - expect(stripQueryParams("normal/path/would/say.js")).to.equal( + expect(stripQueryParameters("normal/path/would/say.js")).to.equal( "normal/path/would/say.js" ); }); it("strips query parameters from paths", () => { expect( - stripQueryParams("normal/path/would/say.js?these=are&query=parameters") + stripQueryParameters( + "normal/path/would/say.js?these=are&query=parameters" + ) ).to.equal("normal/path/would/say.js"); }); }); diff --git a/test/main/files-and-dirs/normalize.spec.js b/test/main/files-and-dirs/normalize.spec.js index ef778f31a..4f93c73b9 100644 --- a/test/main/files-and-dirs/normalize.spec.js +++ b/test/main/files-and-dirs/normalize.spec.js @@ -1,34 +1,34 @@ const path = require("path"); const expect = require("chai").expect; -const normalizeFilesAndDirs = require("../../../src/main/files-and-dirs/normalize"); +const normalizeFilesAndDirectories = require("../../../src/main/files-and-dirs/normalize"); describe("main/files-and-dirs", () => { it("Keeps an empty file dir array as is", () => { - expect(normalizeFilesAndDirs([])).to.deep.equal([]); + expect(normalizeFilesAndDirectories([])).to.deep.equal([]); }); it("Keeps relative paths as is", () => { - expect(normalizeFilesAndDirs(["./src", "./test"])).to.deep.equal([ + expect(normalizeFilesAndDirectories(["./src", "./test"])).to.deep.equal([ "./src", "./test" ]); }); it("Keeps relative paths as is - keeping globs in tact", () => { - expect(normalizeFilesAndDirs(["{src,test}/**/*.js"])).to.deep.equal([ + expect(normalizeFilesAndDirectories(["{src,test}/**/*.js"])).to.deep.equal([ "{src,test}/**/*.js" ]); }); it("Normalizes absolute paths to paths relative to the current working dir", () => { expect( - normalizeFilesAndDirs([__dirname]).map(path.win32.normalize) + normalizeFilesAndDirectories([__dirname]).map(path.win32.normalize) ).to.deep.equal(["test\\main\\files-and-dirs"]); }); it("Normalizes absolute paths to paths relative to the current working dir keeping globs in tact", () => { expect( - normalizeFilesAndDirs([`${__dirname}/**/*.{js,ts}`]).map( + normalizeFilesAndDirectories([`${__dirname}/**/*.{js,ts}`]).map( path.win32.normalize ) ).to.deep.equal(["test\\main\\files-and-dirs\\**\\*.{js,ts}"]); @@ -36,7 +36,7 @@ describe("main/files-and-dirs", () => { it("Normalizes the current working dir passed as an absolute path to '.'", () => { expect( - normalizeFilesAndDirs([process.cwd()]).map(path.win32.normalize) + normalizeFilesAndDirectories([process.cwd()]).map(path.win32.normalize) ).to.deep.equal(["."]); }); }); diff --git a/test/main/main.cruise.dynamic-imports.spec.js b/test/main/main.cruise.dynamic-imports.spec.js index 6552158e5..3ed7caa6b 100644 --- a/test/main/main.cruise.dynamic-imports.spec.js +++ b/test/main/main.cruise.dynamic-imports.spec.js @@ -9,15 +9,15 @@ const expect = chai.expect; chai.use(require("chai-json-schema")); -const gWorkingDir = process.cwd(); +const WORKING_DIRECTORY = process.cwd(); describe("main.cruise - dynamic imports", () => { beforeEach("reset current wd", () => { - process.chdir(gWorkingDir); + process.chdir(WORKING_DIRECTORY); }); afterEach("reset current wd", () => { - process.chdir(gWorkingDir); + process.chdir(WORKING_DIRECTORY); }); it("detects dynamic dependencies in es", () => { diff --git a/test/main/main.cruise.type-only-module-references.spec.js b/test/main/main.cruise.type-only-module-references.spec.js index fa2e9f5cf..da6be4246 100644 --- a/test/main/main.cruise.type-only-module-references.spec.js +++ b/test/main/main.cruise.type-only-module-references.spec.js @@ -8,15 +8,15 @@ const expect = chai.expect; chai.use(require("chai-json-schema")); -const gWorkingDir = process.cwd(); +const WORKING_DIRECTORY = process.cwd(); describe("main.cruise - type only module references", () => { beforeEach("reset current wd", () => { - process.chdir(gWorkingDir); + process.chdir(WORKING_DIRECTORY); }); afterEach("reset current wd", () => { - process.chdir(gWorkingDir); + process.chdir(WORKING_DIRECTORY); }); it("finds something that's only in node_modules/@types", () => { diff --git a/test/main/main.format.spec.js b/test/main/main.format.spec.js index f18364147..c2cafbec7 100644 --- a/test/main/main.format.spec.js +++ b/test/main/main.format.spec.js @@ -37,7 +37,7 @@ describe("main.format - format", () => { ); }); - it("returns an err reporter formatted report when presented with a legal result", () => { + it("returns an error reporter formatted report when presented with a legal result", () => { expect(main.format(MINIMAL_RESULT, "err").output).to.contain( "no dependency violations found (0 modules, 0 dependencies cruised)" ); diff --git a/test/report/anon/anonymize.spec.js b/test/report/anon/anonymize.spec.js index 34b51f180..662252a0e 100644 --- a/test/report/anon/anonymize.spec.js +++ b/test/report/anon/anonymize.spec.js @@ -2,11 +2,11 @@ const expect = require("chai").expect; const _clone = require("lodash/clone"); const anonymize = require("../../../src/report/anon"); const anonymizePathElement = require("../../../src/report/anon/anonymize-path-element"); -const srcReport = require("./mocks/src-report.json"); -const srcReportWithWordlist = require("./mocks/src-report-wordlist.json"); +const sourceReport = require("./mocks/src-report.json"); +const sourceReportWithWordlist = require("./mocks/src-report-wordlist.json"); const fixtureReport = require("./fixtures/src-report.json"); const fixtureReportWithWordlist = require("./fixtures/src-report-wordlist.json"); -const srcCycle = require("./mocks/cycle.json"); +const sourceCycle = require("./mocks/cycle.json"); const fixtureCycle = require("./fixtures/cycle.json"); const META_SYNTACTIC_VARIABLES = [ @@ -36,21 +36,21 @@ describe("report/anonymous", () => { }); it("anonymizes a result tree with the passed word list", () => { - const lResult = anonymize(srcReport, _clone(META_SYNTACTIC_VARIABLES)); + const lResult = anonymize(sourceReport, _clone(META_SYNTACTIC_VARIABLES)); expect(JSON.parse(lResult.output)).to.deep.equal(fixtureReport); expect(lResult.exitCode).to.equal(0); }); it("anonymizes a result tree with the word list passed in the result tree", () => { - const lResult = anonymize(srcReportWithWordlist); + const lResult = anonymize(sourceReportWithWordlist); expect(JSON.parse(lResult.output)).to.deep.equal(fixtureReportWithWordlist); expect(lResult.exitCode).to.equal(0); }); it("anonymizes a result tree with (violated) rules", () => { - const lResult = anonymize(srcCycle, _clone(META_SYNTACTIC_VARIABLES)); + const lResult = anonymize(sourceCycle, _clone(META_SYNTACTIC_VARIABLES)); // console.log(lResult.output); expect(JSON.parse(lResult.output)).to.deep.equal(fixtureCycle); diff --git a/test/report/csv/csv.spec.js b/test/report/csv/csv.spec.js index c48948f7f..cbac852be 100644 --- a/test/report/csv/csv.spec.js +++ b/test/report/csv/csv.spec.js @@ -4,17 +4,17 @@ const expect = require("chai").expect; const render = require("../../../src/report/csv"); const deps = require("./mocks/cjs-no-dependency-valid.json"); -const elFixture = fs.readFileSync( +const elementFixture = fs.readFileSync( path.join(__dirname, "mocks", "cjs-no-dependency-valid.csv"), "utf8" ); describe("report/csv reporter", () => { it("renders csv", () => { - const lRetval = render(deps); + const lReturnValue = render(deps); - expect(lRetval.output).to.deep.equal(elFixture); - expect(lRetval.exitCode).to.equal(0); + expect(lReturnValue.output).to.deep.equal(elementFixture); + expect(lReturnValue.exitCode).to.equal(0); }); }); diff --git a/test/report/dot/custom-level/index.spec.js b/test/report/dot/custom-level/index.spec.js index 78f207181..8d3c7b329 100644 --- a/test/report/dot/custom-level/index.spec.js +++ b/test/report/dot/custom-level/index.spec.js @@ -22,24 +22,24 @@ const consolidatedRxJs = fs.readFileSync( describe("report/dot/custom-level reporter", () => { it("consolidates to custome levels", () => { - const lRetval = render(deps); + const lReturnValue = render(deps); - expect(lRetval.output).to.deep.equal(consolidatedDot); - expect(lRetval.exitCode).to.equal(0); + expect(lReturnValue.output).to.deep.equal(consolidatedDot); + expect(lReturnValue.exitCode).to.equal(0); }); it("consolidates module only transgressions correctly", () => { - const lRetval = render(orphans); + const lReturnValue = render(orphans); - expect(lRetval.output).to.deep.equal(consolidatedOrphansDot); - expect(lRetval.exitCode).to.equal(0); + expect(lReturnValue.output).to.deep.equal(consolidatedOrphansDot); + expect(lReturnValue.exitCode).to.equal(0); }); it("consolidates a slightly larger code base in a timely fashion", () => { - const lRetval = render(rxjs); + const lReturnValue = render(rxjs); - expect(lRetval.output).to.deep.equal(consolidatedRxJs); - expect(lRetval.exitCode).to.equal(0); + expect(lReturnValue.output).to.deep.equal(consolidatedRxJs); + expect(lReturnValue.exitCode).to.equal(0); }); }); diff --git a/test/report/dot/folder-level/folder-level.spec.js b/test/report/dot/folder-level/folder-level.spec.js index d376bb1f6..7a81d2b46 100644 --- a/test/report/dot/folder-level/folder-level.spec.js +++ b/test/report/dot/folder-level/folder-level.spec.js @@ -22,24 +22,24 @@ const consolidatedRxJs = fs.readFileSync( describe("report/dot/folder-level reporter", () => { it("consolidates to folder level", () => { - const lRetval = render(deps); + const lReturnValue = render(deps); - expect(lRetval.output).to.deep.equal(consolidatedDot); - expect(lRetval.exitCode).to.equal(0); + expect(lReturnValue.output).to.deep.equal(consolidatedDot); + expect(lReturnValue.exitCode).to.equal(0); }); it("consolidates module only transgressions correctly", () => { - const lRetval = render(orphans); + const lReturnValue = render(orphans); - expect(lRetval.output).to.deep.equal(consolidatedOrphansDot); - expect(lRetval.exitCode).to.equal(0); + expect(lReturnValue.output).to.deep.equal(consolidatedOrphansDot); + expect(lReturnValue.exitCode).to.equal(0); }); it("consolidates a slightly larger code base in a timely fashion", () => { - const lRetval = render(rxjs); + const lReturnValue = render(rxjs); - expect(lRetval.output).to.deep.equal(consolidatedRxJs); - expect(lRetval.exitCode).to.equal(0); + expect(lReturnValue.output).to.deep.equal(consolidatedRxJs); + expect(lReturnValue.exitCode).to.equal(0); }); }); diff --git a/test/report/err-html/err-html.spec.js b/test/report/error-html/error-html.spec.js similarity index 83% rename from test/report/err-html/err-html.spec.js rename to test/report/error-html/error-html.spec.js index 4e734a87a..8e2bf2cc5 100644 --- a/test/report/err-html/err-html.spec.js +++ b/test/report/error-html/error-html.spec.js @@ -1,14 +1,15 @@ +// eslint-disable-next-line unicorn/prevent-abbreviations const expect = require("chai").expect; -const errHTML = require("../../../src/report/err-html"); +const errorHTML = require("../../../src/report/error-html"); const everythingFineResult = require("./mocks/everything-fine.json"); const validationMoreThanOnce = require("./mocks/violation-more-than-once.json"); -describe("report/err-html", () => { +describe("report/error-html", () => { const lOkeliDokelyKey = "gummy bears"; const lOkeliDokelyHeader = "No violations found"; it("happy day no errors", () => { - const lResult = errHTML(everythingFineResult); + const lResult = errorHTML(everythingFineResult); expect(lResult.output).to.contain(lOkeliDokelyKey); expect(lResult.output).to.contain(lOkeliDokelyHeader); @@ -16,7 +17,7 @@ describe("report/err-html", () => { }); it("report with errors", () => { - const lReport = errHTML(validationMoreThanOnce); + const lReport = errorHTML(validationMoreThanOnce); expect(lReport.output).to.not.contain(lOkeliDokelyKey); expect(lReport.output).to.not.contain(lOkeliDokelyHeader); diff --git a/test/report/err-html/mocks/everything-fine.json b/test/report/error-html/mocks/everything-fine.json similarity index 100% rename from test/report/err-html/mocks/everything-fine.json rename to test/report/error-html/mocks/everything-fine.json diff --git a/test/report/err-html/mocks/violation-more-than-once.json b/test/report/error-html/mocks/violation-more-than-once.json similarity index 100% rename from test/report/err-html/mocks/violation-more-than-once.json rename to test/report/error-html/mocks/violation-more-than-once.json diff --git a/test/report/err-html/utl.spec.js b/test/report/error-html/utl.spec.js similarity index 92% rename from test/report/err-html/utl.spec.js rename to test/report/error-html/utl.spec.js index c88531826..840c43b60 100644 --- a/test/report/err-html/utl.spec.js +++ b/test/report/error-html/utl.spec.js @@ -1,7 +1,13 @@ const expect = require("chai").expect; -const utl = require("../../../src/report/err-html/utl"); +const utl = require("../../../src/report/error-html/utl"); -describe("report/err-html/utl", () => { +function summaryHasMinimalAttributes(pResult) { + expect(pResult).to.haveOwnProperty("depcruiseVersion"); + expect(pResult).to.haveOwnProperty("runDate"); + expect(pResult).to.haveOwnProperty("violations"); +} + +describe("report/error-html/utl", () => { it("getFormattedAllowedRule - no allowed rule available returns empty array", () => { expect(utl.getFormattedAllowedRule({})).to.deep.equal([]); }); @@ -92,12 +98,6 @@ describe("report/err-html/utl", () => { }); }); - function summaryHasMinimalAttributes(pResult) { - expect(pResult).to.haveOwnProperty("depcruiseVersion"); - expect(pResult).to.haveOwnProperty("runDate"); - expect(pResult).to.haveOwnProperty("violations"); - } - it("formatSummaryForReport - empty", () => { const lResult = utl.formatSummaryForReport({}); diff --git a/test/report/err/err-long.spec.js b/test/report/error/error-long.spec.js similarity index 94% rename from test/report/err/err-long.spec.js rename to test/report/error/error-long.spec.js index 1b8f76368..36da7ed6a 100644 --- a/test/report/err/err-long.spec.js +++ b/test/report/error/error-long.spec.js @@ -2,14 +2,14 @@ const curryRight = require("lodash/curryRight"); const expect = require("chai").expect; const chalk = require("chalk"); -const render = curryRight(require("../../../src/report/err"))({ long: true }); +const render = curryRight(require("../../../src/report/error"))({ long: true }); const okdeps = require("./mocks/everything-fine.json"); const deps = require("./mocks/cjs-no-dependency-valid.json"); const warndeps = require("./mocks/err-only-warnings.json"); const erradds = require("./mocks/err-with-additional-information.json"); const orphanerrs = require("./mocks/orphan-deps.json"); -describe("report/err-long", () => { +describe("report/error-long", () => { let chalkLevel = chalk.level; before("disable chalk coloring", () => { diff --git a/test/report/err/err.spec.js b/test/report/error/error.spec.js similarity index 96% rename from test/report/err/err.spec.js rename to test/report/error/error.spec.js index b2450d18c..5336eeb21 100644 --- a/test/report/err/err.spec.js +++ b/test/report/error/error.spec.js @@ -1,14 +1,14 @@ /* eslint-disable no-magic-numbers */ const expect = require("chai").expect; const chalk = require("chalk"); -const render = require("../../../src/report/err"); +const render = require("../../../src/report/error"); const okdeps = require("./mocks/everything-fine.json"); const deps = require("./mocks/cjs-no-dependency-valid.json"); const warndeps = require("./mocks/err-only-warnings.json"); const orphanerrs = require("./mocks/orphan-deps.json"); const circularerrs = require("./mocks/circular-deps.json"); -describe("report/err", () => { +describe("report/error", () => { let chalkLevel = chalk.level; before("disable chalk coloring", () => { diff --git a/test/report/err/mocks/circular-deps.json b/test/report/error/mocks/circular-deps.json similarity index 100% rename from test/report/err/mocks/circular-deps.json rename to test/report/error/mocks/circular-deps.json diff --git a/test/report/err/mocks/cjs-no-dependency-valid.json b/test/report/error/mocks/cjs-no-dependency-valid.json similarity index 100% rename from test/report/err/mocks/cjs-no-dependency-valid.json rename to test/report/error/mocks/cjs-no-dependency-valid.json diff --git a/test/report/err/mocks/err-only-warnings.json b/test/report/error/mocks/err-only-warnings.json similarity index 100% rename from test/report/err/mocks/err-only-warnings.json rename to test/report/error/mocks/err-only-warnings.json diff --git a/test/report/err/mocks/err-with-additional-information.json b/test/report/error/mocks/err-with-additional-information.json similarity index 100% rename from test/report/err/mocks/err-with-additional-information.json rename to test/report/error/mocks/err-with-additional-information.json diff --git a/test/report/err/mocks/everything-fine.json b/test/report/error/mocks/everything-fine.json similarity index 100% rename from test/report/err/mocks/everything-fine.json rename to test/report/error/mocks/everything-fine.json diff --git a/test/report/err/mocks/orphan-deps.json b/test/report/error/mocks/orphan-deps.json similarity index 100% rename from test/report/err/mocks/orphan-deps.json rename to test/report/error/mocks/orphan-deps.json diff --git a/test/report/err/mocks/violation-more-than-once.json b/test/report/error/mocks/violation-more-than-once.json similarity index 100% rename from test/report/err/mocks/violation-more-than-once.json rename to test/report/error/mocks/violation-more-than-once.json diff --git a/test/report/html/html.spec.js b/test/report/html/html.spec.js index 4fa477adc..3e4734140 100644 --- a/test/report/html/html.spec.js +++ b/test/report/html/html.spec.js @@ -4,17 +4,17 @@ const expect = require("chai").expect; const render = require("../../../src/report/html"); const deps = require("./mocks/cjs-no-dependency-valid.json"); -const elFixture = fs.readFileSync( +const elementFixture = fs.readFileSync( path.join(__dirname, "mocks", "cjs-no-dependency-valid.html"), "utf8" ); describe("report/html reporter", () => { it("renders html - modules in the root don't come in a cluster; and one module could not be resolved", () => { - const lRetval = render(deps); + const lReturnValue = render(deps); - expect(lRetval.output).to.deep.equal(elFixture); - expect(lRetval.exitCode).to.equal(0); + expect(lReturnValue.output).to.deep.equal(elementFixture); + expect(lReturnValue.exitCode).to.equal(0); }); }); diff --git a/utl/regenerate-report-fixtures.utl.js b/utl/regenerate-report-fixtures.utl.js index 28e039a25..29035d775 100644 --- a/utl/regenerate-report-fixtures.utl.js +++ b/utl/regenerate-report-fixtures.utl.js @@ -15,13 +15,13 @@ function transformJSONtoFile(pInputFileName, pOutputFileName, pFunction) { ); } -function regenerateReportFixtures(pDir, pFunction, pTargetExtension) { - fs.readdirSync(pDir) +function regenerateReportFixtures(pDirectory, pFunction, pTargetExtension) { + fs.readdirSync(pDirectory) .filter(pFileName => pFileName.endsWith(".json")) .map(pFileName => ({ - inputFileName: path.join(pDir, pFileName), + inputFileName: path.join(pDirectory, pFileName), outputFileName: path.join( - pDir, + pDirectory, pFileName.replace(/\.json$/g, pTargetExtension) ) }))