-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtraverseDirectory.js
52 lines (51 loc) · 1.25 KB
/
traverseDirectory.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
var stats = {};
var gitDirectoryScrapper = (directoryUrl, linguistData) => {
directoryPromise = new Promise( (resolve, reject) => {
$.ajax({
url: directoryUrl,
success: result => {
console.log(result);
resolve(result);
},
error: (jqXHR, textStatus, errorThrown) => {
reject(errorThrown);
},
});
});
directoryPromise.then(
data => {
data.forEach( fileObject => {
if(fileObject.type == "dir")
gitDirectoryScrapper(fileObject.url, linguistData);
else {
var possibleLanguages = filterLanguages(linguistData, fileObject.path);
if(possibleLanguages.length == 0)
return;
var contentPromise = getLinesOfCodePromise(fileObject.url);
contentPromise.then(
content => {
var language = detectLanguage(possibleLanguages, content.content);
console.log(language);
if(language != "") {
if(!(typeof stats[language] === 'undefined')) {
console.log(fileObject.path);
stats[language] += content.length;
}
else
stats[language] = content.length;
}
console.log(stats);
printStats(stats);
},
error => {
console.log(error);
}
);
}
});
},
error => {
console.log(error);
}
);
};