Fixes fetch and node behavior when disableAutoFetch adn disableStream is used.
This commit is contained in:
parent
3516a59384
commit
3cff7da0e7
@ -13,7 +13,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { assert, createPromiseCapability } from '../shared/util';
|
||||
import {
|
||||
AbortException, assert, createPromiseCapability
|
||||
} from '../shared/util';
|
||||
import {
|
||||
createResponseStatusError, validateRangeRequestCapabilities,
|
||||
validateResponseStatus
|
||||
@ -95,8 +97,8 @@ class PDFFetchStreamReader {
|
||||
if (!validateResponseStatus(response.status, this._stream.isHttp)) {
|
||||
throw createResponseStatusError(response.status, url);
|
||||
}
|
||||
this._headersCapability.resolve();
|
||||
this._reader = response.body.getReader();
|
||||
this._headersCapability.resolve();
|
||||
|
||||
let { allowRangeRequests, suggestedLength, } =
|
||||
validateRangeRequestCapabilities({
|
||||
@ -110,6 +112,12 @@ class PDFFetchStreamReader {
|
||||
|
||||
this._contentLength = suggestedLength;
|
||||
this._isRangeSupported = allowRangeRequests;
|
||||
|
||||
// We need to stop reading when range is supported and streaming is
|
||||
// disabled.
|
||||
if (!this._isStreamingSupported && this._isRangeSupported) {
|
||||
this.cancel(new AbortException('streaming is disabled'));
|
||||
}
|
||||
}).catch(this._headersCapability.reject);
|
||||
|
||||
this.onProgress = null;
|
||||
|
@ -19,7 +19,9 @@ let http = __non_webpack_require__('http');
|
||||
let https = __non_webpack_require__('https');
|
||||
let url = __non_webpack_require__('url');
|
||||
|
||||
import { assert, createPromiseCapability } from '../shared/util';
|
||||
import {
|
||||
AbortException, assert, createPromiseCapability
|
||||
} from '../shared/util';
|
||||
import { validateRangeRequestCapabilities } from './network_utils';
|
||||
|
||||
class PDFNodeStream {
|
||||
@ -165,6 +167,12 @@ class BaseFullReader {
|
||||
this._error(reason);
|
||||
});
|
||||
|
||||
// We need to stop reading when range is supported and streaming is
|
||||
// disabled.
|
||||
if (!this._isStreamingSupported && this._isRangeSupported) {
|
||||
this._error(new AbortException('streaming is disabled'));
|
||||
}
|
||||
|
||||
// Destroy ReadableStream if already in errored state.
|
||||
if (this._errored) {
|
||||
this._readableStream.destroy(this._reason);
|
||||
@ -353,8 +361,6 @@ class PDFNodeStreamFsFullReader extends BaseFullReader {
|
||||
constructor(stream) {
|
||||
super(stream);
|
||||
|
||||
this._setReadableStream(fs.createReadStream(this._url.path));
|
||||
|
||||
fs.lstat(this._url.path, (error, stat) => {
|
||||
if (error) {
|
||||
this._errored = true;
|
||||
@ -364,6 +370,8 @@ class PDFNodeStreamFsFullReader extends BaseFullReader {
|
||||
}
|
||||
// Setting right content length.
|
||||
this._contentLength = stat.size;
|
||||
|
||||
this._setReadableStream(fs.createReadStream(this._url.path));
|
||||
this._headersCapability.resolve();
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user