UNPKG

node-loc

Version:

ts-lib [![npm](https://img.shields.io/npm/v/npm.svg)](https://www.npmjs.com/package/ts-lib)

56 lines 1.58 kB
"use strict"; 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