Convert src/compiler/compile/render_dom/wrappers/Comment.ts to JavaScript

pull/8569/head
Simon Holthausen 3 years ago
parent c2fb0243ad
commit c388557b76

@ -1,42 +1,51 @@
import Renderer from '../Renderer'; import Wrapper from './shared/Wrapper.js';
import Block from '../Block';
import Comment from '../../nodes/Comment';
import Wrapper from './shared/Wrapper';
import { x } from 'code-red'; import { x } from 'code-red';
import { Identifier } from 'estree';
/** @extends Wrapper */
export default class CommentWrapper extends Wrapper { export default class CommentWrapper extends Wrapper {
node: Comment;
var: Identifier; /** @type {import('../../nodes/Comment.js').default} */
node;
constructor(renderer: Renderer, block: Block, parent: Wrapper, node: Comment) {
super(renderer, block, parent, node); /** @type {import('estree').Identifier} */
this.var = x`c` as Identifier; var;
}
/**
render(block: Block, parent_node: Identifier, parent_nodes: Identifier) { * @param {import('../Renderer.js').default} renderer
if (!this.renderer.options.preserveComments) return; * @param {import('../Block.js').default} block
* @param {import('./shared/Wrapper.js').default} parent
const string_literal = { * @param {import('../../nodes/Comment.js').default} node
type: 'Literal', */
value: this.node.data, constructor(renderer, block, parent, node) {
loc: { super(renderer, block, parent, node);
start: this.renderer.locate(this.node.start), this.var = /** @type {import('estree').Identifier} */ (x `c`);
end: this.renderer.locate(this.node.end) }
}
}; /**
* @param {import('../Block.js').default} block
block.add_element( * @param {import('estree').Identifier} parent_node
this.var, * @param {import('estree').Identifier} parent_nodes
x`@comment(${string_literal})`, */
parent_nodes && x`@claim_comment(${parent_nodes}, ${string_literal})`, render(block, parent_node, parent_nodes) {
parent_node if (!this.renderer.options.preserveComments)
); return;
} const string_literal = {
type: 'Literal',
text() { value: this.node.data,
if (!this.renderer.options.preserveComments) return ''; loc: {
start: this.renderer.locate(this.node.start),
return `<!--${this.node.data}-->`; end: this.renderer.locate(this.node.end)
} }
};
block.add_element(this.var, x `@comment(${string_literal})`, parent_nodes && x `@claim_comment(${parent_nodes}, ${string_literal})`, parent_node);
}
text() {
if (!this.renderer.options.preserveComments)
return '';
return `<!--${this.node.data}-->`;
}
} }

Loading…
Cancel
Save