From d713c98f9a1c81276b1e4bca148adfe882061440 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Fri, 12 May 2023 12:06:59 +0200 Subject: [PATCH] Convert src/compiler/compile/render_ssr/handlers/Slot.ts to JavaScript --- .../compile/render_ssr/handlers/Slot.ts | 69 +++++++++---------- 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/src/compiler/compile/render_ssr/handlers/Slot.ts b/src/compiler/compile/render_ssr/handlers/Slot.ts index 31c9731187..544ece495d 100644 --- a/src/compiler/compile/render_ssr/handlers/Slot.ts +++ b/src/compiler/compile/render_ssr/handlers/Slot.ts @@ -1,44 +1,43 @@ -import Renderer, { RenderOptions } from '../Renderer'; -import Slot from '../../nodes/Slot'; import { x } from 'code-red'; -import get_slot_data from '../../utils/get_slot_data'; +import get_slot_data from '../../utils/get_slot_data.js'; import { get_slot_scope } from './shared/get_slot_scope'; -export default function ( - node: Slot, - renderer: Renderer, - options: RenderOptions & { - slot_scopes: Map; - } -) { - const slot_data = get_slot_data(node.values); - const slot = node.get_static_attribute_value('slot'); - const nearest_inline_component = node.find_nearest(/InlineComponent/); - - if (slot && nearest_inline_component) { - renderer.push(); - } - - renderer.push(); - renderer.render(node.children, options); - const result = renderer.pop(); - - renderer.add_expression(x` +/** + * @param {import('../../nodes/Slot.js').default} node + * @param {import('../Renderer.js').default} renderer + * @param {RenderOptions & { + * slot_scopes: Map; + * }} options + */ +export default function (node, renderer, options) { + const slot_data = get_slot_data(node.values); + const slot = node.get_static_attribute_value('slot'); + const nearest_inline_component = node.find_nearest(/InlineComponent/); + if (slot && nearest_inline_component) { + renderer.push(); + } + renderer.push(); + renderer.render(node.children, options); + const result = renderer.pop(); + renderer.add_expression(x ` #slots.${node.slot_name} ? #slots.${node.slot_name}(${slot_data}) : ${result} `); + if (slot && nearest_inline_component) { + const lets = node.lets; + const seen = new Set(lets.map((l) => l.name.name)); + nearest_inline_component.lets.forEach((l) => { + if (!seen.has(l.name.name)) + lets.push(l); + }); + options.slot_scopes.set(slot, { + input: get_slot_scope(node.lets), + output: renderer.pop() + }); + } +} + + - if (slot && nearest_inline_component) { - const lets = node.lets; - const seen = new Set(lets.map((l) => l.name.name)); - nearest_inline_component.lets.forEach((l) => { - if (!seen.has(l.name.name)) lets.push(l); - }); - options.slot_scopes.set(slot, { - input: get_slot_scope(node.lets), - output: renderer.pop() - }); - } -}