| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 | | const { dirname, resolve } = require('path'); |  | const { readdirSync, statSync } = require('fs'); |  |   |  | module.exports = function (start, callback) { |  |     let dir = resolve('.', start); |  |     let tmp, stats = statSync(dir); |  |   |  |     if (!stats.isDirectory()) { |  |         dir = dirname(dir); |  |     } |  |   |  |     while (true) { |  |         tmp = callback(dir, readdirSync(dir)); |  |         if (tmp) return resolve(dir, tmp); |  |         dir = dirname(tmp = dir); |  |         if (tmp === dir) break; |  |     } |  | } | 
 |