UNPKG

typegpu

Version:

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

33 lines (32 loc) 974 B
import { isMatInstance, isVecInstance } from "../data/wgslTypes.js"; import { logger } from "../tgpuLogger.js"; export function safeStringify(item) { if (Array.isArray(item)) { return `[${item.map(safeStringify).join(', ')}]`; } const asString = String(item); if (asString !== '[object Object]') { return asString; } try { return JSON.stringify(item); } catch (error) { logger.warn('suspicious', 'Error parsing JSON:', error); return '<invalid json>'; } } export function niceStringify(item) { if (isVecInstance(item) || isMatInstance(item)) { return item.toString(); } if (Array.isArray(item)) { return `[${item.map(niceStringify).join(', ')}]`; } if (item && typeof item === 'object') { return `{ ${Object.entries(item) .map(([key, value]) => `${key}: ${niceStringify(value)}`) .join(', ')} }`; } return String(item); }