UNPKG

@n1ru4l/graphql-live-query-patch

Version:

Shared logic for building live query patch implementations.

23 lines (22 loc) 814 B
import { createLiveQueryPatchGenerator, } from "./createLiveQueryPatchGenerator.js"; const isAsyncIterable = (value) => { return (typeof value === "object" && value !== null && Symbol.asyncIterator in value); }; /** * after-ware for wrapping execute in order to generate live query patches. */ export const createApplyLiveQueryPatchGenerator = (generatePatch) => { return (executionResult) => { const makePatch = createLiveQueryPatchGenerator(generatePatch); const handler = (result) => { if (isAsyncIterable(result)) { return makePatch(result); } return result; }; if (executionResult instanceof Promise) { return executionResult.then(handler); } return handler(executionResult); }; };