1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.relocatedError = exports.createGraphQLError = void 0;
|
4 | const graphql_1 = require("graphql");
|
5 | const possibleGraphQLErrorProperties = [
|
6 | 'message',
|
7 | 'locations',
|
8 | 'path',
|
9 | 'nodes',
|
10 | 'source',
|
11 | 'positions',
|
12 | 'originalError',
|
13 | 'name',
|
14 | 'stack',
|
15 | 'extensions',
|
16 | ];
|
17 | function isGraphQLErrorLike(error) {
|
18 | return (error != null &&
|
19 | typeof error === 'object' &&
|
20 | Object.keys(error).every(key => possibleGraphQLErrorProperties.includes(key)));
|
21 | }
|
22 | function 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 | }
|
33 | exports.createGraphQLError = createGraphQLError;
|
34 | function 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 | }
|
44 | exports.relocatedError = relocatedError;
|