1 | import fs from 'fs';
|
2 | import chalk from 'chalk';
|
3 | import {Extractor} from 'angular-gettext-tools';
|
4 |
|
5 | export 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 | }
|