dir.files("./", function(err, files) { console.log(files); }); dir.files("./", function(err, files) { // sort descending files.reverse(); // include only certain filenames files = files.filter(function(file: any) { return ['allowed', 'file', 'names'].indexOf(file) > -1; }); // exclude some filenames files = files.filter(function(file: any) { return ['exclude', 'these', 'files'].indexOf(file) === -1; }); }); dir.subdirs("./", function(err, subdirs) { console.log(subdirs); }); dir.paths("./", function(err, paths) { console.log('files:\n', paths.files); console.log('subdirs:\n', paths.dirs); }); dir.paths("./", true, function(err, paths) { console.log('paths:\n', paths); });
dir.subdirs(rootDir + '/rules/', (err, subdirs) => { const hostRule = (ruleName, subdir, subdirS) => { dir.files(subdir, (err, files) => { if (err) { throw err; } let relativeDir = '/gamerules/'; for (let i = 2; i < subdirS.length; i = i + 1) { relativeDir += subdirS[i] + '/'; } files.forEach((file) => { const fileS = file.split(/[\/\\]/); const route = relativeDir + fileS[fileS.length - 1]; console.log('Setting route ' + route + ' => ' + file); app.get(route, (req, res) => { res.sendFile(file); }); }); }); } subdirs.forEach((subdir) => { const relativeDir = subdir.replace(rootDir, ''); const subdirS = relativeDir.split(/[\/\\]/); const ruleName = subdirS[2]; console.log('Hosting rule ' + ruleName + ' path:' + relativeDir); hostRule(ruleName, subdir, subdirS); }); });