tidy and adjust error message

pull/5060/head
Conduitry 5 years ago
parent a617ca1b8a
commit c20740f832

@ -8,7 +8,7 @@ import error from '../utils/error';
type ParserState = (parser: Parser) => (ParserState | void);
interface LastAutoCloseTag {
interface LastAutoClosedTag {
tag: string;
reason: string;
depth: number;
@ -26,7 +26,7 @@ export class Parser {
css: Style[] = [];
js: Script[] = [];
meta_tags = {};
last_auto_closed_tag?: LastAutoCloseTag;
last_auto_closed_tag?: LastAutoClosedTag;
constructor(template: string, options: ParserOptions) {
if (typeof template !== 'string') {

@ -134,16 +134,12 @@ export default function tag(parser: Parser) {
// close any elements that don't have their own closing tags, e.g. <div><p></div>
while (parent.name !== name) {
if (parent.type !== 'Element') {
if (parser.last_auto_closed_tag && parser.last_auto_closed_tag.tag === name) {
const message = parser.last_auto_closed_tag && parser.last_auto_closed_tag.tag === name
? `</${name}> attempted to close <${name}> that was already automatically closed by <${parser.last_auto_closed_tag.reason}>`
: `</${name}> attempted to close an element that was not open`;
parser.error({
code: `invalid-closing-tag`,
message: `<${parser.last_auto_closed_tag.tag}> cannot have child element <${parser.last_auto_closed_tag.reason}>`,
}, start);
}
parser.error({
code: `invalid-closing-tag`,
message: `</${name}> attempted to close an element that was not open`
message
}, start);
}
@ -164,7 +160,7 @@ export default function tag(parser: Parser) {
} else if (closing_tag_omitted(parent.name, name)) {
parent.end = start;
parser.stack.pop();
parser.last_auto_closed_tag ={
parser.last_auto_closed_tag = {
tag: parent.name,
reason: name,
depth: parser.stack.length,

@ -1,6 +1,6 @@
{
"code": "invalid-closing-tag",
"message": "<p> cannot have child element <pre>",
"message": "</p> attempted to close <p> that was already automatically closed by <pre>",
"pos": 24,
"start": {
"character": 24,

Loading…
Cancel
Save