UNPKG

solid-start-create-api-graphql-handler

Version:

A simple parser of an incoming event in solid-start to support a GraphQL endpoint

33 lines (32 loc) 998 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseBody = exports.ErrBodyNotFound = void 0; const utils_1 = require("./utils"); exports.ErrBodyNotFound = new Error('error: request body not found'); async function* decodeBodyAsyncGenerator(body) { const utf8Decoder = new TextDecoder('utf8'); const reader = body.getReader(); while (true) { const { done, value } = await reader.read(); yield utf8Decoder.decode(value); if (done) { return; } } } const parseBody = async (body) => { try { if (!body) { return (0, utils_1.newErrorResult)(exports.ErrBodyNotFound); } let parts = ''; for await (const part of decodeBodyAsyncGenerator(body)) { parts += part; } return (0, utils_1.newSuccessfulResult)(JSON.parse(parts)); } catch (e) { return (0, utils_1.newErrorResult)(e); } }; exports.parseBody = parseBody;