Skip to content

Commit 5246121

Browse files
committed
docs: explain
1 parent 3caf1c1 commit 5246121

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

src/compile/transform-dependencies.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,24 @@
33
const walk = require('acorn-walk')
44
const acorn = require('acorn')
55

6+
/**
7+
* Transforms dependency module names by removing version specifiers.
8+
*
9+
* Parses JavaScript code and walks through the AST to find all require() calls
10+
* and import declarations. Extracts module names from strings that include
11+
* version information (e.g., 'is-emoji@1.0.0' becomes 'is-emoji').
12+
*
13+
* Handles both:
14+
* - Scoped packages: '@scope/package@1.0.0' → '@scope/package'
15+
* - Regular packages: 'package@1.0.0' → 'package'
16+
*
17+
* This transformation is necessary because the dependency strings include
18+
* version specifiers for installation tracking, but require/import statements
19+
* should only reference the base module name.
20+
*
21+
* @param {string} code - JavaScript code containing require() or import statements
22+
* @returns {string} Transformed code with version specifiers removed from dependencies
23+
*/
624
module.exports = code => {
725
const ast = acorn.parse(code, { ecmaVersion: 2023, sourceType: 'module' })
826

0 commit comments

Comments
 (0)