UNPKG

@masknet/eslint-plugin

Version:
29 lines 1.22 kB
export function isElement(checker, node) { return isBaseType(checker, node, ['Window', 'Document', 'Element']); } export function isEventTarget(checker, node) { return isBaseType(checker, node, ['Window', 'Document', 'Element', 'EventTarget']); } export function isKeyboardEvent(checker, node) { return isBaseType(checker, node, ['KeyboardEvent']); } function isBaseType(checker, node, typeNames) { const type = checker.getTypeAtLocation(node); const types = type.isUnionOrIntersection() ? type.types : [type]; const allTypes = types.flatMap((t) => [t, ...(t.getBaseTypes() ?? [])]); return allTypes.some((t) => { const symbol = t.getSymbol(); return symbol && typeNames.includes(checker.symbolToString(symbol)); }); } export function isConstructor(checker, node, typeName) { return getConstructorTypeName(checker, node) === typeName; } function getConstructorTypeName(checker, node) { const symbol = checker.getTypeAtLocation(node).getSymbol(); if (!symbol?.valueDeclaration) return; const type = checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration); return checker.typeToString(type); } //# sourceMappingURL=type-checker.js.map