fix: update import paths for utils #8664
Open
+136
−24
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
The fix addresses both issues:
Issue #8648: Components have /lib/utils hardcoded
Problem: Components get /lib/utils instead of the configured /app/function/lib/utils.
Fix: When a user configures an absolute path ending with /lib/utils (e.g., /app/function/lib/utils), it is preserved.
Issue #7348/#7557: Components default to src/lib/utils instead of src/utils
Problem: Setting "utils": "src/utils" still produces src/lib/utils.
Fix: When the alias doesn't end with /utils, /utils is appended. For relative paths like @/lib/utils or paths without explicit /lib/utils, /lib/utils is replaced with /src/utils.
Behavior
Detects both @/lib/utils and @/src/utils imports.
Uses the configured utils alias from components.json.
Preserves absolute paths: if you configure /app/function/lib/utils, it keeps that path.
Defaults to /src/utils: for relative/alias paths, replaces /lib/utils with /src/utils.
Handles sub-path imports: @/lib/utils/bar and @/src/utils/bar are supported.
Handles re-exports: detects cn in export statements.
All tests pass.