sloppy-module-parser
Parse imports/exports/requires with a focus on speed over 100% correctness
npm install sloppy-module-parser
Sometimes it might report requires that are indeed not requires but tries to not miss any.
This limitation gives it a massive speed boost compared to other parsers.
Usage
const { init, parse } = require('sloppy-module-parser')
await init()
console.log(parse(src))
API
async parser.init()
Init the async esm parser. Call this before using the module.
const res = parser.parse(src, type = 'module', strictMode = true)
Parses imports/requires from the source. type helps it understand what it should parse for.
Type should be one of the following: module / script / json.
If strict mode is false, and type is not module, it autodetects if any import / export statements
are used and if so auto corrects the type. This is useful for module interop.
The returned result looks like this
{
type: 'module',
resolutions: [
{
isImport: boolean,
isAddon: boolean,
position: [statementStart, inputStart, inputEnd],
input: string,
output: null
},
...
],
namedImports: [
{
isWildcard: boolean,
isExport: boolean,
names: [string, ...],
from: referenceToRelevantResolution
}
],
exports: [string, ...]
}
const exports = parser.exports(src, type)
Get the exports from a module. Type is the same as in parse.
License
Apache-2.0