# package.json is formatted by package managers, so we ignore it here package.json
{ "name": "application", "version": "0.1.0", "private": true, "scripts": { "fix": "run-s fix:*", "fix:format": "./node_modules/.bin/prettier --ignore-path=.prettierignore --config=.prettierrc --write '{./,src/**/,./.storybook/*}*.{md,ts,tsx,css,html,json,js,scss}'", "visualize": "run-s visualize:*", "visualize:architecture-raw": "./node_modules/.bin/depcruise --validate .dependency-cruiser.json --output-type json src -f ./.visualization/result.json", "visualize:architecture-overview": "./node_modules/.bin/depcruise-fmt ./.visualization/result.json --output-type ddot src | dot -T svg | depcruise-wrap-stream-in-html > ./.visualization/overview.html", "visualize:architecture-detailed": "./node_modules/.bin/depcruise-fmt ./.visualization/result.json --output-type dot src | dot -T svg | depcruise-wrap-stream-in-html > ./.visualization/detailed.html" }, "dependencies": { }, "devDependencies": { "dependency-cruiser": "^9.17.0", "husky": "^4.3.8", "lint-staged": ">=10", "npm-run-all": "^4.1.5", "prettier": "^2.1.2" }, "husky": { "hooks": { "pre-commit": "lint-staged && yarn run visualize && git add ./.visualization/*" } }, "lint-staged": { "*.{md,ts,tsx,css,html,json,js,scss}": "prettier --config=.prettierrc --write" } }
{ "forbidden": [ { "name": "not-to-test", "comment": "Don't allow dependencies from outside the test folder to test", "severity": "error", "from": { "pathNot": "^(test|spec)" }, "to": { "path": "^(test|spec)" } }, { "name": "not-to-spec", "comment": "Don't allow dependencies to (typescript/ javascript/ coffeescript) spec files", "severity": "error", "from": {}, "to": { "path": "\\.spec\\.(js|ts|ls|coffee|litcoffee|coffee\\.md)$" } }, { "name": "no-circular", "severity": "warn", "comment": "Warn in case there's circular dependencies", "from": {}, "to": { "circular": true } }, { "name": "no-orphans", "severity": "info", "comment": "Inform in case there's orphans hiding in the code base", "from": { "orphan": true, "pathNot": "\\.d\\.ts$" }, "to": {} }, { "name": "no-deprecated-core", "comment": "Warn about dependencies on deprecated core modules.", "severity": "warn", "from": {}, "to": { "dependencyTypes": [ "core" ], "path": "^(punycode|domain|constants|sys|_linklist)$" } }, { "name": "no-deprecated-npm", "comment": "These npm modules are deprecated - find an alternative.", "severity": "warn", "from": {}, "to": { "dependencyTypes": [ "deprecated" ] } }, { "name": "not-to-unresolvable", "comment": "Don't allow dependencies on modules dependency-cruiser can't resolve to files on disk (which probably means they don't exist)", "severity": "error", "from": {}, "to": { "couldNotResolve": true } }, { "name": "not-to-dev-dep", "severity": "error", "comment": "Don't allow dependencies from src/app/lib to a development only package", "from": { "path": "^(src|app|lib)", "pathNot": "\\.spec\\.(js|ts|ls|coffee|litcoffee|coffee\\.md)$" }, "to": { "dependencyTypes": [ "npm-dev" ] } }, { "name": "no-non-package-json", "severity": "error", "comment": "Don't allow dependencies to packages not in package.json (except from within node_modules)", "from": { "pathNot": "^node_modules" }, "to": { "dependencyTypes": [ "unknown", "undetermined", "npm-no-pkg", "npm-unknown" ] } }, { "name": "optional-deps-used", "severity": "info", "comment": "nothing serious - but just check you have some serious try/ catches around the import/ requires of these", "from": {}, "to": { "dependencyTypes": [ "npm-optional" ] } }, { "name": "peer-deps-used", "comment": "Warn about the use of a peer dependency (peer dependencies are deprecated with the advent of npm 3 - and probably gone with version 4).", "severity": "warn", "from": {}, "to": { "dependencyTypes": [ "npm-peer" ] } }, { "name": "no-duplicate-dep-types", "comment": "Warn if a dependency you're actually using occurs in your package.json more than once (technically: has more than one dependency type)", "severity": "warn", "from": {}, "to": { "moreThanOneDependencyType": true } } ], "options": { "doNotFollow": "node_modules", "exclude": "(^node_modules|__snapshots__)|([a-zA-Z/].(test|stories|spec).(ts|tsx))", "tsPreCompilationDeps": true, "tsConfig": { "fileName": "./tsconfig.json" } } }
dx, js, typescript — Mar 24, 2021