nl_tokens: Build an object to represent a directory
pl_tokens: async function buildDir ( path ) { let dirObj = { } ; if ( fs . existsSync ( path ) ) { let files = fs . readdirSync ( path ) ; let itemPromises = [ ] ; for ( let file of files ) { itemPromises . push ( new Promise ( async ( resolve ) => { let curPath = path + '/' + file ; if ( fs . lstatSync ( curPath ) . isDirectory ( ) ) { // recurse dirObj [ file ] = await buildDir ( curPath ) ; resolve ( ) ; } else { fs . readFile ( curPath , function ( <mask> , data ) { // log.v(curPath.length > 80 ? curPath.substr(0, 35)  // + ' ... ' + curPath.substr(-40, 40) : curPath); dirObj [ file ] = data . toString ( ) ; resolve ( ) ; } ) ; // dirObj[file] = fs.readFileSync(curPath).toString(encoding); } } ) ) ; } await Promise . all ( itemPromises ) ; return dirObj ; } }