// One owner per root. A newer load/apply/reset supersedes an in-flight load. const requests = new WeakMap() export function beginThemeRequest(root: HTMLElement) { const request = {}; requests.set(root, request); return request } export function isCurrentThemeRequest(root: HTMLElement, request: object) { return requests.get(root) === request } export function invalidateThemeRequest(root: HTMLElement) { requests.delete(root) }