All files / src/internal/server/blocks snippet.js

100% Statements 21/21
100% Branches 2/2
100% Functions 2/2
100% Lines 21/21

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 221x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 3x 3x 3x  
/** @import { Snippet } from 'svelte' */
/** @import { Payload } from '#server' */
/** @import { Getters } from '#shared' */
import { add_snippet_symbol } from '../../shared/validate.js';
 
/**
 * Create a snippet programmatically
 * @template {unknown[]} Params
 * @param {{
 *   render: (...params: Params) => string
 *   update?: (element: Element, ...params: Getters<Params>) => void,
 * }} options
 * @returns {Snippet<Params>}
 */
export function createRawSnippet({ render }) {
	const snippet_fn = (/** @type {Payload} */ payload, /** @type {Params} */ ...args) => {
		payload.out += render(...args);
	};
	add_snippet_symbol(snippet_fn);
	return /** @type {Snippet} */ (snippet_fn);
}