UNPKG

happy-dom

Version:

Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.

64 lines (60 loc) 2.34 kB
import type Blob from '../file/Blob.js'; import type ICanvasAdapterCaller from './ICanvasAdapterCaller.js'; import type ICanvasRenderingContext2D from './ICanvasRenderingContext2D.js'; /** * Interface for pluggable canvas rendering adapters. * * Implement this interface to provide real canvas rendering support * (e.g., via node-canvas). The adapter is passed via browser settings: * * @example * ```typescript * import { Window } from 'happy-dom'; * import { CanvasAdapter } from '@happy-dom/node-canvas-adapter'; * * const window = new Window({ * settings: { canvasAdapter: new CanvasAdapter() } * }); * ``` */ export default interface ICanvasAdapter { /** * Creates a rendering context for a canvas element. * * @param caller Information about the caller, including the canvas element and its associated window and browser frame. * @param contextType The context identifier ('2d', 'webgl', etc.). * @param [contextAttributes] Optional context creation attributes. * @returns The rendering context, or null if the type is unsupported. */ getContext( caller: ICanvasAdapterCaller, contextType: string, contextAttributes?: Record<string, unknown> ): ICanvasRenderingContext2D | null; /** * Serialize the canvas content as a data URL. * * @param caller Information about the caller, including the canvas element and its associated window and browser frame. * @param [type] MIME type of the output image (e.g. `'image/png'`). * @param [quality] Encoder quality for lossy formats, in the range 0–1. * @returns A data URL string. */ toDataURL(caller: ICanvasAdapterCaller, type?: string, quality?: unknown): string; /** * Creates a Blob from the canvas content and passes it to the callback. * * @param options Options. * @param options.window The window associated with the canvas. * @param options.browserFrame The browser frame associated with the canvas. * @param options.canvas The canvas element to read. * @param options.callback Receives the resulting Blob, or null on failure. * @param [options.type] MIME type of the output image. * @param [options.quality] Encoder quality for lossy formats, in the range 0–1. */ toBlob( caller: ICanvasAdapterCaller, callback: (blob: Blob | null) => void, type?: string, quality?: unknown ): void; }