You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import { join, resolve } from 'path'; import { readdir, stat } from 'fs'; import { promisify } from 'util';
const toStats = promisify(stat); const toRead = promisify(readdir);
export async function totalist(dir, callback, pre='') { dir = resolve('.', dir); await toRead(dir).then(arr => { return Promise.all( arr.map(str => { let abs = join(dir, str); return toStats(abs).then(stats => { return stats.isDirectory() ? totalist(abs, callback, join(pre, str)) : callback(join(pre, str), abs, stats) }); }) ); }); }
|