mirror of https://github.com/sveltejs/svelte
parent
960c7294c8
commit
ff9f166f23
@ -1,23 +1,29 @@
|
||||
import Renderer, { RenderOptions } from '../Renderer';
|
||||
import Head from '../../nodes/Head';
|
||||
import { x } from 'code-red';
|
||||
import { Node } from 'estree';
|
||||
|
||||
export default function (node: Head, renderer: Renderer, options: RenderOptions) {
|
||||
/**
|
||||
* @param {import('../../nodes/Head.js').default} node
|
||||
* @param {import('../Renderer.js').default} renderer
|
||||
* @param {import('../Renderer.js').RenderOptions} options
|
||||
*/
|
||||
export default function (node, renderer, options) {
|
||||
const head_options = {
|
||||
...options,
|
||||
head_id: node.id
|
||||
};
|
||||
|
||||
renderer.push();
|
||||
renderer.render(node.children, head_options);
|
||||
const result = renderer.pop();
|
||||
let expression: Node = result;
|
||||
|
||||
/** @type {import('estree').Node} */
|
||||
let expression = 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 += ${expression}, ""`);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in new issue