diff --git a/src/compiler/compile/render_ssr/Renderer.js b/src/compiler/compile/render_ssr/Renderer.js index 5af5117828..f065027129 100644 --- a/src/compiler/compile/render_ssr/Renderer.js +++ b/src/compiler/compile/render_ssr/Renderer.js @@ -15,9 +15,10 @@ import Text from './handlers/Text.js'; import Title from './handlers/Title.js'; import { collapse_template_literal } from '../utils/collapse_template_literal.js'; import { escape_template } from '../utils/stringify.js'; + function noop() {} -/** @type {Record} */ +/** @type {Record} */ const handlers = { AwaitBlock, Body: noop, @@ -39,18 +40,14 @@ const handlers = { Title, Window: noop }; -/** */ + export default class Renderer { - /** @default false */ has_bindings = false; /** @type {import('estree').Identifier} */ name = undefined; - /** - * @default [] - * @type {Array<{ current: { value: string }; literal: TemplateLiteral }>} - */ + /** @type {Array<{ current: { value: string }; literal: import('estree').TemplateLiteral }>} */ stack = []; /** @type {{ value: string }} */ @@ -59,10 +56,7 @@ export default class Renderer { /** @type {import('estree').TemplateLiteral} */ literal = undefined; - /** - * @default [] - * @type {AppendTarget[]} - */ + /** @type {import('../../interfaces.js').AppendTarget[]} */ targets = []; constructor({ name }) { this.name = name; @@ -111,8 +105,8 @@ export default class Renderer { } /** - * @param {INode[]} nodes - * @param {RenderOptions} options + * @param {import('../nodes/interfaces.js').INode[]} nodes + * @param {import('./private.js').RenderOptions} options */ render(nodes, options) { nodes.forEach((node) => { @@ -124,11 +118,3 @@ export default class Renderer { }); } } - -/** @typedef {(node: any, renderer: Renderer, options: CompileOptions) => void} Handler */ - -/** @typedef {Object} RenderOptions - * @property {(c:number)=>{line:number;column:number}} locate - * @property {string} [head_id] - * @property {boolean} [has_added_svelte_hash] - */ diff --git a/src/compiler/compile/render_ssr/handlers/AwaitBlock.js b/src/compiler/compile/render_ssr/handlers/AwaitBlock.js index cc7f253959..1fff81ffa7 100644 --- a/src/compiler/compile/render_ssr/handlers/AwaitBlock.js +++ b/src/compiler/compile/render_ssr/handlers/AwaitBlock.js @@ -4,7 +4,7 @@ import { get_const_tags } from './shared/get_const_tags.js'; /** * @param {import('../../nodes/AwaitBlock.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions} options + * @param {import('../private.js').RenderOptions} options */ export default function (node, renderer, options) { renderer.push(); diff --git a/src/compiler/compile/render_ssr/handlers/Comment.js b/src/compiler/compile/render_ssr/handlers/Comment.js index 0154bc8789..6ecf0af0ce 100644 --- a/src/compiler/compile/render_ssr/handlers/Comment.js +++ b/src/compiler/compile/render_ssr/handlers/Comment.js @@ -1,7 +1,7 @@ /** * @param {import('../../nodes/Comment.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions} options + * @param {import('../private.js').RenderOptions} options */ export default function (node, renderer, options) { if (options.preserveComments) { diff --git a/src/compiler/compile/render_ssr/handlers/DebugTag.js b/src/compiler/compile/render_ssr/handlers/DebugTag.js index 3ae8bb0ff6..87eb47db81 100644 --- a/src/compiler/compile/render_ssr/handlers/DebugTag.js +++ b/src/compiler/compile/render_ssr/handlers/DebugTag.js @@ -3,7 +3,7 @@ import { x, p } from 'code-red'; /** * @param {import('../../nodes/DebugTag.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions} options + * @param {import('../private.js').RenderOptions} options */ export default function (node, renderer, options) { if (!options.dev) return; diff --git a/src/compiler/compile/render_ssr/handlers/EachBlock.js b/src/compiler/compile/render_ssr/handlers/EachBlock.js index 7005eac6f8..53ae6dd7b5 100644 --- a/src/compiler/compile/render_ssr/handlers/EachBlock.js +++ b/src/compiler/compile/render_ssr/handlers/EachBlock.js @@ -4,7 +4,7 @@ import { get_const_tags } from './shared/get_const_tags.js'; /** * @param {import('../../nodes/EachBlock.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions} options + * @param {import('../private.js').RenderOptions} options */ export default function (node, renderer, options) { const args = [node.context_node]; diff --git a/src/compiler/compile/render_ssr/handlers/Element.js b/src/compiler/compile/render_ssr/handlers/Element.js index 6a11a2b96c..a1aea688bf 100644 --- a/src/compiler/compile/render_ssr/handlers/Element.js +++ b/src/compiler/compile/render_ssr/handlers/Element.js @@ -15,7 +15,7 @@ import { regex_starts_with_newline } from '../../../utils/patterns.js'; /** * @param {import('../../nodes/Element.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions} options + * @param {import('../private.js').RenderOptions} options */ export default function (node, renderer, options) { const children = remove_whitespace_children(node.children, node.next); diff --git a/src/compiler/compile/render_ssr/handlers/Head.js b/src/compiler/compile/render_ssr/handlers/Head.js index 6c897ce994..133ecad4d5 100644 --- a/src/compiler/compile/render_ssr/handlers/Head.js +++ b/src/compiler/compile/render_ssr/handlers/Head.js @@ -3,7 +3,7 @@ import { x } from 'code-red'; /** * @param {import('../../nodes/Head.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions} options + * @param {import('../private.js').RenderOptions} options */ export default function (node, renderer, options) { const head_options = { diff --git a/src/compiler/compile/render_ssr/handlers/HtmlTag.js b/src/compiler/compile/render_ssr/handlers/HtmlTag.js index c0ef5b6ada..1a210ec00d 100644 --- a/src/compiler/compile/render_ssr/handlers/HtmlTag.js +++ b/src/compiler/compile/render_ssr/handlers/HtmlTag.js @@ -1,7 +1,7 @@ /** * @param {import('../../nodes/RawMustacheTag.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions} options + * @param {import('../private.js').RenderOptions} options */ export default function (node, renderer, options) { if (options.hydratable) renderer.add_string(''); diff --git a/src/compiler/compile/render_ssr/handlers/IfBlock.js b/src/compiler/compile/render_ssr/handlers/IfBlock.js index c5db59e9ab..7e92c6b7c1 100644 --- a/src/compiler/compile/render_ssr/handlers/IfBlock.js +++ b/src/compiler/compile/render_ssr/handlers/IfBlock.js @@ -4,7 +4,7 @@ import { get_const_tags } from './shared/get_const_tags.js'; /** * @param {import('../../nodes/IfBlock.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions} options + * @param {import('../private.js').RenderOptions} options */ export default function (node, renderer, options) { const condition = node.expression.node; diff --git a/src/compiler/compile/render_ssr/handlers/InlineComponent.js b/src/compiler/compile/render_ssr/handlers/InlineComponent.js index 9ad06f0ee1..36b0b63a15 100644 --- a/src/compiler/compile/render_ssr/handlers/InlineComponent.js +++ b/src/compiler/compile/render_ssr/handlers/InlineComponent.js @@ -18,7 +18,7 @@ function get_prop_value(attribute) { /** * @param {import('../../nodes/InlineComponent.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions} options + * @param {import('../private.js').RenderOptions} options */ export default function (node, renderer, options) { const binding_props = []; diff --git a/src/compiler/compile/render_ssr/handlers/KeyBlock.js b/src/compiler/compile/render_ssr/handlers/KeyBlock.js index 254fa2870c..8aea8bc735 100644 --- a/src/compiler/compile/render_ssr/handlers/KeyBlock.js +++ b/src/compiler/compile/render_ssr/handlers/KeyBlock.js @@ -1,7 +1,7 @@ /** * @param {import('../../nodes/KeyBlock.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions} options + * @param {import('../private.js').RenderOptions} options */ export default function (node, renderer, options) { renderer.render(node.children, options); diff --git a/src/compiler/compile/render_ssr/handlers/Slot.js b/src/compiler/compile/render_ssr/handlers/Slot.js index adae473b55..4d1c38dc28 100644 --- a/src/compiler/compile/render_ssr/handlers/Slot.js +++ b/src/compiler/compile/render_ssr/handlers/Slot.js @@ -5,7 +5,7 @@ import { get_slot_scope } from './shared/get_slot_scope.js'; /** * @param {import('../../nodes/Slot.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions & { + * @param {import('../private.js').RenderOptions & { * slot_scopes: Map; * }} options */ diff --git a/src/compiler/compile/render_ssr/handlers/SlotTemplate.js b/src/compiler/compile/render_ssr/handlers/SlotTemplate.js index 2f017ba822..8dd12a8004 100644 --- a/src/compiler/compile/render_ssr/handlers/SlotTemplate.js +++ b/src/compiler/compile/render_ssr/handlers/SlotTemplate.js @@ -6,7 +6,7 @@ import { get_const_tags } from './shared/get_const_tags.js'; /** * @param {import('../../nodes/SlotTemplate.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions & { + * @param {import('../private.js').RenderOptions & { * slot_scopes: Map; * }} options */ diff --git a/src/compiler/compile/render_ssr/handlers/Tag.js b/src/compiler/compile/render_ssr/handlers/Tag.js index 4f615d3b9d..7f42327c3e 100644 --- a/src/compiler/compile/render_ssr/handlers/Tag.js +++ b/src/compiler/compile/render_ssr/handlers/Tag.js @@ -3,7 +3,7 @@ import { x } from 'code-red'; /** * @param {any} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions} _options + * @param {import('../private.js').RenderOptions} _options */ export default function (node, renderer, _options) { const snippet = node.expression.node; diff --git a/src/compiler/compile/render_ssr/handlers/Text.js b/src/compiler/compile/render_ssr/handlers/Text.js index 42f2c5c38c..ac596e5df2 100644 --- a/src/compiler/compile/render_ssr/handlers/Text.js +++ b/src/compiler/compile/render_ssr/handlers/Text.js @@ -3,7 +3,7 @@ import { escape_html } from '../../utils/stringify.js'; /** * @param {import('../../nodes/Text.js').default} node * @param {import('../Renderer.js').default} renderer - * @param {import('../Renderer.js').RenderOptions} _options + * @param {import('../private.js').RenderOptions} _options */ export default function (node, renderer, _options) { let text = node.data; @@ -12,7 +12,7 @@ export default function (node, renderer, _options) { } else if ( !node.parent || node.parent.type !== 'Element' || - (/** @type {import('../../nodes/Element.js').default} */ (node.parent).name !== 'script' && + /** @type {import('../../nodes/Element.js').default} */ ((node.parent).name !== 'script' && /** @type {import('../../nodes/Element.js').default} */ (node.parent).name !== 'style') ) { // unless this Text node is inside a