fetch-multipart-graphql
Advanced tools
Comparing version 1.0.2 to 1.0.3
@@ -34,2 +34,3 @@ 'use strict'; | ||
var index = 0; | ||
var isDeferred = false; | ||
@@ -41,7 +42,21 @@ var patchResolver = new _PatchResolver.PatchResolver({ onResponse: function onResponse(r) { | ||
function onProgressEvent() { | ||
var chunk = xhr.response.substr(index); | ||
patchResolver.handleChunk(chunk); | ||
index = xhr.responseText.length; | ||
if (isDeferred) { | ||
var chunk = xhr.response.substr(index); | ||
patchResolver.handleChunk(chunk); | ||
index = xhr.responseText.length; | ||
} | ||
} | ||
function onReadyStateChange() { | ||
if (this.readyState === this.HEADERS_RECEIVED) { | ||
var contentType = xhr.getResponseHeader('Content-Type'); | ||
if (contentType.indexOf('multipart/mixed') >= 0) { | ||
isDeferred = true; | ||
} | ||
} else if (this.readyState === this.DONE && !isDeferred) { | ||
onNext(JSON.parse(xhr.response)); | ||
onComplete(); | ||
} | ||
} | ||
function onLoadEvent() { | ||
@@ -91,2 +106,3 @@ onComplete(); | ||
xhr.addEventListener('readystatechange', onReadyStateChange); | ||
xhr.addEventListener('progress', onProgressEvent); | ||
@@ -93,0 +109,0 @@ xhr.addEventListener('loaded', onLoadEvent); |
{ | ||
"name": "fetch-multipart-graphql", | ||
"version": "1.0.2", | ||
"version": "1.0.3", | ||
"description": "Cross browser function to fetch and parse streaming multipart graphql responses.", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -17,2 +17,3 @@ import { PatchResolver } from './PatchResolver'; | ||
let index = 0; | ||
let isDeferred = false; | ||
@@ -22,7 +23,21 @@ const patchResolver = new PatchResolver({ onResponse: r => onNext(r) }); | ||
function onProgressEvent() { | ||
const chunk = xhr.response.substr(index); | ||
patchResolver.handleChunk(chunk); | ||
index = xhr.responseText.length; | ||
if (isDeferred) { | ||
const chunk = xhr.response.substr(index); | ||
patchResolver.handleChunk(chunk); | ||
index = xhr.responseText.length; | ||
} | ||
} | ||
function onReadyStateChange() { | ||
if (this.readyState === this.HEADERS_RECEIVED) { | ||
const contentType = xhr.getResponseHeader('Content-Type'); | ||
if (contentType.indexOf('multipart/mixed') >= 0) { | ||
isDeferred = true; | ||
} | ||
} else if (this.readyState === this.DONE && !isDeferred) { | ||
onNext(JSON.parse(xhr.response)); | ||
onComplete(); | ||
} | ||
} | ||
function onLoadEvent() { | ||
@@ -46,2 +61,3 @@ onComplete(); | ||
xhr.addEventListener('readystatechange', onReadyStateChange); | ||
xhr.addEventListener('progress', onProgressEvent); | ||
@@ -48,0 +64,0 @@ xhr.addEventListener('loaded', onLoadEvent); |
160730
679