Socket
Socket
Sign inDemoInstall

@cliffdotai/pegjs-loader

Package Overview
Dependencies
72
Maintainers
5
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @cliffdotai/pegjs-loader

PEG.js loader for webpack


Version published
Weekly downloads
5
increased by150%
Maintainers
5
Install size
40.2 kB
Created
Weekly downloads
 

Readme

Source

PEG.js loader for webpack

build status npm version npm downloads

Install

npm install --save-dev pegjs-loader pegjs webpack

The pegjs-loader requires PEG.js and webpack as peerDependency. Thus you are able to specify the required versions accurately.

Usage

Documentation: Using loaders

var parser = require("!pegjs!./parser.pegjs");
// => returns compiled PEG.js parser

Apply via webpack config

It's recommended to adjust your webpack.config so pegjs! is applied automatically on all files ending with .pegjs:

module.exports = {
  ...
  module: {
    loaders: [
      {
        test: /\.pegjs$/,
        loader: 'pegjs-loader'
      }
    ]
  }
};

Then you only need to write: require("./parser.pegjs").

PEG.js options

You can pass options to PEG.js as query parameters. The following options are supported:

  • allowedStartRules - The rules the built parser will be allowed to start parsing from (default: the first rule in the grammar).

  • cache — If true, makes the parser cache results, avoiding exponential parsing time in pathological cases but making the parser slower (default: false).

  • dependencies - Parser dependencies, the value is an object which maps variables used to access the dependencies in the parser to module IDs used to load them (default: {}).

  • optimize - Whether to optimize the built parser either for speed or size (default: speed).

  • trace - If true, the tracing support in the built parser is enabled (default: false).

module.exports = {
  ...
  module: {
    loaders: [
      {
        test: /\.pegjs$/,
        loader: 'pegjs-loader?cache=true&optimize=size&allowedStartRules[]=RuleA,allowedStartRules[]=RuleB&trace=true'
      }
    ]
  }
};

Change Log

This project adheres to Semantic Versioning.
Every release, along with the migration instructions, if any, is documented on the Github Releases page.

Thanks

  • Victor Homyakov for the propagation of the cache option.
  • VladimirTechMan for the propagation of the optimize option and updating things to be compatible with PEG.js 0.10.0.
  • ragtime for the propagation of the allowedStartRules and trace options.
  • Jan Varwig for the Webpack 2 compatibility fix.
  • retorquere for the propagation of the dependencies option.

License

MIT (http://www.opensource.org/licenses/mit-license.php)

Keywords

FAQs

Last updated on 05 Apr 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc