base_code_changes.diff 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. diff --git a/lib/encodingQueue.ts b/lib/encodingQueue.ts
  2. index f0b3e40..7595bcd 100644
  3. --- a/lib/encodingQueue.ts
  4. +++ b/lib/encodingQueue.ts
  5. @@ -2,30 +2,11 @@ import { EventEmitter } from "eventemitter3";
  6. import logger from "./logger";
  7. export class EncodingQueue extends EventEmitter {
  8. - readonly fileReader: FileReader = new FileReader();
  9. -
  10. private _queue: Blob[] = [];
  11. private _processing: boolean = false;
  12. constructor() {
  13. super();
  14. -
  15. - this.fileReader.onload = (evt) => {
  16. - this._processing = false;
  17. -
  18. - if (evt.target) {
  19. - this.emit('done', evt.target.result as ArrayBuffer);
  20. - }
  21. -
  22. - this.doNextTask();
  23. - };
  24. -
  25. - this.fileReader.onerror = (evt) => {
  26. - logger.error(`EncodingQueue error:`, evt);
  27. - this._processing = false;
  28. - this.destroy();
  29. - this.emit('error', evt);
  30. - }
  31. }
  32. get queue(): Blob[] {
  33. @@ -41,6 +22,8 @@ export class EncodingQueue extends EventEmitter {
  34. }
  35. enque(blob: Blob): void {
  36. + // Need to define a `name` for the blob to make our `filereader` module process the blob
  37. + blob.name = 'mylovelylilblob';
  38. this.queue.push(blob);
  39. if (this.processing) return;
  40. @@ -49,7 +32,6 @@ export class EncodingQueue extends EventEmitter {
  41. }
  42. destroy(): void {
  43. - this.fileReader.abort();
  44. this._queue = [];
  45. }
  46. @@ -59,6 +41,18 @@ export class EncodingQueue extends EventEmitter {
  47. this._processing = true;
  48. - this.fileReader.readAsArrayBuffer(this.queue.shift());
  49. + const currentBlob = this.queue.shift();
  50. + currentBlob.arrayBuffer().then((res) => {
  51. + this._processing = false;
  52. + if (res.target) {
  53. + this.emit('done', res.target.result as ArrayBuffer);
  54. + }
  55. + this.doNextTask();
  56. + }).catch((err) => {
  57. + logger.error(`EncodingQueue error:`, err);
  58. + this._processing = false;
  59. + this.destroy();
  60. + this.emit('error', err);
  61. + }
  62. }
  63. -}
  64. \ No newline at end of file
  65. +}
  66. diff --git a/lib/exports.ts b/lib/exports.ts
  67. index 5772d02..63a57e3 100644
  68. --- a/lib/exports.ts
  69. +++ b/lib/exports.ts
  70. @@ -7,7 +7,3 @@ export const peerjs = {
  71. };
  72. export default Peer;
  73. -
  74. -(<any>window).peerjs = peerjs;
  75. -/** @deprecated Should use peerjs namespace */
  76. -(<any>window).Peer = Peer;
  77. diff --git a/lib/peer.ts b/lib/peer.ts
  78. index 8f11659..9dcd105 100644
  79. --- a/lib/peer.ts
  80. +++ b/lib/peer.ts
  81. @@ -111,11 +111,6 @@ export class Peer extends EventEmitter {
  82. };
  83. this._options = options;
  84. - // Detect relative URL host.
  85. - if (this._options.host === "/") {
  86. - this._options.host = window.location.hostname;
  87. - }
  88. -
  89. // Set path correctly.
  90. if (this._options.path) {
  91. if (this._options.path[0] !== "/") {
  92. diff --git a/lib/supports.ts b/lib/supports.ts
  93. index 1801188..2783c43 100644
  94. --- a/lib/supports.ts
  95. +++ b/lib/supports.ts
  96. @@ -1,7 +1,5 @@
  97. -import { webRTCAdapter } from './adapter';
  98. -
  99. export const Supports = new class {
  100. - readonly isIOS = ['iPad', 'iPhone', 'iPod'].includes(navigator.platform);
  101. + readonly isIOS = false;
  102. readonly supportedBrowsers = ['firefox', 'chrome', 'safari'];
  103. readonly minFirefoxVersion = 59;
  104. @@ -28,36 +26,15 @@ export const Supports = new class {
  105. }
  106. getBrowser(): string {
  107. - return webRTCAdapter.browserDetails.browser;
  108. + return 'chrome';
  109. }
  110. getVersion(): number {
  111. - return webRTCAdapter.browserDetails.version || 0;
  112. + return this.minChromeVersion;
  113. }
  114. isUnifiedPlanSupported(): boolean {
  115. - const browser = this.getBrowser();
  116. - const version = webRTCAdapter.browserDetails.version || 0;
  117. -
  118. - if (browser === 'chrome' && version < 72) return false;
  119. - if (browser === 'firefox' && version >= 59) return true;
  120. - if (!window.RTCRtpTransceiver || !('currentDirection' in RTCRtpTransceiver.prototype)) return false;
  121. -
  122. - let tempPc: RTCPeerConnection;
  123. - let supported = false;
  124. -
  125. - try {
  126. - tempPc = new RTCPeerConnection();
  127. - tempPc.addTransceiver('audio');
  128. - supported = true;
  129. - } catch (e) { }
  130. - finally {
  131. - if (tempPc) {
  132. - tempPc.close();
  133. - }
  134. - }
  135. -
  136. - return supported;
  137. + return false;
  138. }
  139. toString(): string {
  140. @@ -69,4 +46,4 @@ export const Supports = new class {
  141. isBrowserSupported:${this.isBrowserSupported()}
  142. isUnifiedPlanSupported:${this.isUnifiedPlanSupported()}`;
  143. }
  144. -}
  145. \ No newline at end of file
  146. +}
  147. diff --git a/package.json b/package.json
  148. index bb851bd..d304972 100644
  149. --- a/package.json
  150. +++ b/package.json
  151. @@ -31,7 +31,7 @@
  152. "parcel-bundler": "^1.12.3",
  153. "standard": "^14.1.0",
  154. "ts-node": "^8.3.0",
  155. - "typescript": "^3.6.2"
  156. + "typescript": "^3.7.2"
  157. },
  158. "dependencies": {
  159. "@types/node": "^10.14.17",