| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 | | import { dirname, resolve } from 'path'; |  | import { readdirSync, statSync } from 'fs'; |  |   |  | export default 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; |  |     } |  | } | 
 |