UNPKG

920 BJavaScriptView Raw
1import fs from 'fs';
2import chalk from 'chalk';
3import {Extractor} from 'angular-gettext-tools';
4
5export default class ExtractString {
6 constructor(_startingPath, _files) {
7 this.extractor = new Extractor();
8 this.startingPath = _startingPath;
9 this.files = _files;
10 }
11
12 readAndExtract(_path) {
13 return new Promise((_resolve, _reject) => {
14 try {
15 let fileContents = fs.readFileSync(_path, 'utf8');
16 let subPath = _path.slice(this.startingPath.length + 1);
17
18 this.extractor.parse(subPath, fileContents);
19 console.info(chalk.magenta('Extracted strings in ' + _path));
20 _resolve(_path);
21 } catch (_err) {
22 console.log(chalk.red(_err));
23 _reject(_err);
24 }
25 });
26 }
27
28 extractStrings() {
29 return Promise.all(this.files.map((element) => this.readAndExtract(element)))
30 .then(() => {
31 return this.extractor.toString();
32 });
33 }
34}