diff --git a/src/compiler/compile/render_ssr/handlers/AwaitBlock.ts b/src/compiler/compile/render_ssr/handlers/AwaitBlock.ts index 1dbb3fd1cb..05c50b3e66 100644 --- a/src/compiler/compile/render_ssr/handlers/AwaitBlock.ts +++ b/src/compiler/compile/render_ssr/handlers/AwaitBlock.ts @@ -1,26 +1,37 @@ -import Renderer, { RenderOptions } from '../Renderer'; -import AwaitBlock from '../../nodes/AwaitBlock'; import { x } from 'code-red'; -import { get_const_tags } from './shared/get_const_tags'; +import { get_const_tags } from './shared/get_const_tags.js'; -export default function (node: AwaitBlock, renderer: Renderer, options: RenderOptions) { - renderer.push(); - renderer.render(node.pending.children, options); - const pending = renderer.pop(); +/** + * @param {AwaitBlock} node + * @param {Renderer} renderer + * @param {import('../Renderer').RenderOptions} options + */ +export default function (node, renderer, options) { + renderer.push(); + renderer.render(node.pending.children, options); - renderer.push(); - renderer.render(node.then.children, options); - const then = renderer.pop(); + /** + * @type {undefined} + */ + const pending = renderer.pop(); + renderer.push(); + renderer.render(node.then.children, options); - renderer.add_expression(x` + /** + * @type {undefined} + */ + const then = renderer.pop(); + renderer.add_expression(x ` function(__value) { if (@is_promise(__value)) { __value.then(null, @noop); return ${pending}; } - return (function(${node.then_node ? node.then_node : ''}) { ${get_const_tags( - node.then.const_tags - )}; return ${then}; }(__value)); + return (function(${node.then_node ? node.then_node : ''}) { ${get_const_tags(node.then.const_tags)}; return ${then}; }(__value)); }(${node.expression.node}) `); } + + + + diff --git a/src/compiler/compile/utils/nodes_to_template_literal.js b/src/compiler/compile/utils/nodes_to_template_literal.js index 106a336786..7f3c15a7d8 100644 --- a/src/compiler/compile/utils/nodes_to_template_literal.js +++ b/src/compiler/compile/utils/nodes_to_template_literal.js @@ -1,12 +1,12 @@ /** * Transforms a list of Text and MustacheTags into a TemplateLiteral expression. * Start/End positions on the elements of the expression are not set. - * @param {Array} value - * @returns {import("C:/repos/svelte/svelte/node_modules/.pnpm/@types+estree@1.0.0/node_modules/@types/estree/index").TemplateLiteral} + * @param {Array} value + * @returns {import('estree').TemplateLiteral} */ export function nodes_to_template_literal(value) { /** - * @type {TemplateLiteral} + * @type {import('estree').TemplateLiteral} */ const literal = { type: 'TemplateLiteral', @@ -15,7 +15,7 @@ export function nodes_to_template_literal(value) { }; /** - * @type {TemplateElement} + * @type {import('estree').TemplateElement} */ let quasi = { type: 'TemplateElement', @@ -27,7 +27,7 @@ export function nodes_to_template_literal(value) { quasi.value.raw += node.raw; } else if (node.type === 'MustacheTag') { literal.quasis.push(quasi); - literal.expressions.push(node.expression); + literal.expressions.push(/** @type {any} */ (node.expression)); quasi = { type: 'TemplateElement', value: { raw: '', cooked: null },