node-loc
Version:
ts-lib [](https://www.npmjs.com/package/ts-lib)
56 lines • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Glob = require("glob");
const _ = require("lodash");
const Path = require("path");
const file_1 = require("./file");
const DefaultInfo = {
total: 0,
code: 0,
comment: 0
};
class LocDir {
constructor(pattern) {
this.pattern = pattern;
const { files, info, languages } = this.loadInfo();
this.files = files;
this.info = info;
this.languages = languages;
}
loadInfo() {
const pathes = Glob.sync(this.pattern);
const files = [];
const info = _.cloneDeep(DefaultInfo);
const languages = {};
pathes.map(path => {
if (path) {
const fullPath = Path.resolve('./', path);
const file = new file_1.LocFile(fullPath);
const fileLineInfo = file.getInfo().lines;
const lang = file.getInfo().lang;
info.total += fileLineInfo.total;
info.code += fileLineInfo.code;
info.comment += fileLineInfo.comment;
languages[lang] = (languages[lang] || 0) + fileLineInfo.code;
files.push(file);
}
});
return {
files,
info,
languages
};
}
getPattern() {
return this.pattern;
}
getInfo() {
const { info, languages } = this;
return {
info,
languages
};
}
}
exports.LocDir = LocDir;
//# sourceMappingURL=directory.js.map