import { iconGenerator } from "../renderer/iconGenerator"; import { isValidHash, computeHash } from "../common/hashUtils"; import { CanvasRenderer } from "../renderer/canvas/canvasRenderer"; import { IS_RENDERED_PROPERTY } from "../common/dom"; /** * Draws an identicon to a context. * @param {CanvasRenderingContext2D} ctx - Canvas context on which the icon will be drawn at location (0, 0). * @param {*} hashOrValue - A hexadecimal hash string or any value that will be hashed by Jdenticon. * @param {number} size - Icon size in pixels. * @param {Object|number=} config - Optional configuration. If specified, this configuration object overrides any * global configuration in its entirety. For backward compatibility a padding value in the range [0.0, 0.5) can be * specified in place of a configuration object. */ export function drawIcon(ctx, hashOrValue, size, config) { if (!ctx) { throw new Error("No canvas specified."); } iconGenerator(new CanvasRenderer(ctx, size), isValidHash(hashOrValue) || computeHash(hashOrValue), config); const canvas = ctx.canvas; if (canvas) { canvas[IS_RENDERED_PROPERTY] = true; } }