UNPKG

next-translate-scanner

Version:

Scan next-translate code for translations and update json files.

46 lines (45 loc) 1.78 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const jsx_lexer_1 = __importDefault(require("../lexers/jsx-lexer")); const javascript_lexer_1 = __importDefault(require("../lexers/javascript-lexer")); const logger_1 = __importDefault(require("./logger")); const availableLexers = { mjs: [javascript_lexer_1.default], js: [javascript_lexer_1.default], ts: [javascript_lexer_1.default], jsx: [jsx_lexer_1.default], tsx: [jsx_lexer_1.default], default: [javascript_lexer_1.default] }; const extractTranslations = (filePaths, config) => { filePaths = [...new Set(filePaths)]; filePaths.sort(); let count = 0; let allTranslations = []; for (const filePath of filePaths) { count++; try { const content = fs_1.default.readFileSync(filePath, 'utf8'); const extension = path_1.default.extname(filePath).substring(1); const fileLexers = availableLexers[extension] || availableLexers.default; for (const lexer of fileLexers) { allTranslations = [ ...allTranslations, ...new lexer({ defaultNS: config.defaultNS, nsSeparator: config.nsSeparator }).extract(content) ]; } } catch (e) { logger_1.default.error(`Can't read "${filePath}"`); } } logger_1.default.info(`Stats: ${count} files were parsed`); logger_1.default.info(); return allTranslations; }; exports.default = extractTranslations;