17 lines
616 B
TypeScript
17 lines
616 B
TypeScript
import path from "path"
|
|
|
|
function sliceAfterMatch(filePath: string, searchRoots: string[]) {
|
|
const normalizedPath = filePath.replaceAll("\\", "/")
|
|
for (const searchRoot of searchRoots) {
|
|
const index = normalizedPath.indexOf(searchRoot)
|
|
if (index === -1) continue
|
|
return normalizedPath.slice(index + searchRoot.length)
|
|
}
|
|
}
|
|
|
|
export function configEntryNameFromPath(filePath: string, searchRoots: string[]) {
|
|
const candidate = sliceAfterMatch(filePath, searchRoots) ?? path.basename(filePath)
|
|
const ext = path.extname(candidate)
|
|
return ext.length ? candidate.slice(0, -ext.length) : candidate
|
|
}
|