1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const webpack = require("webpack");
|
4 | const path = require("path");
|
5 | const rimraf = require("rimraf");
|
6 | const Task = require('../ember-cli/lib/models/task');
|
7 | const webpack_xi18n_config_1 = require("../models/webpack-xi18n-config");
|
8 | const config_1 = require("../models/config");
|
9 | const app_utils_1 = require("../utilities/app-utils");
|
10 | exports.Extracti18nTask = Task.extend({
|
11 | run: function (runTaskOptions) {
|
12 | const project = this.project;
|
13 | const appConfig = app_utils_1.getAppFromConfig(config_1.CliConfig.fromProject().config.apps, runTaskOptions.app);
|
14 | const buildDir = '.tmp';
|
15 | const genDir = runTaskOptions.outputPath || appConfig.root;
|
16 | const config = new webpack_xi18n_config_1.XI18nWebpackConfig({
|
17 | genDir,
|
18 | buildDir,
|
19 | i18nFormat: runTaskOptions.i18nFormat,
|
20 | verbose: runTaskOptions.verbose,
|
21 | progress: runTaskOptions.progress,
|
22 | app: runTaskOptions.app,
|
23 | }, appConfig).buildConfig();
|
24 | const webpackCompiler = webpack(config);
|
25 | return new Promise((resolve, reject) => {
|
26 | const callback = (err, stats) => {
|
27 | if (err) {
|
28 | return reject(err);
|
29 | }
|
30 | if (stats.hasErrors()) {
|
31 | reject();
|
32 | }
|
33 | else {
|
34 | resolve();
|
35 | }
|
36 | };
|
37 | webpackCompiler.run(callback);
|
38 | })
|
39 | .then(() => {
|
40 |
|
41 | rimraf.sync(path.resolve(project.root, buildDir));
|
42 | })
|
43 | .catch((err) => {
|
44 | if (err) {
|
45 | this.ui.writeError('\nAn error occured during the i18n extraction:\n'
|
46 | + ((err && err.stack) || err));
|
47 | }
|
48 | throw err;
|
49 | });
|
50 | }
|
51 | });
|
52 |
|
\ | No newline at end of file |