grafast
Version:
Cutting edge GraphQL planning and execution engine
58 lines • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringifyPayload = stringifyPayload;
function stringifyPayload(payload, outputDataAsString) {
if (!outputDataAsString || typeof payload.data !== "string") {
return JSON.stringify(payload);
}
let str = "{";
let first = true;
if (payload.incremental) {
throw new Error("Haven't implemented incremental yet");
}
if (payload.errors !== undefined) {
if (!first)
str += ",";
first = false;
str += `"errors":${JSON.stringify(payload.errors)}`;
}
if (payload.data === undefined) {
// noop
}
else if (payload.data === null) {
if (!first)
str += ",";
first = false;
str += `"data":null`;
}
else if (typeof payload.data === "string") {
if (!first)
str += ",";
first = false;
str += `"data":${payload.data}`;
}
else {
throw new Error(`Expected data to be null, undefined, or a JSON string`);
}
if (payload.extensions !== undefined) {
if (!first)
str += ",";
first = false;
str += `"extensions":${JSON.stringify(payload.extensions)}`;
}
if (payload.label !== undefined) {
if (!first)
str += ",";
first = false;
str += `"label":${JSON.stringify(payload.label)}`;
}
if (payload.hasNext !== undefined) {
if (!first)
str += ",";
first = false;
str += `"hasNext":${JSON.stringify(payload.hasNext)}`;
}
str += "}";
return str;
}
//# sourceMappingURL=stringifyPayload.js.map