The missing DOM events
This is a bunch of web based dom events that can be triggered in the browser. But for backends like NodeJS.
It started out as ErrorEvent
wasn't globally defined in NodeJS, so i wanted
to create a polyfill for it. And since all DOM Events is pretty much the same.
i polyfilled mostly all of them (80+ in fact).
Most of them won't even make since in a backend. But some of them are. Like the
one Deno have for instance. Some are essential for a proper web Worker, it can
for instance dispatch a ErrorEvent
.
Someone who is building a macro/hotkey might want to dispatch keyboard / mouse events.
- All events extends
Event
- If the event exist natively on global scope, then it will be used instead.
Install
missing-dom-events
is an ESM-only module - you are not able to import it with require
. If you are unable to use ESM in your project you can use the async import('missing-dom-events')
from CommonJS to load missing-dom-events
asynchronously.
npm install missing-dom-events
Use
import events from 'missing-dom-events'
const errorEvent = new events.ErrorEvent('error', {
message: 'An error occurred',
error: new Error('Something went wrong'),
filename: 'script.js',
lineno: 10,
colno: 5,
source: 'http://example.com/myscript.js',
type: 'unhandledrejection'
})
worker.dispatchEvent(errorEvent)
Compatibility table
This is all the events that are built in into the engine natively. All of this are also what you will get out from importing this package.
Event | Node | Deno |
---|---|---|
AnimationEvent | ❌ | ❌ |
AnimationPlaybackEvent | ||
AudioProcessingEvent | ❌ | |
BeforeCreatePolicyEvent | ||
BeforeInstallPromptEvent | ||
BeforeUnloadEvent | ❌ | |
BlobEvent | ❌ | |
BluetoothAdvertisingEvent | ||
CharacterBoundsUpdateEvent | ❌ | ❌ |
ClipboardEvent | ❌ | |
CloseEvent | ||
CompositionEvent | ||
ContentVisibilityAutoStateChangeEvent | ❌ | |
CookieChangeEvent | ||
CSSTransitionEvent | ||
CustomEvent | ||
DeviceMotionEvent | ||
DeviceOrientationEvent | ❌ | |
DocumentPictureInPictureEvent | ||
DragEvent | ||
ErrorEvent | ||
FocusEvent | ||
FontFaceSetLoadEvent | ❌ | |
FormDataEvent | ||
GamepadAxisEvent | ❌ | |
GamepadButtonEvent | ❌ | |
GamepadEvent | ||
HashChangeEvent | ||
HIDConnectionEvent | ❌ | |
HIDInputReportEvent | ❌ | |
IDBVersionChangeEvent | ❌ | |
InputEvent | ||
KeyboardEvent | ||
MediaEncryptedEvent | ||
MediaKeyMessageEvent | ❌ | |
MediaQueryListEvent | ||
MediaStreamEvent | ||
MediaStreamTrackEvent | ||
MerchantValidationEvent | ❌ | |
MessageEvent | ||
MIDIConnectionEvent | ❌ | |
MIDIMessageEvent | ||
MouseEvent | ||
MutationEvent | ||
NavigateEvent | ❌ | ❌ |
NavigationCurrentEntryChangeEvent | ||
OfflineAudioCompletionEvent | ❌ | |
OverscrollEvent | ❌ | |
PageTransitionEvent | ||
PaymentMethodChangeEvent | ❌ | ❌ |
PaymentRequestUpdateEvent | ||
PictureInPictureEvent | ||
PointerEvent | ||
PopStateEvent | ||
PresentationConnectionAvailableEvent | ||
PresentationConnectionCloseEvent | ||
ProgressEvent | ||
PromiseRejectionEvent | ||
RTCDataChannelEvent | ||
RTCDTMFToneChangeEvent | ❌ | |
RTCErrorEvent | ||
RTCPeerConnectionIceErrorEvent | ||
RTCPeerConnectionIceEvent | ❌ | |
RTCTrackEvent | ||
SecurityPolicyViolationEvent | ||
SensorErrorEvent | ||
SpeechSynthesisErrorEvent | ||
SpeechSynthesisEvent | ||
StorageEvent | ❌ | |
SubmitEvent | ||
TaskPriorityChangeEvent | ❌ | |
TextEvent | ❌ | |
TextFormatUpdateEvent | ❌ | |
TextUpdateEvent | ||
ToggleEvent | ||
TouchEvent | ❌ | |
TrackEvent | ❌ | |
TransitionEvent | ❌ | |
UIEvent | ||
USBConnectionEvent | ||
VirtualKeyboardGeometryChangeEvent | ||
WebGLContextEvent | ❌ | |
WheelEvent | ||
WindowControlsOverlayGeometryChangeEvent | ||
XRInputSourceEvent | ||
XRInputSourcesChangeEvent | ❌ | |
XRReferenceSpaceEvent | ❌ | |
XRSessionEvent |