Skip to content

Commit f08681a

Browse files
committed
Fix cwd's in abs paths matching ignore patterns in worktrees (resolve #1655)
1 parent 48bd66b commit f08681a

2 files changed

Lines changed: 7 additions & 7 deletions

File tree

packages/knip/src/graph/build.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,9 +245,9 @@ export async function build({
245245
const resolvedFilePath = handleInput(input, ws);
246246
if (resolvedFilePath) {
247247
if (isDeferResolveProductionEntry(input)) {
248-
addPattern(productionPatternsSkipExports, input, resolvedFilePath);
248+
addPattern(productionPatternsSkipExports, input, toWorkspaceRelative(resolvedFilePath));
249249
} else if (isDeferResolveEntry(input)) {
250-
if (!options.isProduction || !input.optional) addPattern(entryPatternsSkipExports, input, resolvedFilePath);
250+
if (!options.isProduction || !input.optional) addPattern(entryPatternsSkipExports, input, toWorkspaceRelative(resolvedFilePath));
251251
} else {
252252
principal.addEntryPath(resolvedFilePath, { skipExportsAnalysis: true });
253253
}

packages/knip/src/util/to-source-path.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { DEFAULT_EXTENSIONS } from '../constants.ts';
44
import { debugLog, debugLogArray } from './debug.ts';
55
import { findFileWithExtensions, isDirectory } from './fs.ts';
66
import { _glob, prependDirToPattern } from './glob.ts';
7-
import { isAbsolute, isInternal, join, toRelative } from './path.ts';
7+
import { isAbsolute, isInternal, join, relative, toRelative } from './path.ts';
88

99
const defaultExtensions = `.{${[...DEFAULT_EXTENSIONS].map(ext => ext.slice(1)).join(',')}}`;
1010
const hasTSExt = /(?<!\.d)\.(m|c)?tsx?$/;
@@ -45,13 +45,13 @@ export const getToSourcePathsHandler = (chief: ConfigurationChief) => {
4545
const patterns = new Set<string>();
4646

4747
for (const specifier of specifiers) {
48-
const absSpecifier = isAbsolute(specifier) ? specifier : prependDirToPattern(dir, specifier);
48+
const absSpecifier = isAbsolute(specifier) ? specifier : join(dir, specifier);
4949
const ws = chief.findWorkspaceByFilePath(absSpecifier);
5050
if (ws?.srcDir && ws.outDir && !absSpecifier.startsWith(ws.srcDir) && absSpecifier.startsWith(ws.outDir)) {
51-
const pattern = absSpecifier.replace(ws.outDir, ws.srcDir).replace(matchExt, extensions);
52-
patterns.add(pattern);
51+
const srcPath = absSpecifier.replace(ws.outDir, ws.srcDir).replace(matchExt, extensions);
52+
patterns.add(relative(dir, srcPath));
5353
} else {
54-
patterns.add(absSpecifier);
54+
patterns.add(specifier);
5555
}
5656
}
5757

0 commit comments

Comments
 (0)