Spaces:
Running
Running
; | |
Object.defineProperty(exports, '__esModule', { | |
value: true, | |
}); | |
exports.locatedError = locatedError; | |
var _toError = require('../jsutils/toError.js'); | |
var _GraphQLError = require('./GraphQLError.js'); | |
/** | |
* Given an arbitrary value, presumably thrown while attempting to execute a | |
* GraphQL operation, produce a new GraphQLError aware of the location in the | |
* document responsible for the original Error. | |
*/ | |
function locatedError(rawOriginalError, nodes, path) { | |
var _nodes; | |
const originalError = (0, _toError.toError)(rawOriginalError); // Note: this uses a brand-check to support GraphQL errors originating from other contexts. | |
if (isLocatedGraphQLError(originalError)) { | |
return originalError; | |
} | |
return new _GraphQLError.GraphQLError(originalError.message, { | |
nodes: | |
(_nodes = originalError.nodes) !== null && _nodes !== void 0 | |
? _nodes | |
: nodes, | |
source: originalError.source, | |
positions: originalError.positions, | |
path, | |
originalError, | |
}); | |
} | |
function isLocatedGraphQLError(error) { | |
return Array.isArray(error.path); | |
} | |