UNPKG

3.51 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const fs_1 = require("fs");
4const path = require("path");
5const path_helpers_1 = require("./path-helpers");
6function findUpSync(fileName, currentDir, workingDir) {
7 let currentDirLocal = currentDir;
8 const fileNames = Array.isArray(fileName) ? fileName : [fileName];
9 const rootPath = path.parse(currentDirLocal).root;
10 do {
11 for (const f of fileNames) {
12 const tempPath = path.isAbsolute(f) ? f : path.resolve(currentDirLocal, f);
13 if (fs_1.existsSync(tempPath)) {
14 return tempPath;
15 }
16 }
17 if (currentDirLocal === rootPath) {
18 break;
19 }
20 currentDirLocal = path.dirname(currentDirLocal);
21 } while (currentDirLocal && (path_helpers_1.isSamePaths(workingDir, currentDirLocal) || path_helpers_1.isInFolder(workingDir, currentDirLocal)));
22 return null;
23}
24exports.findUpSync = findUpSync;
25//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC11cC5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsic3JjL3V0aWxzL2ZpbmQtdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQkFBZ0M7QUFDaEMsNkJBQTZCO0FBRTdCLGlEQUF5RDtBQUV6RCxTQUFnQixVQUFVLENBQUMsUUFBMkIsRUFBRSxVQUFrQixFQUFFLFVBQWtCO0lBQzFGLElBQUksZUFBZSxHQUFHLFVBQVUsQ0FBQztJQUNqQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFbEQsR0FBRztRQUNDLEtBQUssTUFBTSxDQUFDLElBQUksU0FBUyxFQUFFO1lBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0UsSUFBSSxlQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3RCLE9BQU8sUUFBUSxDQUFDO2FBQ25CO1NBQ0o7UUFFRCxJQUFJLGVBQWUsS0FBSyxRQUFRLEVBQUU7WUFDOUIsTUFBTTtTQUNUO1FBRUQsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDbkQsUUFBUSxlQUFlLElBQUksQ0FBQywwQkFBVyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsSUFBSSx5QkFBVSxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQyxFQUFFO0lBRW5ILE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFyQkQsZ0NBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IGlzSW5Gb2xkZXIsIGlzU2FtZVBhdGhzIH0gZnJvbSAnLi9wYXRoLWhlbHBlcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZmluZFVwU3luYyhmaWxlTmFtZTogc3RyaW5nIHwgc3RyaW5nW10sIGN1cnJlbnREaXI6IHN0cmluZywgd29ya2luZ0Rpcjogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgbGV0IGN1cnJlbnREaXJMb2NhbCA9IGN1cnJlbnREaXI7XG4gICAgY29uc3QgZmlsZU5hbWVzID0gQXJyYXkuaXNBcnJheShmaWxlTmFtZSkgPyBmaWxlTmFtZSA6IFtmaWxlTmFtZV07XG4gICAgY29uc3Qgcm9vdFBhdGggPSBwYXRoLnBhcnNlKGN1cnJlbnREaXJMb2NhbCkucm9vdDtcblxuICAgIGRvIHtcbiAgICAgICAgZm9yIChjb25zdCBmIG9mIGZpbGVOYW1lcykge1xuICAgICAgICAgICAgY29uc3QgdGVtcFBhdGggPSBwYXRoLmlzQWJzb2x1dGUoZikgPyBmIDogcGF0aC5yZXNvbHZlKGN1cnJlbnREaXJMb2NhbCwgZik7XG4gICAgICAgICAgICBpZiAoZXhpc3RzU3luYyh0ZW1wUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGVtcFBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudERpckxvY2FsID09PSByb290UGF0aCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50RGlyTG9jYWwgPSBwYXRoLmRpcm5hbWUoY3VycmVudERpckxvY2FsKTtcbiAgICB9IHdoaWxlIChjdXJyZW50RGlyTG9jYWwgJiYgKGlzU2FtZVBhdGhzKHdvcmtpbmdEaXIsIGN1cnJlbnREaXJMb2NhbCkgfHwgaXNJbkZvbGRlcih3b3JraW5nRGlyLCBjdXJyZW50RGlyTG9jYWwpKSk7XG5cbiAgICByZXR1cm4gbnVsbDtcbn1cbiJdfQ==
\No newline at end of file