Small adjustments to getSize change

This commit is contained in:
David Payr
2025-04-15 15:11:11 +02:00
parent 2f0e686a0f
commit 1e3a618c26
2 changed files with 8 additions and 8 deletions
+6 -6
View File
@@ -8,20 +8,20 @@ import { Source } from './source';
* The options for creating an Input object.
* @public
*/
export type InputOptions = {
export type InputOptions<S extends Source = Source> = {
/** A list of supported formats. If the source file is not of one of these formats, then it cannot be read. */
formats: InputFormat[];
/** The source from which data will be read. */
source: Source;
source: S;
};
/**
* Represents an input media file. This is the root object from which all media read operations start.
* @public
*/
export class Input {
export class Input<S extends Source = Source> {
/** @internal */
_source: Source;
_source: S;
/** @internal */
_formats: InputFormat[];
/** @internal */
@@ -31,7 +31,7 @@ export class Input {
/** @internal */
_format: InputFormat | null = null;
constructor(options: InputOptions) {
constructor(options: InputOptions<S>) {
if (!options || typeof options !== 'object') {
throw new TypeError('options must be an object.');
}
@@ -65,7 +65,7 @@ export class Input {
}
/**
* Returns the source from which this input file reads its data. This is the same source that was passed to there
* Returns the source from which this input file reads its data. This is the same source that was passed to the
* constructor.
*/
get source() {
+2 -2
View File
@@ -14,8 +14,8 @@ export abstract class Source {
_sizePromise: Promise<number> | null = null;
/**
* Returns promise that resolves with the size of the file.
* If the size is not known, it will be retrieved from the source.
* Resolves with the total size of the file in bytes. This function is memoized, meaning only the first call
* will retrieve the size.
*/
getSize() {
return this._sizePromise ??= this._retrieveSize();