Skip to content

tiny-md/esbuild-plugin-peggy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Esbuild Plugin Peggy popper

Test Maintainability Coverage npm version npm downloads Bundle size Gitpod Ready

πŸ”Œ Seamlessly load .pegjs or .peggy grammar files directly into your esbuild pipeline


✨ Features

  • Compile .pegjs / .peggy files as ES modules with zero config
  • Fully compatible with both JavaScript and TypeScript
  • No Node.js-only dependencies get into your codebase β€” frontend safe!
  • Supports custom parser options and per-file overrides
  • Simple, fast, and modern integration with esbuild

πŸ“¦ Installation

pnpm add esbuild-plugin-peggy

or

npm install esbuild-plugin-peggy

or

yarn add esbuild-plugin-peggy

πŸš€ Usage

// esbuild.config.ts
import { build } from "esbuild";
import { peggyPlugin } from "esbuild-plugin-peggy";

build({
  entryPoints: ["src/index.ts"],
  bundle: true,
  outfile: "dist/bundle.js",
  plugins: [peggyPlugin()],
});

Then in your source code:

import parser from "./grammar.pegjs";

const result = parser.parse("your input here");

βš™οΈ Plugin Options

You can pass either a global config or a list of per-file configs using ParserBuildOptions from peggy.

Global options

peggyPlugin({
  allowedStartRules: ["Expression"],
});

Per-file options

peggyPlugin([
  {
    pathPattern: /calculator\.pegjs$/,
    options: { allowedStartRules: ["Calc"] },
  },
]);

πŸ“ Supported File Types

  • .pegjs
  • .peggy

πŸ›  Example

import parser from "./math.pegjs";

console.log(parser.parse("2 + 2")); // 4

βœ… Why Use This?

  • Skip manual parser builds β€” just import and use
  • Compatible with modern tooling and frameworks
  • Great for in-browser parsing and visual tooling
  • Keeps frontend builds clean of Node-only deps

Star this [repository](https://github.com/tiny-md/esbuild-plugin-peggy) and share it with friends.

πŸ“œ License

Licensed under the MPL-2.0 license. Β© Mayank Chaudhari


πŸ“š Enroll in [our courses](https://mayank-chaudhari.vercel.app/courses) or [sponsor](https://github.com/sponsors/mayank1513) our work.

Made with πŸ’– by Mayank Kumar Chaudhari

About

πŸ”Œ Seamlessly load .pegjs or .peggy grammar files in your esbuild pipeline

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published