mirror of
https://github.com/strapi/strapi.git
synced 2025-11-13 08:38:09 +00:00
fix graphql error handling
This commit is contained in:
parent
ec07719f3b
commit
37500df27c
@ -17,7 +17,6 @@
|
|||||||
"@graphql-tools/utils": "^8.0.2",
|
"@graphql-tools/utils": "^8.0.2",
|
||||||
"@strapi/utils": "3.6.8",
|
"@strapi/utils": "3.6.8",
|
||||||
"apollo-server-core": "3.1.2",
|
"apollo-server-core": "3.1.2",
|
||||||
"apollo-server-errors": "3.2.0",
|
|
||||||
"apollo-server-koa": "3.1.2",
|
"apollo-server-koa": "3.1.2",
|
||||||
"glob": "^7.1.7",
|
"glob": "^7.1.7",
|
||||||
"graphql": "15.5.1",
|
"graphql": "15.5.1",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const { toUpper, snakeCase, pick } = require('lodash/fp');
|
const { toUpper, snakeCase, pick, isEmpty } = require('lodash/fp');
|
||||||
const {
|
const {
|
||||||
HttpError,
|
HttpError,
|
||||||
ForbiddenError,
|
ForbiddenError,
|
||||||
@ -12,15 +12,16 @@ const {
|
|||||||
ApolloError,
|
ApolloError,
|
||||||
UserInputError: ApolloUserInputError,
|
UserInputError: ApolloUserInputError,
|
||||||
ForbiddenError: ApolloForbiddenError,
|
ForbiddenError: ApolloForbiddenError,
|
||||||
} = require('apollo-server-errors');
|
} = require('apollo-server-koa');
|
||||||
|
const { GraphQLError } = require('graphql');
|
||||||
|
|
||||||
const formatToCode = name => `STRAPI_${toUpper(snakeCase(name))}`;
|
const formatToCode = name => `STRAPI_${toUpper(snakeCase(name))}`;
|
||||||
const formatErrorToExtension = error => ({ error: pick(['name', 'message', 'details'])(error) });
|
const formatErrorToExtension = error => ({ error: pick(['name', 'message', 'details'])(error) });
|
||||||
|
|
||||||
const formatGraphqlError = error => {
|
const formatGraphqlError = error => {
|
||||||
const originalError = error.originalError;
|
const { originalError } = error;
|
||||||
|
|
||||||
if (originalError instanceof ApolloError) {
|
if (isEmpty(originalError)) {
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,10 +38,13 @@ const formatGraphqlError = error => {
|
|||||||
return new ApolloError(originalError.message, name, formatErrorToExtension(originalError));
|
return new ApolloError(originalError.message, name, formatErrorToExtension(originalError));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (originalError instanceof ApolloError || originalError instanceof GraphQLError) {
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
// Internal server error
|
// Internal server error
|
||||||
strapi.log.error(error);
|
strapi.log.error(originalError);
|
||||||
error.message = 'An error occured';
|
return ApolloError('Internal Server Error', 'INTERNAL_SERVER_ERROR');
|
||||||
return error;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = formatGraphqlError;
|
module.exports = formatGraphqlError;
|
||||||
|
|||||||
@ -690,7 +690,6 @@ describe('Test Graphql Relations API End to End', () => {
|
|||||||
errors: [
|
errors: [
|
||||||
{
|
{
|
||||||
message: 'Cannot query field "privateName" on type "Person".',
|
message: 'Cannot query field "privateName" on type "Person".',
|
||||||
// message: 'Cannot query field "people" on type "Query".',
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|||||||
@ -6480,11 +6480,6 @@ apollo-server-env@^4.0.3:
|
|||||||
dependencies:
|
dependencies:
|
||||||
node-fetch "^2.6.1"
|
node-fetch "^2.6.1"
|
||||||
|
|
||||||
apollo-server-errors@3.2.0:
|
|
||||||
version "3.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.2.0.tgz#6c5051107b073c09bb55c2554878af0e97d59d08"
|
|
||||||
integrity sha512-Y7YH3JVAaR1199ao4dae3j1UrF9D/6AJwHpsORTjI3BvrwjU1X7Nk1VvEHn9bZfZF6ONaqUM+uCLm5c8GPhffQ==
|
|
||||||
|
|
||||||
apollo-server-errors@^3.0.1, apollo-server-errors@^3.1.0:
|
apollo-server-errors@^3.0.1, apollo-server-errors@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.1.0.tgz#0b890dc7ae36a1f0ca4841d353e8d1c3c6524ee2"
|
resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.1.0.tgz#0b890dc7ae36a1f0ca4841d353e8d1c3c6524ee2"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user