-
Notifications
You must be signed in to change notification settings - Fork 0
[Snyk] Security upgrade type-graphql from 0.16.0 to 1.0.0 #65
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-VALIDATOR-13395830
Summary of ChangesHello @saurabharch, 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, automatically generated by Snyk, focuses on enhancing the project's security posture by performing a major version upgrade of 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request, automatically generated by Snyk, upgrades type-graphql from 0.16.0 to 1.0.0 to fix a security vulnerability. This is a major version upgrade and introduces breaking changes that will impact your project.
My review has identified a critical issue. The formatArgumentValidationError function, used in src/index.ts, has been removed in this new version of type-graphql. This will break your server's validation error handling. I have added a comment to package.json explaining the issue and providing a code example for the necessary fix. After addressing this breaking change, the upgrade should be safe to merge.
| "pg": "^7.8.0", | ||
| "reflect-metadata": "^0.1.13", | ||
| "type-graphql": "^0.16.0", | ||
| "type-graphql": "^1.0.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Upgrading type-graphql to a new major version (1.0.0) introduces breaking changes that will affect your project.
The function formatArgumentValidationError has been removed from type-graphql since v0.17.0. Your code in src/index.ts at line 23 uses this function to format validation errors for Apollo Server, and it is imported on line 4. This will cause a runtime error as the function is no longer exported.
To fix this, you will need to:
- Remove the import of
formatArgumentValidationErrorfromsrc/index.ts. - Provide a custom
formatErrorfunction to theApolloServerconstructor.
Here is an example of how you can implement the formatError function in src/index.ts:
import { GraphQLError } from "graphql";
import { ArgumentValidationError } from "type-graphql";
// ... other imports
// ... in main function
const apolloServer = new ApolloServer({
schema,
formatError: (error: GraphQLError) => {
const originalError = error.originalError;
if (originalError instanceof ArgumentValidationError) {
// You can customize the error response here.
// For example, to expose validation errors:
return {
message: error.message,
locations: error.locations,
path: error.path,
extensions: {
code: 'GRAPHQL_VALIDATION_FAILED',
validationErrors: originalError.validationErrors,
}
};
}
return error;
},
context: ({ req, res }: any) => ({ req, res })
});This change is necessary for your application to handle validation errors correctly after the upgrade. Without it, your server's error handling for GraphQL validation will be broken.
Snyk has created this PR to fix 1 vulnerabilities in the npm dependencies of this project.
Snyk changed the following file(s):
package.jsonpackage-lock.jsonVulnerabilities that will be fixed with an upgrade:
SNYK-JS-VALIDATOR-13395830
Important
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic
Learn how to fix vulnerabilities with free interactive lessons:
🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.