hokulea/aria-voyager

View on GitHub
packages/ember-aria-voyager/package/src/test-support/-private/-target.ts

Summary

Maintainability
A
3 hrs
Test Coverage
import type { Target } from '@ember/test-helpers';

export interface HTMLElementContentEditable extends HTMLElement {
  isContentEditable: true;
}

// eslint-disable-next-line require-jsdoc
export function isElement(target: unknown): target is Element {
  return (
    target !== null &&
    typeof target === 'object' &&
    Reflect.get(target, 'nodeType') === Node.ELEMENT_NODE
  );
}

// eslint-disable-next-line require-jsdoc
export function isWindow(target: Target): target is Window {
  return target instanceof Window;
}

// eslint-disable-next-line require-jsdoc
export function isDocument(target: unknown): target is Document {
  return (
    target !== null &&
    typeof target === 'object' &&
    Reflect.get(target, 'nodeType') === Node.DOCUMENT_NODE
  );
}

// eslint-disable-next-line require-jsdoc
export function isContentEditable(element: Element): element is HTMLElementContentEditable {
  return 'isContentEditable' in element && (element as HTMLElement).isContentEditable;
}