Skip to content

Remove the ramda dependency#19

Merged
GrahamCampbell merged 1 commit intomainfrom
remove-ramda
Apr 27, 2026
Merged

Remove the ramda dependency#19
GrahamCampbell merged 1 commit intomainfrom
remove-ramda

Conversation

@GrahamCampbell
Copy link
Copy Markdown
Contributor

No description provided.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the ramda dependency by replacing its small helper usages with native JS equivalents and an in-repo safe merge helper, and adds unit tests to lock in the updated behavior (including prototype-pollution defenses).

Changes:

  • Replaced ramda helpers (endsWith, curry/curryN, mergeRight, isEmpty) with native JS and safeShallowAssign.
  • Hardened YAML parse options merging to avoid reserved-key/prototype-pollution edge cases.
  • Added unit tests for src/utils/fs, configuration path resolution, and ComponentsService outputs/graph edge cases.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated no comments.

Show a summary per file
File Description
test/unit/src/utils/fs.test.js Adds unit coverage for path detection, file existence semantics, parsing behavior, and safe option merging.
test/unit/src/configuration/resolve-path.test.js Validates config resolution order and directory-vs-file handling.
test/unit/src/components-service.test.js Covers outputs behavior with null-prototype registries and empty graph execution behavior.
src/utils/fs/readFileSync.js Removes Ramda currying; keeps behavior via plain function signature.
src/utils/fs/readFile.js Removes Ramda currying; keeps behavior via plain function signature.
src/utils/fs/parseFile.js Replaces mergeRight with safeShallowAssign for safer YAML options merging; removes currying.
src/utils/fs/isYamlPath.js Replaces Ramda endsWith with String.prototype.endsWith.
src/utils/fs/isJsonPath.js Replaces Ramda endsWith with String.prototype.endsWith.
src/utils/fs/fileExists.js Removes Ramda curry; keeps async behavior unchanged.
src/ComponentsService.js Replaces Ramda isEmpty checks with explicit .length / Object.keys().length checks.
package.json Removes ramda from dependencies.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@GrahamCampbell GrahamCampbell merged commit 567eb4c into main Apr 27, 2026
8 checks passed
@GrahamCampbell GrahamCampbell deleted the remove-ramda branch April 27, 2026 20:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants