UNPKG

1.32 kBJavaScriptView Raw
1var fs = require('fs');
2var conf = require('../../../constants.js');
3
4function find_extensions(folder, ext, ret)
5{
6 try {
7 fs.accessSync(folder, fs.constants.R_OK);
8 } catch (err) {
9 return;
10 }
11 if(fs.statSync(folder).isDirectory() && folder.indexOf('node_modules') == -1 && (fs.statSync(folder)["mode"] & 4))
12 {
13 fs.readdirSync(folder).forEach(file => {
14 var tmp;
15 if(Number.parseInt(folder.lastIndexOf('/') + 1) === folder.length)
16 tmp = folder + file;
17 else
18 tmp = folder + '/' + file;
19 if(fs.statSync(tmp).isDirectory())
20 find_extensions(tmp, ext, ret);
21 else
22 {
23 var p = true;
24 for(var i = 0; i < ext.length;i++)
25 if(ext[i].test(file))
26 p = false;
27 if(p)
28 ret.push(folder + '/' + file);
29 }
30 });
31 }
32}
33
34module.exports.make_available_extension = function make_available_extension(opts, ret)
35{
36 if(typeof opts == 'object' && typeof ret == 'object')
37 {
38 var mas = opts.ext.split(',');
39 for(var i = 0;i < mas.length;i++)
40 mas[i] = '.' + mas[i];
41 var res = [];
42 for(var i = 0;i < mas.length;i++)
43 res[i] = new RegExp(mas[i] + '$');
44 find_extensions(process.cwd(), res, ret);
45 }
46}