Skip to content

Commit 665781b

Browse files
committed
Fix rare stream interuption before end, Closes #40
1 parent e402c3e commit 665781b

File tree

3 files changed

+23
-6
lines changed

3 files changed

+23
-6
lines changed

lib/SparqlEndpointFetcher.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import {ISettings, SparqlJsonParser} from "sparqljson-parse";
66
import {SparqlXmlParser} from "sparqlxml-parse";
77
import {Readable} from "stream";
88
import * as stringifyStream from 'stream-to-string';
9+
import { ReadableWebToNodeStream } from 'readable-web-to-node-stream';
910

1011
// tslint:disable:no-var-requires
1112
const n3 = require('n3');
1213
const isStream = require('is-stream');
13-
const toNodeReadable = require('web-streams-node').toNodeReadable;
1414

1515
/**
1616
* A SparqlEndpointFetcher can send queries to SPARQL endpoints,
@@ -209,7 +209,7 @@ export class SparqlEndpointFetcher {
209209
// Wrap WhatWG readable stream into a Node.js readable stream
210210
// If the body already is a Node.js stream (in the case of node-fetch), don't do explicit conversion.
211211
responseStream = isStream(httpResponse.body)
212-
? httpResponse.body : toNodeReadable(httpResponse.body);
212+
? <NodeJS.ReadableStream> <any> httpResponse.body : <NodeJS.ReadableStream> <any> new ReadableWebToNodeStream(httpResponse.body);
213213
}
214214

215215
// Determine the content type and emit it to the stream

package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,19 @@
3737
],
3838
"dependencies": {
3939
"@rdfjs/types": "*",
40+
"@types/readable-stream": "^2.3.11",
4041
"@types/sparqljs": "^3.1.3",
4142
"abort-controller": "^3.0.0",
4243
"cross-fetch": "^3.0.6",
4344
"is-stream": "^2.0.0",
4445
"minimist": "^1.2.0",
4546
"n3": "^1.6.3",
4647
"rdf-string": "^1.6.0",
48+
"readable-web-to-node-stream": "^3.0.2",
4749
"sparqljs": "^3.1.2",
4850
"sparqljson-parse": "^1.7.0",
4951
"sparqlxml-parse": "^1.5.0",
50-
"stream-to-string": "^1.1.0",
51-
"web-streams-node": "^0.4.0"
52+
"stream-to-string": "^1.1.0"
5253
},
5354
"devDependencies": {
5455
"@types/jest": "^26.0.0",
@@ -65,7 +66,8 @@
6566
"ts-jest": "^27.0.1",
6667
"tslint": "^6.0.0",
6768
"tslint-eslint-rules": "^5.4.0",
68-
"typescript": "^4.3.5"
69+
"typescript": "^4.3.5",
70+
"web-streams-node": "^0.4.0"
6971
},
7072
"jest": {
7173
"globals": {

yarn.lock

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -831,6 +831,14 @@
831831
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0"
832832
integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==
833833

834+
"@types/readable-stream@^2.3.11":
835+
version "2.3.11"
836+
resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.11.tgz#942bc4574a1d7ca4368cb9cb4352e3d2b4b51dea"
837+
integrity sha512-0z+/apYJwKFz/RHp6mOMxz/y7xOvWPYPevuCEyAY3gXsjtaac02E26RvxA+I96rfvmVH/dEMGXNvyJfViR1FSQ==
838+
dependencies:
839+
"@types/node" "*"
840+
safe-buffer "*"
841+
834842
"@types/sparqljs@^3.1.3":
835843
version "3.1.3"
836844
resolved "https://registry.yarnpkg.com/@types/sparqljs/-/sparqljs-3.1.3.tgz#e4b9a2511bc2f14f564559ed6cf567835791a7e9"
@@ -3286,6 +3294,13 @@ readable-stream@^2.2.2, readable-stream@~2.3.6:
32863294
string_decoder "~1.1.1"
32873295
util-deprecate "~1.0.1"
32883296

3297+
readable-web-to-node-stream@^3.0.2:
3298+
version "3.0.2"
3299+
resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb"
3300+
integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==
3301+
dependencies:
3302+
readable-stream "^3.6.0"
3303+
32893304
redent@^2.0.0:
32903305
version "2.0.0"
32913306
resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa"
@@ -3367,7 +3382,7 @@ rimraf@^3.0.0:
33673382
dependencies:
33683383
glob "^7.1.3"
33693384

3370-
safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
3385+
safe-buffer@*, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
33713386
version "5.2.1"
33723387
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
33733388
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==

0 commit comments

Comments
 (0)