pub(crate) enum TypeOnlyKind {
Import,
Export,
}
mod assignability;
mod call_errors;
mod core;
mod generics;
mod name_resolution;
mod operator_errors;
mod properties;
mod suggestions;
mod type_value;
pub fn is_known_dom_global(name: &str) -> bool {
match name {
"console"
| "window" | "document" | "self"
| "HTMLElement" | "HTMLDivElement" | "HTMLSpanElement" | "HTMLInputElement"
| "HTMLButtonElement" | "HTMLAnchorElement" | "HTMLImageElement"
| "HTMLCanvasElement" | "HTMLFormElement" | "HTMLSelectElement"
| "HTMLTextAreaElement" | "HTMLTableElement" | "HTMLMediaElement"
| "HTMLVideoElement" | "HTMLAudioElement"
| "Element" | "Node" | "Document" | "Event" | "EventTarget"
| "NodeList" | "HTMLCollection" | "DOMTokenList"
| "XMLHttpRequest" | "fetch" | "Request" | "Response" | "Headers"
| "URL" | "URLSearchParams"
| "setTimeout" | "clearTimeout" | "setInterval" | "clearInterval"
| "requestAnimationFrame" | "cancelAnimationFrame"
| "alert" | "confirm" | "prompt"
| "localStorage" | "sessionStorage" | "Storage"
| "navigator" | "Navigator" | "location" | "Location" | "history" | "History"
| "MouseEvent" | "KeyboardEvent" | "TouchEvent" | "FocusEvent"
| "CustomEvent" | "MessageEvent" | "ErrorEvent"
| "addEventListener" | "removeEventListener"
| "CanvasRenderingContext2D" | "WebGLRenderingContext"
| "MediaStream" | "MediaRecorder"
| "Worker" | "ServiceWorker" | "SharedWorker"
| "MutationObserver" | "IntersectionObserver" | "ResizeObserver"
| "Performance" | "performance"
| "Blob" | "File" | "FileReader" | "FormData"
| "WebSocket" | "ClipboardEvent" | "DragEvent"
| "getComputedStyle" | "matchMedia"
| "DOMException" | "AbortController" | "AbortSignal"
| "TextEncoder" | "TextDecoder"
| "crypto" | "Crypto" | "SubtleCrypto"
| "queueMicrotask" | "structuredClone"
| "atob" | "btoa" => true,
_ => false,
}
}
pub fn is_known_node_global(name: &str) -> bool {
matches!(
name,
"require" | "exports" | "module" | "process" | "Buffer" | "__filename" | "__dirname"
)
}
pub fn is_known_test_runner_global(name: &str) -> bool {
matches!(name, "describe" | "suite" | "it" | "test")
}