@n1ru4l/graphql-live-query-patch
Version:
Shared logic for building live query patch implementations.
27 lines (26 loc) • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createApplyLiveQueryPatchGenerator = void 0;
const createLiveQueryPatchGenerator_js_1 = require("./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.
*/
const createApplyLiveQueryPatchGenerator = (generatePatch) => {
return (executionResult) => {
const makePatch = (0, createLiveQueryPatchGenerator_js_1.createLiveQueryPatchGenerator)(generatePatch);
const handler = (result) => {
if (isAsyncIterable(result)) {
return makePatch(result);
}
return result;
};
if (executionResult instanceof Promise) {
return executionResult.then(handler);
}
return handler(executionResult);
};
};
exports.createApplyLiveQueryPatchGenerator = createApplyLiveQueryPatchGenerator;