UNPKG

brain-cli

Version:

A command line tool used to run projects

39 lines (38 loc) 1.51 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "path"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.emulateNodeRecursiveLookup = void 0; const path = require("path"); /** * 模拟Node的递归找查找文件 * @param directory 指定递归开始的文件夹 * @param relativeFilename 相对路径<文件名> * @param previousDirectory 外部不做设定, 这个参数记录上一次文件夹位置, 用于检查是否到达文件夹顶层 * @returns {any} */ function emulateNodeRecursiveLookup(directory, relativeFilename, previousDirectory) { try { const loopUpTarget = path.resolve(directory, relativeFilename); return require(loopUpTarget); } catch (e) { directory = path.dirname(directory); if (previousDirectory != directory) { previousDirectory = directory; return emulateNodeRecursiveLookup(directory, relativeFilename, previousDirectory); } else { return null; } } } exports.emulateNodeRecursiveLookup = emulateNodeRecursiveLookup; });