Variable utilsConst Interface

utils: {
    getExtensionForMime: (
        contentType: string,
        defaultExtension?: string,
    ) => string;
    getMimeForExtension: (extension?: string, defaultType?: string) => string;
    rateLimit: {
        <T extends (...args: any) => any>(
            options: {
                fn: T;
                interval?: number;
                limit?: number;
                perHour?: number;
                perMinute?: number;
                perSecond?: number;
                signal?: AbortSignal;
            },
        ): ThrottledFunction<T>;
        <T extends (...args: any) => any>(
            fn: T,
            options: RateLimitOptions,
        ): ThrottledFunction<T>;
        <T extends (...args: any) => any>(
            fn:
                | T
                | {
                    fn: T;
                    interval?: number;
                    limit?: number;
                    perHour?: number;
                    perMinute?: number;
                    perSecond?: number;
                    signal?: AbortSignal;
                },
            options?: RateLimitOptions,
        ): ThrottledFunction<T>;
    };
    setPolyfills: (
        overrideCallback: (polyfills: RevPolyfills) => void | Promise<void>,
    ) => void;
} = ...

Includes some helper utilities that may be useful when using this library

Type declaration

  • getExtensionForMime: (contentType: string, defaultExtension?: string) => string

    Get a valid file extension for a given mimetype (used for uploading videos/transcriptions/etc)

  • getMimeForExtension: (extension?: string, defaultType?: string) => string

    Get a valid mimetype for a given file extension (used for uploading videos/transcriptions/etc)

  • rateLimit: {
        <T extends (...args: any) => any>(
            options: {
                fn: T;
                interval?: number;
                limit?: number;
                perHour?: number;
                perMinute?: number;
                perSecond?: number;
                signal?: AbortSignal;
            },
        ): ThrottledFunction<T>;
        <T extends (...args: any) => any>(
            fn: T,
            options: RateLimitOptions,
        ): ThrottledFunction<T>;
        <T extends (...args: any) => any>(
            fn:
                | T
                | {
                    fn: T;
                    interval?: number;
                    limit?: number;
                    perHour?: number;
                    perMinute?: number;
                    perSecond?: number;
                    signal?: AbortSignal;
                },
            options?: RateLimitOptions,
        ): ThrottledFunction<T>;
    }

    Rate-limit a function - useful to throttle the number of API requests made in a minute

    const {utils} = import '@vbrick/rev-client'
    const lock = utils.rateLimit(() => {}, { perSecond: 1 });
    for (let i = 0; i < 10; i++) {
    await lock();
    console.log(`${i}: this will only be called once per second`);
    }
  • setPolyfills: (overrideCallback: (polyfills: RevPolyfills) => void | Promise<void>) => void

    ADVANCED - Override the underlying classes used in making requests. This is for internal use only and shouldn't typically be used.