diff --git a/package-lock.json b/package-lock.json index 3acc0c7..33c3740 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "@types/node": "20.10.4", "c8": "8.0.1", "clean-pkg-json": "1.2.0", - "dependency-cruiser": "15.5.0", + "dependency-cruiser": "16.0.0-beta-4", "husky": "8.0.3", "lint-staged": "15.2.0", "prettier": "3.1.1", @@ -823,9 +823,9 @@ } }, "node_modules/dependency-cruiser": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/dependency-cruiser/-/dependency-cruiser-15.5.0.tgz", - "integrity": "sha512-f6pY7rh6IHl39pLHdA9CUg3LzbJRDPeZXGa1q0A4v7qTy3CDP8xOg0gsecFglurvsB6kuIYkUSW1PUtfyVkEOA==", + "version": "16.0.0-beta-4", + "resolved": "https://registry.npmjs.org/dependency-cruiser/-/dependency-cruiser-16.0.0-beta-4.tgz", + "integrity": "sha512-DLeWXLL86l7bJ9TwX9d2uyFhYwssTDWs8EQqHTXIbqZcxEIrdOeZvAu/6G0YK4OFN0JGldjmdMHwDgo6gj6eBA==", "dev": true, "dependencies": { "acorn": "8.11.2", diff --git a/package.json b/package.json index 8096246..94173c5 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "@types/node": "20.10.4", "c8": "8.0.1", "clean-pkg-json": "1.2.0", - "dependency-cruiser": "15.5.0", + "dependency-cruiser": "16.0.0-beta-4", "husky": "8.0.3", "lint-staged": "15.2.0", "prettier": "3.1.1", diff --git a/src/codeowners/generate.test.ts b/src/codeowners/generate.test.ts index e15de10..5aac1fb 100644 --- a/src/codeowners/generate.test.ts +++ b/src/codeowners/generate.test.ts @@ -7,7 +7,7 @@ import type { ITeamMap } from "../team-map/team-map.js"; import { parse } from "../virtual-code-owners/parse.js"; import readVirtualCodeOwners from "../virtual-code-owners/read.js"; import generateCodeOwners from "./generate.js"; -import { IVirtualCodeOwnersCST } from "../virtual-code-owners/cst.js"; +import type { IVirtualCodeOwnersCST } from "../virtual-code-owners/cst.js"; export function generateCodeOwnersFromString( pCodeOwnersFileAsString: string, diff --git a/tools/dependency-cruiser-config/options.yml b/tools/dependency-cruiser-config/options.yml index 3672068..bb2d61a 100644 --- a/tools/dependency-cruiser-config/options.yml +++ b/tools/dependency-cruiser-config/options.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/sverweij/dependency-cruiser/main/src/schema/configuration.schema.json#/definitions/OptionsType doNotFollow: path: node_modules moduleSystems: diff --git a/tools/dependency-cruiser-config/rules.yml b/tools/dependency-cruiser-config/rules.yml index f92190c..ef1fb5c 100644 --- a/tools/dependency-cruiser-config/rules.yml +++ b/tools/dependency-cruiser-config/rules.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=this-is-not-a-prometheus-schema --- # rules from the 'recommended' preset: - name: no-circular @@ -145,3 +146,29 @@ to: dependencyTypes: - npm-peer +- name: "no-tsconfig-basedir-use" + comment: + This module depends om something directly via a 'tsconfig.json' 'baseUrl' property. + This is discouraged, unless you're still doing AMD modules. + See https://www.typescriptlang.org/tsconfig#baseUrl" + severity: "error" + from: {} + to: + dependencyTypes: + - aliased-tsconfig-base-url +- name: only-type-only-in-types + comment: This .d.ts depends on something via an import that is not 'type' only. + severity: error + from: + path: "[.]d[.][cm]?ts$" + to: + dependencyTypesNot: + - type-only +- name: only-type-only-to-dts + comment: This module depends on a .d.ts file via an import that is not 'type' only. + severity: error + from: {} + to: + path: "[.]d[.][cm]?ts$" + dependencyTypesNot: + - type-only diff --git a/tsconfig.json b/tsconfig.json index 735d0e3..d4be9ab 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -28,7 +28,7 @@ "module": "NodeNext" /* Specify what module code is generated. */, "rootDir": "./src/" /* Specify the root folder within your source files. */, "moduleResolution": "NodeNext" /* Specify how TypeScript looks up a file from a given module specifier. */, - "baseUrl": "./" /* Specify the base directory to resolve non-relative module names. */, + // "baseUrl": "./" /* Specify the base directory to resolve non-relative module names. */, // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */