Fix: TypeError when using --inject with comma-separated file paths #927
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.
This PR fixes an issue where using the --inject option with comma-separated file paths (e.g. --inject file1.js,file2.css) causes a TypeError.
Root Cause
The problem occurs because the inject parameter is received as a string, but the code attempts to call Array.every() on it, resulting in a TypeError.
Solution
This PR adds a custom option processor for the --inject option that automatically splits the comma-separated string into an array. This ensures that when the option value reaches the validation code, it's already in the expected array format.
Related Issues
fixed #914
Problem
When using the
--inject
option with comma-separated file paths, the application throws a TypeError because Commander.js passes the option value as a string, but the code expects an array when calling the.every()
method.Testing
test css,js path
test only js
test no inject