1 | #!/usr/bin/env node
|
2 | "use strict";
|
3 | require('reflect-metadata');
|
4 | var compiler = require('@angular/compiler');
|
5 | var tsc = require('@angular/tsc-wrapped');
|
6 | var path = require('path');
|
7 | var extractor_1 = require('./extractor');
|
8 | function extract(ngOptions, cliOptions, program, host) {
|
9 | var resourceLoader = {
|
10 | get: function (s) {
|
11 | if (!host.fileExists(s)) {
|
12 |
|
13 | throw new Error("Compilation failed. Resource file not found: " + s);
|
14 | }
|
15 | return Promise.resolve(host.readFile(s));
|
16 | }
|
17 | };
|
18 | var extractor = extractor_1.Extractor.create(ngOptions, cliOptions.i18nFormat, program, host, resourceLoader);
|
19 | var bundlePromise = extractor.extract();
|
20 | return (bundlePromise).then(function (messageBundle) {
|
21 | var ext;
|
22 | var serializer;
|
23 | var format = (cliOptions.i18nFormat || 'xlf').toLowerCase();
|
24 | switch (format) {
|
25 | case 'xmb':
|
26 | ext = 'xmb';
|
27 | serializer = new compiler.Xmb();
|
28 | break;
|
29 | case 'xliff':
|
30 | case 'xlf':
|
31 | default:
|
32 | var htmlParser = new compiler.I18NHtmlParser(new compiler.HtmlParser());
|
33 | ext = 'xlf';
|
34 | serializer = new compiler.Xliff(htmlParser, compiler.DEFAULT_INTERPOLATION_CONFIG);
|
35 | break;
|
36 | }
|
37 | var dstPath = path.join(ngOptions.genDir, "messages." + ext);
|
38 | host.writeFile(dstPath, messageBundle.write(serializer), false);
|
39 | });
|
40 | }
|
41 |
|
42 | if (require.main === module) {
|
43 | var args = require('minimist')(process.argv.slice(2));
|
44 | var project = args.p || args.project || '.';
|
45 | var cliOptions = new tsc.I18nExtractionCliOptions(args);
|
46 | tsc.main(project, cliOptions, extract)
|
47 | .then(function (exitCode) { return process.exit(exitCode); })
|
48 | .catch(function (e) {
|
49 | console.error(e.stack);
|
50 | console.error('Extraction failed');
|
51 | process.exit(1);
|
52 | });
|
53 | }
|
54 |
|
\ | No newline at end of file |