19 lines
464 B
TypeScript
19 lines
464 B
TypeScript
|
import * as fs from "fs";
|
||
|
import * as path from "path";
|
||
|
|
||
|
function getProjectRootRec(dirPath: string): string {
|
||
|
if (fs.existsSync(path.join(dirPath, "package.json"))) {
|
||
|
return dirPath;
|
||
|
}
|
||
|
return getProjectRootRec(path.join(dirPath, ".."));
|
||
|
}
|
||
|
|
||
|
let result: string | undefined = undefined;
|
||
|
|
||
|
export function getProjectRoot(): string {
|
||
|
if (result !== undefined) {
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
return (result = getProjectRootRec(__dirname));
|
||
|
}
|