{"library":"parse-imports","title":"ES Module Imports Parser","description":"parse-imports is a high-performance JavaScript utility for parsing ES module imports within a given string of code. It leverages the `es-module-lexer` (a WASM-based library) for its core parsing logic, ensuring speed and accuracy. The library is currently at version 3.0.0 and actively maintained, with major versions often introducing updated Node.js runtime requirements. Key features include identifying various module specifier types (e.g., package, relative, absolute, builtin), correctly unescaping specifier sequences, collecting default, named, and namespace imports, and handling dynamic `import()` expressions. It also provides functionality to resolve module specifier paths using `require.resolve`. This makes it a robust tool for static analysis, bundlers, and development tools that need to understand module dependencies.","language":"javascript","status":"active","last_verified":"Sun Apr 19","install":{"commands":["npm install parse-imports"],"cli":null},"imports":["import { parseImports } from 'parse-imports'","import { parseImportsSync } from 'parse-imports'","const { parseImports } = await import('parse-imports')"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { parseImports } from 'parse-imports'\n\nconst code = `\n  import a from 'b'\n  import * as c from './d'\n  import { e as f, g as h, i } from '/j'\n  import k, { l as m } from 'n'\n  import o, * as p from \"./q\"\n  import r, { s as t, u } from \"/v\"\n  import fs from 'fs'\n\n  ;(async () => {\n    await import(\"w\")\n    await import(\"x\" + \"y\")\n  })()\n`\n\nasync function main() {\n  console.log('--- Iterating over imports ---');\n  for (const $import of await parseImports(code)) {\n    console.log(`Type: ${$import.moduleSpecifier.type}, Value: ${$import.moduleSpecifier.value || $import.moduleSpecifier.code}, Dynamic: ${$import.isDynamicImport}`)\n  }\n\n  console.log('\\n--- Accessing as an array ---');\n  const imports = [...(await parseImports(code))];\n  console.log('First import:', imports[0]);\n  console.log('Seventh import (dynamic):', imports[7]);\n}\n\nmain().catch(console.error);","lang":"typescript","description":"Demonstrates parsing ES module imports from a code string, showing both asynchronous iteration and conversion to an array of import objects, highlighting different import types.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}