UNPKG

wgsl-plus

Version:

A WGSL preprocessor, prettifier, minifier, obfuscator, and compiler with C-style macros, conditional compilation, file linking, and multi-format output for WebGPU shaders.

36 lines (35 loc) 1.29 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = generateOutput; const path_1 = __importDefault(require("path")); function generateOutput(outputPath, content, exportType) { const ext = path_1.default.extname(outputPath); if (ext === '.wgsl') { return content; } else if (ext === '.ts') { const escapedContent = content.replace(/`/g, '\\`').replace(/\${/g, '\\${'); return `export default \`${escapedContent}\`;`; } else if (ext === '.js') { if (!exportType) { exportType = 'esm'; } const escapedContent = content.replace(/`/g, '\\`').replace(/\${/g, '\\${'); if (exportType === 'esm') { return `export default \`${escapedContent}\`;`; } else if (exportType === 'commonjs') { return `module.exports = \`${escapedContent}\`;`; } else { throw new Error(`Invalid export type: ${exportType}. Must be 'esm' or 'commonjs'`); } } else { throw new Error(`Unsupported output extension: ${ext}. Must be .wgsl, .js, or .ts`); } }