This ServiceWorker API interface represents the global execution context of a service worker. Available only in secure contexts.

MDN Reference

interface ServiceWorkerGlobalScope {
    AbortController: typeof AbortController;
    AbortSignal: typeof AbortSignal;
    Blob: typeof Blob;
    Body: typeof Body;
    Cache: typeof Cache;
    caches: CacheStorage;
    CacheStorage: typeof CacheStorage;
    CompressionStream: typeof CompressionStream;
    crypto: Crypto;
    Crypto: typeof Crypto;
    CryptoKey: typeof CryptoKey;
    CustomEvent: typeof CustomEvent;
    DecompressionStream: typeof DecompressionStream;
    DOMException: typeof DOMException;
    ErrorEvent: typeof ErrorEvent;
    Event: typeof Event;
    EventTarget: typeof EventTarget;
    ExtendableEvent: typeof ExtendableEvent;
    FetchEvent: typeof FetchEvent;
    File: typeof File;
    FixedLengthStream: typeof FixedLengthStream;
    FormData: typeof FormData;
    Headers: typeof Headers;
    IdentityTransformStream: typeof IdentityTransformStream;
    navigator: Navigator;
    Navigator: typeof Navigator;
    origin: string;
    performance: never;
    PromiseRejectionEvent: typeof PromiseRejectionEvent;
    ReadableStream: {
        prototype: ReadableStream<any>;
        new (underlyingSource: UnderlyingByteSource, strategy?: QueuingStrategy<Uint8Array>): ReadableStream<Uint8Array>;
        new <R>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
    };
    ReadableStreamBYOBReader: typeof ReadableStreamBYOBReader;
    ReadableStreamDefaultReader: typeof ReadableStreamDefaultReader;
    Request: {
        prototype: Request<unknown, any>;
        new (input: RequestInfo, init?: RequestInit): Request<unknown, any>;
    };
    Response: {
        prototype: Response;
        json(any: any, maybeInit?: Response | ResponseInit): Response;
        redirect(url: string, status?: number): Response;
        new (body?: null | BodyInit, init?: ResponseInit): Response;
    };
    scheduler: never;
    self: ServiceWorkerGlobalScope;
    SubtleCrypto: typeof SubtleCrypto;
    TextDecoder: typeof TextDecoder;
    TextDecoderStream: typeof TextDecoderStream;
    TextEncoder: typeof TextEncoder;
    TextEncoderStream: typeof TextEncoderStream;
    TransformStream: typeof TransformStream;
    URL: typeof URL;
    URLPattern: typeof URLPattern;
    URLSearchParams: typeof URLSearchParams;
    WorkerGlobalScope: typeof WorkerGlobalScope;
    WritableStream: typeof WritableStream;
    WritableStreamDefaultWriter: typeof WritableStreamDefaultWriter;
    addEventListener<Type>(type: Type, handler: EventListenerOrEventListenerObject<Event>, options?: boolean | EventTargetAddEventListenerOptions): void;
    atob(data: string): string;
    btoa(data: string): string;
    clearInterval(timeoutId: null | number): void;
    clearTimeout(timeoutId: null | number): void;
    dispatchEvent(event: Event): boolean;
    queueMicrotask(task: Function): void;
    removeEventListener<Type>(type: Type, handler: EventListenerOrEventListenerObject<Event>, options?: boolean | EventTargetEventListenerOptions): void;
    reportError(error: any): void;
    setInterval(callback: ((...args: any[]) => void), msDelay?: number): number;
    setInterval<Args>(callback: ((...args: Args) => void), msDelay?: number, ...args: Args): number;
    setTimeout(callback: ((...args: any[]) => void), msDelay?: number): number;
    setTimeout<Args>(callback: ((...args: Args) => void), msDelay?: number, ...args: Args): number;
    structuredClone<T>(value: T, options?: StructuredSerializeOptions): T;
}

Hierarchy (view full)

Properties

AbortController: typeof AbortController
AbortSignal: typeof AbortSignal
Blob: typeof Blob
Body: typeof Body
Cache: typeof Cache
caches: CacheStorage
CacheStorage: typeof CacheStorage
CompressionStream: typeof CompressionStream
crypto: Crypto
Crypto: typeof Crypto
CryptoKey: typeof CryptoKey
CustomEvent: typeof CustomEvent
DecompressionStream: typeof DecompressionStream
DOMException: typeof DOMException
ErrorEvent: typeof ErrorEvent
Event: typeof Event
EventTarget: typeof EventTarget
ExtendableEvent: typeof ExtendableEvent
FetchEvent: typeof FetchEvent
File: typeof File
FixedLengthStream: typeof FixedLengthStream
FormData: typeof FormData
Headers: typeof Headers
IdentityTransformStream: typeof IdentityTransformStream
navigator: Navigator
Navigator: typeof Navigator
origin: string
performance: never
PromiseRejectionEvent: typeof PromiseRejectionEvent
ReadableStream: {
    prototype: ReadableStream<any>;
    new (underlyingSource: UnderlyingByteSource, strategy?: QueuingStrategy<Uint8Array>): ReadableStream<Uint8Array>;
    new <R>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
}
ReadableStreamBYOBReader: typeof ReadableStreamBYOBReader
ReadableStreamDefaultReader: typeof ReadableStreamDefaultReader
Request: {
    prototype: Request<unknown, any>;
    new (input: RequestInfo, init?: RequestInit): Request<unknown, any>;
}
Response: {
    prototype: Response;
    json(any: any, maybeInit?: Response | ResponseInit): Response;
    redirect(url: string, status?: number): Response;
    new (body?: null | BodyInit, init?: ResponseInit): Response;
}
scheduler: never
SubtleCrypto: typeof SubtleCrypto
TextDecoder: typeof TextDecoder
TextDecoderStream: typeof TextDecoderStream
TextEncoder: typeof TextEncoder
TextEncoderStream: typeof TextEncoderStream
TransformStream: typeof TransformStream
URL: typeof URL
URLPattern: typeof URLPattern
URLSearchParams: typeof URLSearchParams
WorkerGlobalScope: typeof WorkerGlobalScope
WritableStream: typeof WritableStream
WritableStreamDefaultWriter: typeof WritableStreamDefaultWriter

Methods

  • Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.

    The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.

    When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.

    When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.

    When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.

    If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.

    The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.

    MDN Reference

    Type Parameters

    • Type extends string

    Parameters

    Returns void

  • Parameters

    • data: string

    Returns string

  • Parameters

    • data: string

    Returns string

  • Parameters

    • timeoutId: null | number

    Returns void

  • Parameters

    • timeoutId: null | number

    Returns void

  • Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.

    MDN Reference

    Parameters

    Returns boolean

  • Parameters

    • task: Function

    Returns void

  • Parameters

    • error: any

    Returns void

  • Parameters

    • callback: ((...args: any[]) => void)
        • (...args): void
        • Parameters

          • Rest...args: any[]

          Returns void

    • OptionalmsDelay: number

    Returns number

  • Type Parameters

    • Args extends any[]

    Parameters

    • callback: ((...args: Args) => void)
        • (...args): void
        • Parameters

          Returns void

    • OptionalmsDelay: number
    • Rest...args: Args

    Returns number

  • Parameters

    • callback: ((...args: any[]) => void)
        • (...args): void
        • Parameters

          • Rest...args: any[]

          Returns void

    • OptionalmsDelay: number

    Returns number

  • Type Parameters

    • Args extends any[]

    Parameters

    • callback: ((...args: Args) => void)
        • (...args): void
        • Parameters

          Returns void

    • OptionalmsDelay: number
    • Rest...args: Args

    Returns number