New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

bare-module-lexer

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bare-module-lexer

Heuristic lexer for detecting imports and exports in JavaScript modules

latest
Source
npmnpm
Version
1.4.7
Version published
Weekly downloads
33K
65.51%
Maintainers
1
Weekly downloads
 
Created
Source

bare-module-lexer

Heuristic lexer for detecting imports and exports in JavaScript modules. It trades off correctness for performance, aiming to reliably support the most common import and export patterns with as little overhead as possible.

Usage

const lex = require('bare-module-lexer')

lex(`
  const foo = require('./foo.js')
  exports.bar = 42
`)

// {
//   imports: [
//     { specifier: './foo.js', type: REQUIRE, names: [], position: [ 15, 24, 32 ] }
//   ],
//   exports: [
//     { name: 'bar', position: [ 37, 45, 48 ] }
//   ]
// }

API

const { imports, exports } = lex(source[, encoding][, options])

imports is an array of objects with the following shape:

imports = {
  specifier: 'string',
  type: number,
  names: ['string'],
  position: [
    number, // Import start
    number, // Specifier start
    number // Specifier end
  ]
}

exports is an array of objects with the following shape:

exports = {
  name: 'string',
  position: [
    number, // Export start
    number, // Name start
    number // Name end
  ]
}

Options are reserved.

lex.constants

ConstantDescription
REQUIRECommonJS require().
IMPORTES module import.
DYNAMICES module import() if IMPORT is set.
ADDONCommonJS require.addon() if REQUIRE is set, or ES module import.meta.addon() if IMPORT is set.
ASSETCommonJS require.asset() if REQUIRE is set, or ES module import.meta.asset() if IMPORT is set.
RESOLVECommonJS require.resolve() or require.addon.resolve() if REQUIRE and optionally ADDON are set, or ES module import.meta.resolve() or import.meta.addon.resolve() if IMPORT and optionally ADDON are set.
REEXPORTRe-export of a CommonJS require() if REQUIRE is set, or ES module export from if IMPORT is set.

License

Apache-2.0

FAQs

Package last updated on 15 Nov 2025

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