UNPKG

graphql-yoga

Version:

<div align="center"><img src="./website/public/cover.png" width="720" /></div>

42 lines (41 loc) 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.jsonStringifyResultWithoutInternals = void 0; const error_js_1 = require("../../error.js"); // JSON stringifier that adjusts the result error extensions while serialising function jsonStringifyResultWithoutInternals(result) { return JSON.stringify(Array.isArray(result) ? result.map(omitInternalsFromResultErrors) : omitInternalsFromResultErrors(result)); } exports.jsonStringifyResultWithoutInternals = jsonStringifyResultWithoutInternals; function omitInternalsFromResultErrors(result) { if (result.errors?.length || result.extensions?.http) { const newResult = { ...result }; newResult.errors && (newResult.errors = newResult.errors.map(omitInternalsFromError)); if (newResult.extensions) { // eslint-disable-next-line @typescript-eslint/no-unused-vars -- TS should check for unused vars instead const { http, ...extensions } = result.extensions; newResult.extensions = Object.keys(extensions).length ? extensions : undefined; } return newResult; } return result; } function omitInternalsFromError(err) { if ((0, error_js_1.isGraphQLError)(err)) { // eslint-disable-next-line @typescript-eslint/no-unused-vars -- TS should check for unused vars instead const { http, unexpected, ...extensions } = err.extensions; return (0, error_js_1.createGraphQLError)(err.message, { nodes: err.nodes, source: err.source, positions: err.positions, path: err.path, originalError: omitInternalsFromError(err.originalError), extensions: Object.keys(extensions).length ? extensions : undefined, }); } return err; }