move svelte-ignore comment extraction to parser phase

pull/6504/head
Simon Holthausen 5 years ago
parent 196245b822
commit faa0631a05

@ -36,7 +36,7 @@ import { DecodedSourceMap, RawSourceMap } from '@ampproject/remapping/dist/types
import { clone } from '../utils/clone';
import compiler_warnings from './compiler_warnings';
import compiler_errors from './compiler_errors';
import { extract_ignores_above_position, extract_svelte_ignore_from_comments } from './utils/extract_svelte_ignore';
import { extract_ignores_above_position, extract_svelte_ignore_from_comments } from '../utils/extract_svelte_ignore';
interface ComponentOptions {
namespace?: string;

@ -7,7 +7,7 @@ import Component from '../Component';
import { CssNode } from './interfaces';
import hash from '../utils/hash';
import compiler_warnings from '../compiler_warnings';
import { extract_ignores_above_position } from '../utils/extract_svelte_ignore';
import { extract_ignores_above_position } from '../../utils/extract_svelte_ignore';
function remove_css_prefix(name: string): string {
return name.replace(/^-((webkit)|(moz)|(o)|(ms))-/, '');

@ -1,6 +1,5 @@
import { TemplateNode } from '../../interfaces';
import Component from '../Component';
import { extract_svelte_ignore } from '../utils/extract_svelte_ignore';
import Node from './shared/Node';
import TemplateScope from './shared/TemplateScope';
@ -12,6 +11,6 @@ export default class Comment extends Node {
constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {
super(component, parent, scope, info);
this.data = info.data;
this.ignores = extract_svelte_ignore(this.data);
this.ignores = info.ignores;
}
}

@ -10,7 +10,7 @@ import { ClassDeclaration, FunctionExpression, Node, Statement, ObjectExpression
import { apply_preprocessor_sourcemap } from '../../utils/mapped_code';
import { RawSourceMap, DecodedSourceMap } from '@ampproject/remapping/dist/types/types';
import { Node as PeriscopicNode } from 'periscopic';
import { flatten } from '../utils/flatten';
import { flatten } from '../../utils/flatten';
export default function dom(
component: Component,

@ -7,6 +7,7 @@ import { Parser } from '../index';
import { Directive, DirectiveType, TemplateNode, Text } from '../../interfaces';
import fuzzymatch from '../../utils/fuzzymatch';
import list from '../../utils/list';
import { extract_svelte_ignore } from '../../utils/extract_svelte_ignore';
// eslint-disable-next-line no-useless-escape
const valid_tag_name = /^\!?[a-zA-Z]{1,}:?[a-zA-Z0-9\-]*/;
@ -64,7 +65,8 @@ export default function tag(parser: Parser) {
start,
end: parser.index,
type: 'Comment',
data
data,
ignores: extract_svelte_ignore(data)
});
return;

@ -1,4 +1,4 @@
import { TemplateNode } from '../../interfaces';
import { TemplateNode } from '../interfaces';
import { flatten } from './flatten';
const pattern = /^\s*svelte-ignore\s+([\s\S]+)\s*$/m;
@ -24,9 +24,8 @@ export function extract_ignores_above_position(position: number, template_nodes:
return [];
}
if (node.type === 'Comment') {
const ignores = extract_svelte_ignore(node.data || '');
if (ignores.length) {
return ignores;
if (node.ignores.length) {
return node.ignores;
}
}
}

@ -0,0 +1,16 @@
{
"html": {
"start": 0,
"end": 30,
"type": "Fragment",
"children": [
{
"start": 0,
"end": 30,
"type": "Comment",
"data": " svelte-ignore foo bar ",
"ignores": ["foo", "bar"]
}
]
}
}

@ -8,7 +8,8 @@
"start": 0,
"end": 18,
"type": "Comment",
"data": " a comment "
"data": " a comment ",
"ignores": []
}
]
}

Loading…
Cancel
Save