mongo - feat: moving to more robust options and properties#1872
mongo - feat: moving to more robust options and properties#1872
Conversation
Summary of ChangesHello @jaredwray, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly overhauls the configuration and property management within the MongoDB storage adapter. The primary goal was to introduce a more robust and flexible way to handle adapter options, moving away from a single Highlights
Changelog
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 090628f2d9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Code Review
This pull request significantly refactors the configuration handling for the Keyv MongoDB storage adapter. The KeyvMongo class now uses individual private properties with public getters and setters for its configuration options (e.g., url, collection, namespace, useGridFS, db, readPreference), replacing the previous single opts object. This change improves type safety, encapsulation, and allows for dynamic modification of settings after instantiation. The constructor logic has been updated to parse options into these new properties, and a new extractMongoOptions method separates Keyv-specific options from those passed directly to the MongoDB client. The Options type has been streamlined to directly extend MongoClientOptions, and extensive JSDoc comments have been added to the codebase. The README.md has been updated with a table of contents and detailed documentation for the new constructor options and properties. New test cases were added to validate the default property values, constructor-based configuration, setter functionality, and to ensure backward compatibility for the opts getter. There were no specific review comments provided for these changes.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1872 +/- ##
=======================================
Coverage 99.96% 99.96%
=======================================
Files 32 32
Lines 2698 2747 +49
Branches 473 483 +10
=======================================
+ Hits 2697 2746 +49
Misses 1 1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Please check if the PR fulfills these requirements
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
mongo - feat: moving to more robust options and properties