diff --git a/package.json b/package.json index 519f595..fa5468e 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "dependencies": { "abort-controller": "^3.0.0", "any-signal": "^1.1.0", - "buffer": "^5.4.2", + "buffer": "^5.6.0", "err-code": "^2.0.0", "fs-extra": "^9.0.1", "is-electron": "^2.2.0", @@ -49,9 +49,9 @@ "devDependencies": { "aegir": "^22.0.0", "delay": "^4.3.0", - "it-all": "^1.0.1", - "it-drain": "^1.0.0", - "it-last": "^1.0.1", + "it-all": "^1.0.2", + "it-drain": "^1.0.1", + "it-last": "^1.0.2", "it-to-stream": "^0.1.1" }, "contributors": [ diff --git a/src/supports.js b/src/supports.js index 75d995f..3861448 100644 --- a/src/supports.js +++ b/src/supports.js @@ -1,5 +1,9 @@ 'use strict' +const globalThis = require('./globalthis') + module.exports = { - supportsFileReader: typeof self !== 'undefined' && 'FileReader' in self + supportsFileReader: typeof self !== 'undefined' && 'FileReader' in self, + supportsWebRTC: 'RTCPeerConnection' in globalThis && + (typeof navigator !== 'undefined' && typeof navigator.mediaDevices !== 'undefined' && 'getUserMedia' in navigator.mediaDevices) } diff --git a/test/supports.spec.js b/test/supports.spec.js index 553f2c9..2cf178d 100644 --- a/test/supports.spec.js +++ b/test/supports.spec.js @@ -45,4 +45,44 @@ describe('supports', function () { this.skip() } }) + + it('supportsWebRTC should return false in node', function () { + if (env.isNode) { + expect(supports.supportsWebRTC).to.be.false() + } else { + this.skip() + } + }) + + it('supportsWebRTC should return true in browser', function () { + if (env.isBrowser) { + expect(supports.supportsWebRTC).to.be.true() + } else { + this.skip() + } + }) + + it('supportsWebRTC should return true in Web Worker', function () { + if (env.isWebWorker) { + expect(supports.supportsWebRTC).to.be.false() + } else { + this.skip() + } + }) + + it('supportsWebRTC should return false in Electron main', function () { + if (env.isElectron && !env.isElectronRenderer) { + expect(supports.supportsWebRTC).to.be.false() + } else { + this.skip() + } + }) + + it('supportsWebRTC should return true in Electron renderer', function () { + if (env.isElectronRenderer) { + expect(supports.supportsWebRTC).to.be.true() + } else { + this.skip() + } + }) })