( metadata: PackageJsonMetadata, workspaceDependencies: Set<string> )
| 111 | } |
| 112 | |
| 113 | function validateDependencyVersionOverrides( |
| 114 | metadata: PackageJsonMetadata, |
| 115 | workspaceDependencies: Set<string> |
| 116 | ): void { |
| 117 | const overrideNames = Object.keys(metadata.dependencyVersionOverrides ?? {}) |
| 118 | if (overrideNames.length === 0) { |
| 119 | return |
| 120 | } |
| 121 | |
| 122 | const dependencyNames = dependencyNameSet(metadata) |
| 123 | const unused = overrideNames |
| 124 | .filter(packageName => !dependencyNames.has(packageName)) |
| 125 | .sort() |
| 126 | if (unused.length === 0) { |
| 127 | const workspaceOverrides = overrideNames |
| 128 | .filter(packageName => workspaceDependencies.has(packageName)) |
| 129 | .sort() |
| 130 | if (workspaceOverrides.length === 0) { |
| 131 | return |
| 132 | } |
| 133 | |
| 134 | throw new Error( |
| 135 | `dependencyVersionOverrides must not override workspace dependency version(s): ${workspaceOverrides.join(', ')}` |
| 136 | ) |
| 137 | } |
| 138 | |
| 139 | throw new Error( |
| 140 | `dependencyVersionOverrides contains unused override(s): ${unused.join(', ')}` |
| 141 | ) |
| 142 | } |
| 143 | |
| 144 | function validateNoDevDependencies(metadata: PackageJsonMetadata): void { |
| 145 | if ((metadata.devDependencies ?? []).length === 0) { |
no test coverage detected