
Company News
Jerod Santo Joins Socket as Head of Media
Allow myself to introduce... myself.
bare-module-lexer
Advanced tools
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.
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 ] }
// ]
// }
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| Constant | Description |
|---|---|
REQUIRE | CommonJS require(). |
IMPORT | ES module import. |
DYNAMIC | ES module import() if IMPORT is set. |
ADDON | CommonJS require.addon() if REQUIRE is set, or ES module import.meta.addon() if IMPORT is set. |
ASSET | CommonJS require.asset() if REQUIRE is set, or ES module import.meta.asset() if IMPORT is set. |
RESOLVE | CommonJS 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. |
REEXPORT | Re-export of a CommonJS require() if REQUIRE is set, or ES module export from if IMPORT is set. |
Apache-2.0
FAQs
Heuristic lexer for detecting imports and exports in JavaScript modules
The npm package bare-module-lexer receives a total of 16,687 weekly downloads. As such, bare-module-lexer popularity was classified as popular.
We found that bare-module-lexer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Allow myself to introduce... myself.

Research
/Security News
A Twitch browser extension on Chrome and Firefox forwards users’ live OAuth session tokens through proxies controlled by a Russian bot service.

Security News
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.