Conversation
Summary of ChangesHello @whereisfarukk, 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 primarily addresses a linting issue within the Highlights
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.
Code Review
This pull request primarily addresses linting issues by reordering options, fixing indentation, and adding a newline between import groups. It also aims to improve error handling by replacing Error with NodeOperationError. While using NodeOperationError is a good practice, I've pointed out that in the context of the existing try...catch block, this change can lead to less clear error messages for the user. I've suggested reverting these specific changes to Error until the catch block can be refactored to handle NodeOperationError instances more appropriately. The other changes improve code readability and are well-implemented.
| throw new NodeOperationError( | ||
| this.getNode(), | ||
| 'Schema is required when type is "json_schema"', | ||
| ); |
There was a problem hiding this comment.
While using NodeOperationError is generally best practice in n8n nodes, in this specific context it leads to a less clear error message for the user. The catch block on line 916 wraps this error into another NodeOperationError, prefixing the message with Invalid JSON format for response_format: .... This makes the specific validation error (Schema is required when type is "json_schema") appear as a generic JSON format error.
To provide a clearer error, it would be better to either keep throwing a standard Error which the catch block seems designed to handle, or refactor the catch block to re-throw NodeOperationError instances directly. Given the scope of this PR, reverting to new Error(...) seems more appropriate.
throw new Error('Schema is required when type is "json_schema"');| throw new NodeOperationError( | ||
| this.getNode(), | ||
| 'Response format must be an object', | ||
| ); |
There was a problem hiding this comment.
Similar to my other comment, while using NodeOperationError is correct in principle, the catch block on line 916 will wrap this specific error inside a generic 'Invalid JSON format' error message. This can be confusing for the user. To ensure a clear and direct error message, it's better to throw a standard Error here, or to adjust the catch block to handle NodeOperationError differently. Since the catch block is not being changed, I recommend sticking with new Error(...) for now.
throw new Error('Response format must be an object');
No description provided.