This commit is contained in:
parent
fa2be029a2
commit
724d70e58b
3339 changed files with 1075535 additions and 0 deletions
106
frontend/node_modules/tus-js-client/lib.esm/browser/sources/StreamSource.js
generated
vendored
Normal file
106
frontend/node_modules/tus-js-client/lib.esm/browser/sources/StreamSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function len(blobOrArray) {
|
||||
if (blobOrArray === undefined) return 0;
|
||||
if (blobOrArray.size !== undefined) return blobOrArray.size;
|
||||
return blobOrArray.length;
|
||||
}
|
||||
|
||||
/*
|
||||
Typed arrays and blobs don't have a concat method.
|
||||
This function helps StreamSource accumulate data to reach chunkSize.
|
||||
*/
|
||||
function concat(a, b) {
|
||||
if (a.concat) {
|
||||
// Is `a` an Array?
|
||||
return a.concat(b);
|
||||
}
|
||||
if (a instanceof Blob) {
|
||||
return new Blob([a, b], {
|
||||
type: a.type
|
||||
});
|
||||
}
|
||||
if (a.set) {
|
||||
// Is `a` a typed array?
|
||||
var c = new a.constructor(a.length + b.length);
|
||||
c.set(a);
|
||||
c.set(b, a.length);
|
||||
return c;
|
||||
}
|
||||
throw new Error('Unknown data type');
|
||||
}
|
||||
var StreamSource = /*#__PURE__*/function () {
|
||||
function StreamSource(reader) {
|
||||
_classCallCheck(this, StreamSource);
|
||||
this._buffer = undefined;
|
||||
this._bufferOffset = 0;
|
||||
this._reader = reader;
|
||||
this._done = false;
|
||||
}
|
||||
return _createClass(StreamSource, [{
|
||||
key: "slice",
|
||||
value: function slice(start, end) {
|
||||
if (start < this._bufferOffset) {
|
||||
return Promise.reject(new Error("Requested data is before the reader's current offset"));
|
||||
}
|
||||
return this._readUntilEnoughDataOrDone(start, end);
|
||||
}
|
||||
}, {
|
||||
key: "_readUntilEnoughDataOrDone",
|
||||
value: function _readUntilEnoughDataOrDone(start, end) {
|
||||
var _this = this;
|
||||
var hasEnoughData = end <= this._bufferOffset + len(this._buffer);
|
||||
if (this._done || hasEnoughData) {
|
||||
var value = this._getDataFromBuffer(start, end);
|
||||
var done = value == null ? this._done : false;
|
||||
return Promise.resolve({
|
||||
value: value,
|
||||
done: done
|
||||
});
|
||||
}
|
||||
return this._reader.read().then(function (_ref) {
|
||||
var value = _ref.value,
|
||||
done = _ref.done;
|
||||
if (done) {
|
||||
_this._done = true;
|
||||
} else if (_this._buffer === undefined) {
|
||||
_this._buffer = value;
|
||||
} else {
|
||||
_this._buffer = concat(_this._buffer, value);
|
||||
}
|
||||
return _this._readUntilEnoughDataOrDone(start, end);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "_getDataFromBuffer",
|
||||
value: function _getDataFromBuffer(start, end) {
|
||||
// Remove data from buffer before `start`.
|
||||
// Data might be reread from the buffer if an upload fails, so we can only
|
||||
// safely delete data when it comes *before* what is currently being read.
|
||||
if (start > this._bufferOffset) {
|
||||
this._buffer = this._buffer.slice(start - this._bufferOffset);
|
||||
this._bufferOffset = start;
|
||||
}
|
||||
// If the buffer is empty after removing old data, all data has been read.
|
||||
var hasAllDataBeenRead = len(this._buffer) === 0;
|
||||
if (this._done && hasAllDataBeenRead) {
|
||||
return null;
|
||||
}
|
||||
// We already removed data before `start`, so we just return the first
|
||||
// chunk from the buffer.
|
||||
return this._buffer.slice(0, end - start);
|
||||
}
|
||||
}, {
|
||||
key: "close",
|
||||
value: function close() {
|
||||
if (this._reader.cancel) {
|
||||
this._reader.cancel();
|
||||
}
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
export { StreamSource as default };
|
||||
Reference in a new issue