missing-dom-events
v1.0.0
Published
The missing DOM events for backends that doesn't support them
Downloads
13
Readme
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 | ❌ | ❌ |