Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 90x 90x 90x 90x 90x 90x 90x 90x 90x 108x 103x 108x 14x 14x 14x 103x 103x 103x 103x 90x 90x 90x 43x 43x 90x 2x 2x 2x 2x 2x 2x 2x 2x 37x 36x 36x 36x 36x 36x 36x 36x 36x 37x 37x | /** @import { Effect, TemplateNode } from '#client' */ import { add_snippet_symbol } from '../../../shared/validate.js'; import { EFFECT_TRANSPARENT } from '../../constants.js'; import { branch, block, destroy_effect } from '../../reactivity/effects.js'; import { dev_current_component_function, set_dev_current_component_function } from '../../runtime.js'; import { hydrate_node, hydrating } from '../hydration.js'; /** * @template {(node: TemplateNode, ...args: any[]) => void} SnippetFn * @param {TemplateNode} node * @param {() => SnippetFn | null | undefined} get_snippet * @param {(() => any)[]} args * @returns {void} */ export function snippet(node, get_snippet, ...args) { var anchor = node; /** @type {SnippetFn | null | undefined} */ var snippet; /** @type {Effect | null} */ var snippet_effect; block(() => { if (snippet === (snippet = get_snippet())) return; if (snippet_effect) { destroy_effect(snippet_effect); snippet_effect = null; } if (snippet) { snippet_effect = branch(() => /** @type {SnippetFn} */ (snippet)(anchor, ...args)); } }, EFFECT_TRANSPARENT); if (hydrating) { anchor = hydrate_node; } } /** * In development, wrap the snippet function so that it passes validation, and so that the * correct component context is set for ownership checks * @param {any} component * @param {(node: TemplateNode, ...args: any[]) => void} fn */ export function wrap_snippet(component, fn) { return add_snippet_symbol((/** @type {TemplateNode} */ node, /** @type {any[]} */ ...args) => { var previous_component_function = dev_current_component_function; set_dev_current_component_function(component); try { return fn(node, ...args); } finally { set_dev_current_component_function(previous_component_function); } }); } |