eslint-plugin-unicorn
Version:
More than 300 powerful ESLint rules
128 lines (122 loc) • 2.56 kB
JavaScript
import {
createTypeCheckers,
} from './type-helpers.js';
const reactEventTypeNames = new Set([
'AnimationEvent',
'BaseSyntheticEvent',
'ChangeEvent',
'ClipboardEvent',
'CompositionEvent',
'DragEvent',
'FocusEvent',
'FormEvent',
'InputEvent',
'InvalidEvent',
'KeyboardEvent',
'MouseEvent',
'PointerEvent',
'SubmitEvent',
'SyntheticEvent',
'TouchEvent',
'ToggleEvent',
'TransitionEvent',
'UIEvent',
'WheelEvent',
]);
const eventTypeNames = new Set([
'AnimationEvent',
'AnimationPlaybackEvent',
'AudioProcessingEvent',
'BeforeUnloadEvent',
'BlobEvent',
'ClipboardEvent',
'CloseEvent',
'CommandEvent',
'CompositionEvent',
'ContentVisibilityAutoStateChangeEvent',
'CookieChangeEvent',
'CustomEvent',
'DeviceMotionEvent',
'DeviceOrientationEvent',
'DragEvent',
'ErrorEvent',
'Event',
'ExtendableCookieChangeEvent',
'ExtendableEvent',
'ExtendableMessageEvent',
'FetchEvent',
'FocusEvent',
'FontFaceSetLoadEvent',
'FormDataEvent',
'GPUUncapturedErrorEvent',
'GamepadEvent',
'HashChangeEvent',
'IDBVersionChangeEvent',
'InputEvent',
'KeyboardEvent',
'MIDIConnectionEvent',
'MIDIMessageEvent',
'MediaEncryptedEvent',
'MediaKeyMessageEvent',
'MediaQueryListEvent',
'MediaStreamTrackEvent',
'MessageEvent',
'MouseEvent',
'NavigateEvent',
'NavigationCurrentEntryChangeEvent',
'NotificationEvent',
'OfflineAudioCompletionEvent',
'PageRevealEvent',
'PageSwapEvent',
'PageTransitionEvent',
'PaymentMethodChangeEvent',
'PaymentRequestUpdateEvent',
'PictureInPictureEvent',
'PointerEvent',
'PopStateEvent',
'ProgressEvent',
'PromiseRejectionEvent',
'PushEvent',
'PushSubscriptionChangeEvent',
'RTCDataChannelEvent',
'RTCDTMFToneChangeEvent',
'RTCErrorEvent',
'RTCPeerConnectionIceErrorEvent',
'RTCPeerConnectionIceEvent',
'RTCTrackEvent',
'RTCTransformEvent',
'SecurityPolicyViolationEvent',
'SpeechRecognitionErrorEvent',
'SpeechRecognitionEvent',
'SpeechSynthesisErrorEvent',
'SpeechSynthesisEvent',
'StorageEvent',
'SubmitEvent',
'TaskPriorityChangeEvent',
'TextEvent',
'ToggleEvent',
'TouchEvent',
'TrackEvent',
'TransitionEvent',
'UIEvent',
'WebGLContextEvent',
'WheelEvent',
...reactEventTypeNames,
]);
const {
isTarget: isEvent,
isKnownNonTarget: isKnownNonEvent,
} = createTypeCheckers({
preferTypeReferenceDefinitions: true,
targetTypeImports: new Map([
['react', reactEventTypeNames],
]),
targetTypeNamespaceImports: new Map([
['react', reactEventTypeNames],
]),
targetTypeNames: eventTypeNames,
});
export {
isKnownNonEvent,
};
export default isEvent;