esbuild-plugin-peggy
Version:
An esbuild plugin for importing PEG.js / Peggy grammar files directly into your JavaScript or TypeScript projects.
2 lines (1 loc) • 431 B
JavaScript
import p from"node:fs";import{generate as a}from"peggy";var g=()=>(Date.now()*Math.random()).toString(36).slice(0,8),l=`peggy-${g()}`,y=t=>({name:l,setup(o){o.onLoad({filter:/\.peg(js|gy)$/,namespace:"file"},e=>{var n;let i=p.readFileSync(e.path,"utf8"),r=Array.isArray(t)?(n=t.find(({pathPattern:s})=>s.test(e.path)))==null?void 0:n.options:t;return{contents:`export default ${a(i,r)}`,loader:"ts"}})}});export{y as peggyPlugin};