Add double loading detection and warning, improve UrlSource abort signal documentation, bump minor

This commit is contained in:
Vanilagy
2026-01-23 13:31:59 +01:00
parent 7f4093fd43
commit 8c67872e83
6 changed files with 39 additions and 9 deletions
+11
View File
@@ -9,6 +9,17 @@
/// <reference types="dom-mediacapture-transform" preserve="true" />
/// <reference types="dom-webcodecs" preserve="true" />
const MEDIABUNNY_LOADED_SYMBOL = Symbol.for('mediabunny loaded');
if ((globalThis as Record<symbol, unknown>)[MEDIABUNNY_LOADED_SYMBOL]) {
console.error(
'[WARNING]\nMediabunny was loaded twice.'
+ ' This will likely cause Mediabunny not to work correctly.'
+ ' Check if multiple dependencies are importing different versions of Mediabunny,'
+ ' or if something is being bundled incorrectly.',
);
}
(globalThis as Record<symbol, unknown>)[MEDIABUNNY_LOADED_SYMBOL] = true;
export {
Output,
OutputOptions,
+9 -1
View File
@@ -324,6 +324,9 @@ export type UrlSourceOptions = {
/**
* The [`RequestInit`](https://developer.mozilla.org/en-US/docs/Web/API/RequestInit) used by the Fetch API. Can be
* used to further control the requests, such as setting custom headers.
*
* All fields will work except for `signal` and `headers.Range`; these will be overridden by Mediabunny. If you want
* to cancel ongoing requests, use {@link Input.dispose}.
*/
requestInit?: RequestInit;
@@ -368,7 +371,12 @@ export class UrlSource extends Source {
abortController: AbortController;
}>();
/** Creates a new {@link UrlSource} backed by the resource at the specified URL. */
/**
* Creates a new {@link UrlSource} backed by the resource at the specified URL.
*
* When passing a `Request` instance, note that the `signal` and `headers.Range` options will be overridden by
* Mediabunny. If you want to cancel ongoing requests, use {@link Input.dispose}.
*/
constructor(
url: string | URL | Request,
options: UrlSourceOptions = {},