esbuild-glsl
Version:
ESBuild plugin to load webGL shaders from .glsl files.
4 lines (3 loc) • 460 B
JavaScript
import i from"fs";var o=()=>(Date.now()*Math.random()).toString(36).slice(0,8),r=`webgl-${o()}`,u=()=>({name:r,setup(n){n.onLoad({filter:/\.glsl$/,namespace:"file"},l=>{let e=i.readFileSync(l.path,"utf8").replace(/\/\*.*\*\//gm,"").replace(/\/\/.*/g,"").replace(/ ([=+*-/%><&^|]|[=!><+*-/]=|&&|\|\||\^\^) /g,t=>t.trim()).split(`
`).map(t=>t.trim()).filter(Boolean);return{contents:`${e[0]}
${e.slice(1).join("")}`,loader:"text"}})}});export{u as webglPlugin};