From 2983939a48068def9ee0cf86c18af7f9ef0ec045 Mon Sep 17 00:00:00 2001 From: lukasIO Date: Fri, 19 Aug 2022 19:09:32 +0200 Subject: [PATCH] Specify more explicit browser targets (#405) * specify more explicit browser targets * add compatibility note in readme * rename to isBrowserSupported * fix typo * refer to package.json * changeset --- .changeset/yellow-experts-joke.md | 5 +++++ README.md | 9 +++++++++ package.json | 11 +++++++++-- src/index.ts | 4 ++-- src/room/utils.ts | 2 +- 5 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 .changeset/yellow-experts-joke.md diff --git a/.changeset/yellow-experts-joke.md b/.changeset/yellow-experts-joke.md new file mode 100644 index 000000000..7e606bd2c --- /dev/null +++ b/.changeset/yellow-experts-joke.md @@ -0,0 +1,5 @@ +--- +'livekit-client': patch +--- + +Update browserslist diff --git a/README.md b/README.md index 10654ed7d..bbdd937e4 100644 --- a/README.md +++ b/README.md @@ -277,3 +277,12 @@ setLogExtension((level: LogLevel, msg: string, context: object) => { | Firefox | Windows, macOS, Linux | Android | | Safari | macOS | iOS | | Edge (Chromium) | Windows, macOS | | + +We aim to support a broad range of browser versions by transpiling the library code with babel. +You can have a look at the `"browerslist"` section of `package.json` for more details. + +> Note that the library requires some specific browser APIs to be present. +> You can check general compatibility with the helper function `isBrowserSupported()`. +> Support for more modern features like adaptiveStream and dynacast can be checked for with `supportsAdaptiveStream()` and `supportsDynacast()`. + +If you are targeting legacy browsers, but still want adaptiveStream functionality you'll likely need to use polyfills for [ResizeObserver](https://www.npmjs.com/package/resize-observer-polyfill) and [IntersectionObserver](https://www.npmjs.com/package/intersection-observer). diff --git a/package.json b/package.json index 23ac22c49..fd6e630de 100644 --- a/package.json +++ b/package.json @@ -78,8 +78,15 @@ "typescript": "4.7.4" }, "browserslist": [ - "defaults", "safari >= 11", - "not IE 11" + "ios_saf >= 11", + "chrome >= 56", + "and_chr >= 56", + "android >= 56", + "firefox >= 53", + "edge >= 50", + "Samsung >= 6.0", + "not IE 11", + "not dead" ] } diff --git a/src/index.ts b/src/index.ts index cb72ed7fe..39f8cbc9e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -18,7 +18,7 @@ import { TrackPublication } from './room/track/TrackPublication'; import { getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, - isDeviceSupported, + isBrowserSupported, supportsAdaptiveStream, supportsDynacast, } from './room/utils'; @@ -36,7 +36,7 @@ export { setLogExtension, getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, - isDeviceSupported, + isBrowserSupported, supportsAdaptiveStream, supportsDynacast, LogLevel, diff --git a/src/room/utils.ts b/src/room/utils.ts index e2b8add54..6aba41edc 100644 --- a/src/room/utils.ts +++ b/src/room/utils.ts @@ -33,7 +33,7 @@ export function supportsDynacast() { return supportsTransceiver(); } -export function isDeviceSupported() { +export function isBrowserSupported() { return supportsTransceiver() || supportsAddTrack(); }