UNPKG

@translation-summary/core

Version:

View a summary of missing translation files into a folder

51 lines (50 loc) 2.46 kB
"use strict"; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TranslationSummary = void 0; var file_helper_1 = require("./file.helper"); var options_1 = require("./options"); var TranslationSummary = /** @class */ (function () { function TranslationSummary(options) { if (options === void 0) { options = new options_1.Options(); } this.options = options; } TranslationSummary.prototype.searchLanguages = function (files) { var _this = this; var regex = new RegExp(this.options.filePattern); var data = files.filter(function (f) { return regex.test(f); }).map(function (f) { return _this.options.extractLanguage(f); }); return __spreadArrays(Array.from(new Set(data))); }; TranslationSummary.prototype.fileSummary = function (files, file, languages) { var _this = this; var langs = languages.map(function (lang) { var _a; var includes = files.includes(_this.options.replaceExtension(file, lang, _this.options.filePatternForReplace, _this.options.fileExtension)); return _a = {}, _a[lang] = includes ? 'exists' : 'missing translation', _a; }); return Object.assign.apply(Object, __spreadArrays([{ file: file }], langs)); }; TranslationSummary.prototype.getNativeFiles = function (files) { var regex = new RegExp(this.options.filePattern); return files.filter(function (f) { return !regex.test(f); }); }; TranslationSummary.prototype.getSummary = function () { var _this = this; var fileHelper = new file_helper_1.FileHelper(this.options); var files = fileHelper.getFileNames(this.options.folderPath); var languages = this.searchLanguages(files); var nativeFiles = this.getNativeFiles(files); var result = nativeFiles.map(function (file) { return _this.fileSummary(files, file, languages); }); return result; }; return TranslationSummary; }()); exports.TranslationSummary = TranslationSummary;