File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 33const walk = require ( 'acorn-walk' )
44const 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+ */
624module . exports = code => {
725 const ast = acorn . parse ( code , { ecmaVersion : 2023 , sourceType : 'module' } )
826
You can’t perform that action at this time.
0 commit comments