@@ -56,7 +56,10 @@ export default function mustache(parser: Parser) {
56
56
} else if ( block . type === 'AwaitBlock' ) {
57
57
expected = 'await' ;
58
58
} else {
59
- parser . error ( `Unexpected block closing tag` ) ;
59
+ parser . error ( {
60
+ code : `unexpected-block-close` ,
61
+ message : `Unexpected block closing tag`
62
+ } ) ;
60
63
}
61
64
62
65
parser . eat ( expected , true ) ;
@@ -86,9 +89,10 @@ export default function mustache(parser: Parser) {
86
89
} else if ( parser . eat ( parser . v2 ? ':elseif' : 'elseif' ) ) {
87
90
const block = parser . current ( ) ;
88
91
if ( block . type !== 'IfBlock' )
89
- parser . error (
90
- 'Cannot have an {{elseif ...}} block outside an {{#if ...}} block'
91
- ) ;
92
+ parser . error ( {
93
+ code : `invalid-elseif-placement` ,
94
+ message : 'Cannot have an {{elseif ...}} block outside an {{#if ...}} block'
95
+ } ) ;
92
96
93
97
parser . requireWhitespace ( ) ;
94
98
@@ -117,9 +121,10 @@ export default function mustache(parser: Parser) {
117
121
} else if ( parser . eat ( parser . v2 ? ':else' : 'else' ) ) {
118
122
const block = parser . current ( ) ;
119
123
if ( block . type !== 'IfBlock' && block . type !== 'EachBlock' ) {
120
- parser . error (
121
- 'Cannot have an {{else}} block outside an {{#if ...}} or {{#each ...}} block'
122
- ) ;
124
+ parser . error ( {
125
+ code : `invalid-else-placement` ,
126
+ message : 'Cannot have an {{else}} block outside an {{#if ...}} or {{#each ...}} block'
127
+ } ) ;
123
128
}
124
129
125
130
parser . allowWhitespace ( ) ;
@@ -191,7 +196,10 @@ export default function mustache(parser: Parser) {
191
196
} else if ( parser . eat ( 'await' ) ) {
192
197
type = 'AwaitBlock' ;
193
198
} else {
194
- parser . error ( `Expected if, each or await` ) ;
199
+ parser . error ( {
200
+ code : `expected-block-type` ,
201
+ message : `Expected if, each or await`
202
+ } ) ;
195
203
}
196
204
197
205
parser . requireWhitespace ( ) ;
@@ -249,28 +257,42 @@ export default function mustache(parser: Parser) {
249
257
parser . allowWhitespace ( ) ;
250
258
251
259
const destructuredContext = parser . readIdentifier ( ) ;
252
- if ( ! destructuredContext ) parser . error ( `Expected name` ) ;
260
+ if ( ! destructuredContext ) parser . error ( {
261
+ code : `expected-name` ,
262
+ message : `Expected name`
263
+ } ) ;
253
264
254
265
block . destructuredContexts . push ( destructuredContext ) ;
255
266
parser . allowWhitespace ( ) ;
256
267
} while ( parser . eat ( ',' ) ) ;
257
268
258
- if ( ! block . destructuredContexts . length ) parser . error ( `Expected name` ) ;
269
+ if ( ! block . destructuredContexts . length ) parser . error ( {
270
+ code : `expected-name` ,
271
+ message : `Expected name`
272
+ } ) ;
273
+
259
274
block . context = block . destructuredContexts . join ( '_' ) ;
260
275
261
276
parser . allowWhitespace ( ) ;
262
277
parser . eat ( ']' , true ) ;
263
278
} else {
264
279
block . context = parser . readIdentifier ( ) ;
265
- if ( ! block . context ) parser . error ( `Expected name` ) ;
280
+ if ( ! block . context ) parser . error ( {
281
+ code : `expected-name` ,
282
+ message : `Expected name`
283
+ } ) ;
266
284
}
267
285
268
286
parser . allowWhitespace ( ) ;
269
287
270
288
if ( parser . eat ( ',' ) ) {
271
289
parser . allowWhitespace ( ) ;
272
290
block . index = parser . readIdentifier ( ) ;
273
- if ( ! block . index ) parser . error ( `Expected name` ) ;
291
+ if ( ! block . index ) parser . error ( {
292
+ code : `expected-name` ,
293
+ message : `Expected name`
294
+ } ) ;
295
+
274
296
parser . allowWhitespace ( ) ;
275
297
}
276
298
@@ -287,7 +309,10 @@ export default function mustache(parser: Parser) {
287
309
expression . property . computed ||
288
310
expression . property . type !== 'Identifier'
289
311
) {
290
- parser . error ( 'invalid key' , expression . start ) ;
312
+ parser . error ( {
313
+ code : `invalid-key` ,
314
+ message : 'invalid key'
315
+ } , expression . start ) ;
291
316
}
292
317
293
318
block . key = expression . property . name ;
@@ -296,7 +321,10 @@ export default function mustache(parser: Parser) {
296
321
parser . allowWhitespace ( ) ;
297
322
} else if ( parser . eat ( '@' ) ) {
298
323
block . key = parser . readIdentifier ( ) ;
299
- if ( ! block . key ) parser . error ( `Expected name` ) ;
324
+ if ( ! block . key ) parser . error ( {
325
+ code : `expected-name` ,
326
+ message : `Expected name`
327
+ } ) ;
300
328
parser . allowWhitespace ( ) ;
301
329
}
302
330
}
0 commit comments