Skip to content

Commit 8cca85d

Browse files
authored
feat: add webrtc to supports (#38)
1 parent b526d48 commit 8cca85d

File tree

3 files changed

+49
-5
lines changed

3 files changed

+49
-5
lines changed

package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"dependencies": {
3636
"abort-controller": "^3.0.0",
3737
"any-signal": "^1.1.0",
38-
"buffer": "^5.4.2",
38+
"buffer": "^5.6.0",
3939
"err-code": "^2.0.0",
4040
"fs-extra": "^9.0.1",
4141
"is-electron": "^2.2.0",
@@ -49,9 +49,9 @@
4949
"devDependencies": {
5050
"aegir": "^22.0.0",
5151
"delay": "^4.3.0",
52-
"it-all": "^1.0.1",
53-
"it-drain": "^1.0.0",
54-
"it-last": "^1.0.1",
52+
"it-all": "^1.0.2",
53+
"it-drain": "^1.0.1",
54+
"it-last": "^1.0.2",
5555
"it-to-stream": "^0.1.1"
5656
},
5757
"contributors": [

src/supports.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
'use strict'
22

3+
const globalThis = require('./globalthis')
4+
35
module.exports = {
4-
supportsFileReader: typeof self !== 'undefined' && 'FileReader' in self
6+
supportsFileReader: typeof self !== 'undefined' && 'FileReader' in self,
7+
supportsWebRTC: 'RTCPeerConnection' in globalThis &&
8+
(typeof navigator !== 'undefined' && typeof navigator.mediaDevices !== 'undefined' && 'getUserMedia' in navigator.mediaDevices)
59
}

test/supports.spec.js

+40
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,44 @@ describe('supports', function () {
4545
this.skip()
4646
}
4747
})
48+
49+
it('supportsWebRTC should return false in node', function () {
50+
if (env.isNode) {
51+
expect(supports.supportsWebRTC).to.be.false()
52+
} else {
53+
this.skip()
54+
}
55+
})
56+
57+
it('supportsWebRTC should return true in browser', function () {
58+
if (env.isBrowser) {
59+
expect(supports.supportsWebRTC).to.be.true()
60+
} else {
61+
this.skip()
62+
}
63+
})
64+
65+
it('supportsWebRTC should return true in Web Worker', function () {
66+
if (env.isWebWorker) {
67+
expect(supports.supportsWebRTC).to.be.false()
68+
} else {
69+
this.skip()
70+
}
71+
})
72+
73+
it('supportsWebRTC should return false in Electron main', function () {
74+
if (env.isElectron && !env.isElectronRenderer) {
75+
expect(supports.supportsWebRTC).to.be.false()
76+
} else {
77+
this.skip()
78+
}
79+
})
80+
81+
it('supportsWebRTC should return true in Electron renderer', function () {
82+
if (env.isElectronRenderer) {
83+
expect(supports.supportsWebRTC).to.be.true()
84+
} else {
85+
this.skip()
86+
}
87+
})
4888
})

0 commit comments

Comments
 (0)