chore: replace lodash with eta for config templating#4208
Merged
Conversation
Replace `_.template` in `renderConfigTemplate` with an inline `<%= %>` interpolator, drop the unused `_.merge` call in the import command (its result was never persisted), and use a factory in the upgrade-forge-config spec instead of `_.merge` for cloning.
Replace the hand-rolled `<%= %>` interpolation with `eta`, configured with `useWith`/`autoEscape: false`/`autoTrim: false` to match the previous lodash template semantics.
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
erickzhao
approved these changes
Apr 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summarize your changes:
This PR replaces the
lodashtemplate function withetafor rendering configuration templates. The changes include:Dependency updates: Removed
lodashand@types/lodashdependencies, addedetaas a replacement for template rendering functionality.Template rendering refactor: Updated
renderConfigTemplate()inforge-config.tsto useeta.renderString()instead of lodash'stemplate()function. The eta template engine supports the same<%= %>placeholder syntax and provides better performance.Code cleanup: Removed unused
merge()import fromupgrade-forge-config.spec.tsandimport.ts. Refactored test fixtures inupgrade-forge-config.spec.tsto use factory functions instead of shared mutable objects, improving test isolation.Test coverage: Added comprehensive test case for template interpolation covering simple placeholders, nested object access, and untouched plain strings.
Test Plan:
The existing test suite covers the template rendering functionality. New test case validates that
<%= %>placeholders are correctly interpolated from the template object, including nested property access.https://preview.claude.ai/code/session_01XkV7W4FyKPut4S21cZZY5U