Skip to content

Commit 39c0f9e

Browse files
vicbvikerman
authored andcommitted
fix(ExtractorMerger): returns errors together with nodes (as a ParseTreeResult)
1 parent e60c765 commit 39c0f9e

File tree

3 files changed

+10
-11
lines changed

3 files changed

+10
-11
lines changed

modules/@angular/compiler/src/i18n/extractor_merger.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import * as html from '../ml_parser/ast';
1010
import {InterpolationConfig} from '../ml_parser/interpolation_config';
11+
import {ParseTreeResult} from '../ml_parser/parser';
1112

1213
import {digestMessage} from './digest';
1314
import * as i18n from './i18n_ast';
@@ -31,7 +32,7 @@ export function extractMessages(
3132

3233
export function mergeTranslations(
3334
nodes: html.Node[], translations: TranslationBundle, interpolationConfig: InterpolationConfig,
34-
implicitTags: string[], implicitAttrs: {[k: string]: string[]}): html.Node[] {
35+
implicitTags: string[], implicitAttrs: {[k: string]: string[]}): ParseTreeResult {
3536
const visitor = new _Visitor(implicitTags, implicitAttrs);
3637
return visitor.merge(nodes, translations, interpolationConfig);
3738
}
@@ -102,7 +103,7 @@ class _Visitor implements html.Visitor {
102103
*/
103104
merge(
104105
nodes: html.Node[], translations: TranslationBundle,
105-
interpolationConfig: InterpolationConfig): html.Node[] {
106+
interpolationConfig: InterpolationConfig): ParseTreeResult {
106107
this._init(_VisitorMode.Merge, interpolationConfig);
107108
this._translations = translations;
108109

@@ -111,12 +112,11 @@ class _Visitor implements html.Visitor {
111112

112113
const translatedNode = wrapper.visit(this, null);
113114

114-
// TODO(vicb): return MergeResult with errors
115115
if (this._inI18nBlock) {
116116
this._reportError(nodes[nodes.length - 1], 'Unclosed block');
117117
}
118118

119-
return translatedNode.children;
119+
return new ParseTreeResult(translatedNode.children, this._errors);
120120
}
121121

122122
visitExpansionCase(icuCase: html.ExpansionCase, context: any): any {

modules/@angular/compiler/src/i18n/html_parser.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,6 @@ export class HtmlParser implements BaseHtmlParser {
4646
const xtb = new Xtb(this._htmlParser, interpolationConfig);
4747
const translationBundle = TranslationBundle.load(this._translations, url, messageBundle, xtb);
4848

49-
const translatedNodes =
50-
mergeTranslations(parseResult.rootNodes, translationBundle, interpolationConfig, [], {});
51-
52-
return new ParseTreeResult(translatedNodes, []);
49+
return mergeTranslations(parseResult.rootNodes, translationBundle, interpolationConfig, [], {});
5350
}
5451
}

modules/@angular/compiler/test/i18n/extractor_merger_spec.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -410,10 +410,12 @@ function fakeTranslate(
410410

411411
const translations = new TranslationBundle(i18nMsgMap);
412412

413-
const translateNodes = mergeTranslations(
414-
htmlNodes, translations, DEFAULT_INTERPOLATION_CONFIG, implicitTags, implicitAttrs);
413+
const translatedNodes =
414+
mergeTranslations(
415+
htmlNodes, translations, DEFAULT_INTERPOLATION_CONFIG, implicitTags, implicitAttrs)
416+
.rootNodes;
415417

416-
return serializeHtmlNodes(translateNodes).join('');
418+
return serializeHtmlNodes(translatedNodes).join('');
417419
}
418420

419421
function extract(

0 commit comments

Comments
 (0)