🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@react-pug/pug-lexer

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@react-pug/pug-lexer

The pug lexer (takes a string and converts it to an array of tokens)

latest
Source
npmnpm
Version
0.1.17
Version published
Weekly downloads
741
20.68%
Maintainers
1
Weekly downloads
 
Created
Source

@react-pug/pug-lexer

The Pug lexer. This module is responsible for taking a string and converting it into an array of tokens.

Build Status Dependencies Status DevDependencies Status NPM version Coverage Status

Installation

npm install @react-pug/pug-lexer

Usage

var lex = require('@react-pug/pug-lexer');

lex(str, options)

Convert Pug string to an array of tokens.

options can contain the following properties:

  • filename (string): The name of the Pug file; it is used in error handling if provided.
  • plugins (array): An array of plugins, in the order they should be applied.

For react-pug usage, this fork also supports modern TypeScript expression syntax inside Pug expressions and attributes, including as, satisfies, typed inline handlers, and spread attrs with TS casts.

console.log(JSON.stringify(lex('div(data-foo="bar")', {filename: 'my-file.pug'}), null, '  '))
[
  {
    "type": "tag",
    "line": 1,
    "val": "div",
    "selfClosing": false
  },
  {
    "type": "attrs",
    "line": 1,
    "attrs": [
      {
        "name": "data-foo",
        "val": "\"bar\"",
        "escaped": true
      }
    ]
  },
  {
    "type": "eos",
    "line": 1
  }
]

new lex.Lexer(str, options)

Constructor for a Lexer class. This is not meant to be used directly unless you know what you are doing.

options may contain the following properties:

  • filename (string): The name of the Pug file; it is used in error handling if provided.
  • interpolated (boolean): if the Lexer is created as a child lexer for inline tag interpolation (e.g. #[p Hello]). Defaults to false.
  • startingLine (integer): the real line number of the first line in the input. It is also used for inline tag interpolation. Defaults to 1.
  • plugins (array): An array of plugins, in the order they should be applied.

License

MIT

Notes

  • This package is maintained in the react-pug monorepo.
  • It is a forked, vendored copy aligned with react-pug's TypeScript-in-Pug requirements.
  • Version numbering was reset under the @react-pug/* namespace, so 0.1.6 is newer than the older upstream-derived 4.x package line previously used here.

Attribution

This package is derived from the original pug-lexer package in the pugjs/pug monorepo:

https://github.com/pugjs/pug/tree/master/packages/pug-lexer

Keywords

pug

FAQs

Package last updated on 16 Apr 2026

Did you know?

Socket

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