init
This commit is contained in:
+11
@@ -0,0 +1,11 @@
|
||||
import { DEV } from 'esm-env';
|
||||
import { hash } from '../../../utils.js';
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
*/
|
||||
export function html(value) {
|
||||
var html = String(value ?? '');
|
||||
var open = DEV ? `<!--${hash(html)}-->` : '<!---->';
|
||||
return open + html + '<!---->';
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
/** @import { Snippet } from 'svelte' */
|
||||
/** @import { Renderer } from '../renderer' */
|
||||
/** @import { Getters } from '#shared' */
|
||||
|
||||
/**
|
||||
* Create a snippet programmatically
|
||||
* @template {unknown[]} Params
|
||||
* @param {(...params: Getters<Params>) => {
|
||||
* render: () => string
|
||||
* setup?: (element: Element) => void | (() => void)
|
||||
* }} fn
|
||||
* @returns {Snippet<Params>}
|
||||
*/
|
||||
export function createRawSnippet(fn) {
|
||||
// @ts-expect-error the types are a lie
|
||||
return (/** @type {Renderer} */ renderer, /** @type {Params} */ ...args) => {
|
||||
var getters = /** @type {Getters<Params>} */ (args.map((value) => () => value));
|
||||
renderer.push(
|
||||
fn(...getters)
|
||||
.render()
|
||||
.trim()
|
||||
);
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user