@envelop/core 1.6.6 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1127,29 +1127,38 @@ class EnvelopError extends graphql.GraphQLError {
1127
1127
  super(message, undefined, undefined, undefined, undefined, undefined, extensions);
1128
1128
  }
1129
1129
  }
1130
- const formatError = (err, message) => {
1130
+ const formatError = (err, message, isDev) => {
1131
1131
  if (err instanceof graphql.GraphQLError) {
1132
1132
  if (err.originalError && err.originalError instanceof EnvelopError === false) {
1133
- return new graphql.GraphQLError(message, err.nodes, err.source, err.positions, err.path, undefined);
1133
+ return new graphql.GraphQLError(message, err.nodes, err.source, err.positions, err.path, undefined, isDev
1134
+ ? {
1135
+ originalError: {
1136
+ message: err.originalError.message,
1137
+ stack: err.originalError.stack,
1138
+ },
1139
+ }
1140
+ : undefined);
1134
1141
  }
1135
1142
  return err;
1136
1143
  }
1137
1144
  return new graphql.GraphQLError(message);
1138
1145
  };
1139
- const makeHandleResult$2 = (format, message) => ({ result, setResult }) => {
1146
+ const makeHandleResult$2 = (format, message, isDev) => ({ result, setResult }) => {
1140
1147
  if (result.errors != null) {
1141
- setResult({ ...result, errors: result.errors.map(error => format(error, message)) });
1148
+ setResult({ ...result, errors: result.errors.map(error => format(error, message, isDev)) });
1142
1149
  }
1143
1150
  };
1144
1151
  const useMaskedErrors = (opts) => {
1145
- var _a;
1152
+ var _a, _b;
1146
1153
  const format = (_a = opts === null || opts === void 0 ? void 0 : opts.formatError) !== null && _a !== void 0 ? _a : formatError;
1147
1154
  const message = (opts === null || opts === void 0 ? void 0 : opts.errorMessage) || DEFAULT_ERROR_MESSAGE;
1148
- const handleResult = makeHandleResult$2(format, message);
1155
+ // eslint-disable-next-line dot-notation
1156
+ const isDev = (_b = opts === null || opts === void 0 ? void 0 : opts.isDev) !== null && _b !== void 0 ? _b : (typeof process !== 'undefined' ? process.env['NODE_ENV'] === 'development' : false);
1157
+ const handleResult = makeHandleResult$2(format, message, isDev);
1149
1158
  return {
1150
1159
  onPluginInit(context) {
1151
1160
  context.registerContextErrorHandler(({ error, setError }) => {
1152
- setError(formatError(error, message));
1161
+ setError(formatError(error, message, isDev));
1153
1162
  });
1154
1163
  },
1155
1164
  onExecute() {
@@ -1165,7 +1174,7 @@ const useMaskedErrors = (opts) => {
1165
1174
  return handleStreamOrSingleExecutionResult(payload, handleResult);
1166
1175
  },
1167
1176
  onSubscribeError({ error, setError }) {
1168
- setError(formatError(error, message));
1177
+ setError(formatError(error, message, isDev));
1169
1178
  },
1170
1179
  };
1171
1180
  },
package/index.mjs CHANGED
@@ -1123,29 +1123,38 @@ class EnvelopError extends GraphQLError {
1123
1123
  super(message, undefined, undefined, undefined, undefined, undefined, extensions);
1124
1124
  }
1125
1125
  }
1126
- const formatError = (err, message) => {
1126
+ const formatError = (err, message, isDev) => {
1127
1127
  if (err instanceof GraphQLError) {
1128
1128
  if (err.originalError && err.originalError instanceof EnvelopError === false) {
1129
- return new GraphQLError(message, err.nodes, err.source, err.positions, err.path, undefined);
1129
+ return new GraphQLError(message, err.nodes, err.source, err.positions, err.path, undefined, isDev
1130
+ ? {
1131
+ originalError: {
1132
+ message: err.originalError.message,
1133
+ stack: err.originalError.stack,
1134
+ },
1135
+ }
1136
+ : undefined);
1130
1137
  }
1131
1138
  return err;
1132
1139
  }
1133
1140
  return new GraphQLError(message);
1134
1141
  };
1135
- const makeHandleResult$2 = (format, message) => ({ result, setResult }) => {
1142
+ const makeHandleResult$2 = (format, message, isDev) => ({ result, setResult }) => {
1136
1143
  if (result.errors != null) {
1137
- setResult({ ...result, errors: result.errors.map(error => format(error, message)) });
1144
+ setResult({ ...result, errors: result.errors.map(error => format(error, message, isDev)) });
1138
1145
  }
1139
1146
  };
1140
1147
  const useMaskedErrors = (opts) => {
1141
- var _a;
1148
+ var _a, _b;
1142
1149
  const format = (_a = opts === null || opts === void 0 ? void 0 : opts.formatError) !== null && _a !== void 0 ? _a : formatError;
1143
1150
  const message = (opts === null || opts === void 0 ? void 0 : opts.errorMessage) || DEFAULT_ERROR_MESSAGE;
1144
- const handleResult = makeHandleResult$2(format, message);
1151
+ // eslint-disable-next-line dot-notation
1152
+ const isDev = (_b = opts === null || opts === void 0 ? void 0 : opts.isDev) !== null && _b !== void 0 ? _b : (typeof process !== 'undefined' ? process.env['NODE_ENV'] === 'development' : false);
1153
+ const handleResult = makeHandleResult$2(format, message, isDev);
1145
1154
  return {
1146
1155
  onPluginInit(context) {
1147
1156
  context.registerContextErrorHandler(({ error, setError }) => {
1148
- setError(formatError(error, message));
1157
+ setError(formatError(error, message, isDev));
1149
1158
  });
1150
1159
  },
1151
1160
  onExecute() {
@@ -1161,7 +1170,7 @@ const useMaskedErrors = (opts) => {
1161
1170
  return handleStreamOrSingleExecutionResult(payload, handleResult);
1162
1171
  },
1163
1172
  onSubscribeError({ error, setError }) {
1164
- setError(formatError(error, message));
1173
+ setError(formatError(error, message, isDev));
1165
1174
  },
1166
1175
  };
1167
1176
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@envelop/core",
3
- "version": "1.6.6",
3
+ "version": "1.7.1",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
@@ -4,10 +4,17 @@ export declare const DEFAULT_ERROR_MESSAGE = "Unexpected error.";
4
4
  export declare class EnvelopError extends GraphQLError {
5
5
  constructor(message: string, extensions?: Record<string, any>);
6
6
  }
7
- export declare type FormatErrorHandler = (error: GraphQLError | unknown, message: string) => GraphQLError;
7
+ export declare type FormatErrorHandler = (error: GraphQLError | unknown, message: string, isDev: boolean) => GraphQLError;
8
8
  export declare const formatError: FormatErrorHandler;
9
9
  export declare type UseMaskedErrorsOpts = {
10
+ /** The function used for format/identify errors. */
10
11
  formatError?: FormatErrorHandler;
12
+ /** The error message that shall be used for masked errors. */
11
13
  errorMessage?: string;
14
+ /**
15
+ * Additional information that is forwarded to the `formatError` function.
16
+ * The default value is `process.env['NODE_ENV'] === 'development'`
17
+ */
18
+ isDev?: boolean;
12
19
  };
13
20
  export declare const useMaskedErrors: (opts?: UseMaskedErrorsOpts | undefined) => Plugin;