|
|
|
@ -1,6 +1,7 @@
|
|
|
|
import Renderer, { RenderOptions } from '../Renderer';
|
|
|
|
import Renderer, { RenderOptions } from '../Renderer';
|
|
|
|
import Head from '../../nodes/Head';
|
|
|
|
import Head from '../../nodes/Head';
|
|
|
|
import { x } from 'code-red';
|
|
|
|
import { x } from 'code-red';
|
|
|
|
|
|
|
|
import { Node } from 'estree';
|
|
|
|
|
|
|
|
|
|
|
|
export default function(node: Head, renderer: Renderer, options: RenderOptions) {
|
|
|
|
export default function(node: Head, renderer: Renderer, options: RenderOptions) {
|
|
|
|
const head_options = {
|
|
|
|
const head_options = {
|
|
|
|
@ -11,6 +12,12 @@ export default function(node: Head, renderer: Renderer, options: RenderOptions)
|
|
|
|
renderer.push();
|
|
|
|
renderer.push();
|
|
|
|
renderer.render(node.children, head_options);
|
|
|
|
renderer.render(node.children, head_options);
|
|
|
|
const result = renderer.pop();
|
|
|
|
const result = renderer.pop();
|
|
|
|
|
|
|
|
let expression: Node = result;
|
|
|
|
|
|
|
|
if (options.hydratable) {
|
|
|
|
|
|
|
|
const start_comment = `HEAD_${node.id}_START`;
|
|
|
|
|
|
|
|
const end_comment = `HEAD_${node.id}_END`;
|
|
|
|
|
|
|
|
expression = x`'<!-- ${start_comment} -->' + ${expression} + '<!-- ${end_comment} -->'`;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
renderer.add_expression(x`$$result.head += '<!-- HEAD_${node.id}_START -->' + ${result} + '<!-- HEAD_${node.id}_END -->', ""`);
|
|
|
|
renderer.add_expression(x`$$result.head += ${expression}, ""`);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|