UNPKG

1.59 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.relocatedError = exports.createGraphQLError = void 0;
4const graphql_1 = require("graphql");
5const possibleGraphQLErrorProperties = [
6 'message',
7 'locations',
8 'path',
9 'nodes',
10 'source',
11 'positions',
12 'originalError',
13 'name',
14 'stack',
15 'extensions',
16];
17function isGraphQLErrorLike(error) {
18 return (error != null &&
19 typeof error === 'object' &&
20 Object.keys(error).every(key => possibleGraphQLErrorProperties.includes(key)));
21}
22function createGraphQLError(message, options) {
23 if (options?.originalError &&
24 !(options.originalError instanceof Error) &&
25 isGraphQLErrorLike(options.originalError)) {
26 options.originalError = createGraphQLError(options.originalError.message, options.originalError);
27 }
28 if (graphql_1.versionInfo.major >= 17) {
29 return new graphql_1.GraphQLError(message, options);
30 }
31 return new graphql_1.GraphQLError(message, options?.nodes, options?.source, options?.positions, options?.path, options?.originalError, options?.extensions);
32}
33exports.createGraphQLError = createGraphQLError;
34function relocatedError(originalError, path) {
35 return createGraphQLError(originalError.message, {
36 nodes: originalError.nodes,
37 source: originalError.source,
38 positions: originalError.positions,
39 path: path == null ? originalError.path : path,
40 originalError,
41 extensions: originalError.extensions,
42 });
43}
44exports.relocatedError = relocatedError;