refactor tag.ts

pull/6898/head
Yuichiro Yamashita 5 years ago
parent 714433b831
commit 89d273323e

@ -85,7 +85,7 @@ export default function tag(parser: Parser) {
parser.current().children.length parser.current().children.length
) { ) {
parser.error( parser.error(
parser_errors.invalid_element_content(slug, name), parser_errors.invalid_element_content(slug, name),
parser.current().children[0].start parser.current().children[0].start
); );
} }
@ -102,13 +102,15 @@ export default function tag(parser: Parser) {
} }
} }
const type = meta_tags.has(name) const type = (function () {
? meta_tags.get(name) if (meta_tags.has(name)) return meta_tags.get(name);
: (/[A-Z]/.test(name[0]) || name === 'svelte:self' || name === 'svelte:component') ? 'InlineComponent' if ((/[A-Z]/.test(name[0]) || name === 'svelte:self' || name === 'svelte:component')) return 'InlineComponent';
: name === 'svelte:fragment' ? 'SlotTemplate' if (name === 'svelte:fragment') return 'SlotTemplate';
: (name === 'svelte:element') ? 'DynamicElement' if (name === 'svelte:element') return 'DynamicElement';
: name === 'title' && parent_is_head(parser.stack) ? 'Title' if (name === 'title' && parent_is_head(parser.stack)) return 'Title';
: name === 'slot' && !parser.customElement ? 'Slot' : 'Element'; if (name === 'slot' && !parser.customElement) return 'Slot';
return 'Element';
})();
const element: TemplateNode = { const element: TemplateNode = {
start, start,
@ -182,7 +184,7 @@ export default function tag(parser: Parser) {
element.expression = definition.value[0].expression; element.expression = definition.value[0].expression;
} }
if (name === 'svelte:element') { if (name === 'svelte:element') {
const index = element.attributes.findIndex(attr => attr.type === 'Attribute' && attr.name === 'this'); const index = element.attributes.findIndex(attr => attr.type === 'Attribute' && attr.name === 'this');
if (index === -1) { if (index === -1) {
@ -276,7 +278,7 @@ function read_tag_name(parser: Parser) {
const match = fuzzymatch(name.slice(7), valid_meta_tags); const match = fuzzymatch(name.slice(7), valid_meta_tags);
parser.error( parser.error(
parser_errors.invalid_tag_name_svelte_element(valid_meta_tags, match), parser_errors.invalid_tag_name_svelte_element(valid_meta_tags, match),
start start
); );
} }

Loading…
Cancel
Save