UNPKG

typegpu

Version:

A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.

28 lines (27 loc) 863 B
import { isSnippet } from "../../data/snippet.js"; import { getResolutionCtx } from "../../execMode.js"; /** * "The reverse of snipping" * Injects resolved snippets into a template string. */ export function stitch(strings, ...snippets) { const ctx = getResolutionCtx(); function resolveSnippet(maybeSnippet) { return isSnippet(maybeSnippet) ? ctx.resolveSnippet(maybeSnippet).value : maybeSnippet; } let result = ''; for (let i = 0; i < strings.length; ++i) { result += strings[i]; const snippet = snippets[i]; if (Array.isArray(snippet)) { result += snippet .filter((s) => s !== undefined) .map(resolveSnippet) .join(', '); } else if (snippet) { result += resolveSnippet(snippet); } } return result; }