UNPKG

esbuild-peggy

Version:

esbuild plugin for importing PEG.js / Peggy parsers directly in JavaScript / TypeScript

4 lines (3 loc) 1.35 kB
"use strict";var u=Object.create;var a=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var E=(t,e)=>{for(var n in e)a(t,n,{get:e[n],enumerable:!0})},c=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of f(e))!d.call(t,o)&&o!==n&&a(t,o,{get:()=>e[o],enumerable:!(s=m(e,o))||s.enumerable});return t};var p=(t,e,n)=>(n=t!=null?u(P(t)):{},c(e||!t||!t.__esModule?a(n,"default",{value:t,enumerable:!0}):n,t)),O=t=>c(a({},"__esModule",{value:!0}),t);var A={};E(A,{peggyPlugin:()=>x});module.exports=O(A);var g=p(require("node:fs/promises"),1),l=p(require("peggy"),1),y="pegjs-loader",L="file",h=/\.peg(js|gy)$/,x=(t={})=>({name:y,setup(e){e.onLoad({filter:h,namespace:L},async n=>{let s=await g.default.readFile(n.path,"utf8"),o={output:"source",...t};try{return{contents:`export default ${l.default.generate(s,o)}`}}catch(i){if(i!=null&&i instanceof l.default.GrammarError){let r=i;return{errors:[{text:r?.message,location:{file:n.path,line:r?.location?.start?.line??0,column:(r?.location?.start?.column??1)-1,length:(r?.location?.end?.offset??1)-(r?.location?.start?.offset??0),lineText:s.split(` `).slice(r?.location?.start?.line??0,r?.location?.start?.line).join(` `)}}]}}else throw i}})}});0&&(module.exports={peggyPlugin});