UNPKG

2.09 kBJavaScriptView Raw
1#!/usr/bin/env node
2"use strict";
3require('reflect-metadata');
4var compiler = require('@angular/compiler');
5var tsc = require('@angular/tsc-wrapped');
6var path = require('path');
7var extractor_1 = require('./extractor');
8function extract(ngOptions, cliOptions, program, host) {
9 var resourceLoader = {
10 get: function (s) {
11 if (!host.fileExists(s)) {
12 // TODO: We should really have a test for error cases like this!
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// Entry point
42if (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//# sourceMappingURL=extract_i18n.js.map
\No newline at end of file