diff options
Diffstat (limited to 'packages/webapi/src/lib/CustomEvent.ts')
-rw-r--r-- | packages/webapi/src/lib/CustomEvent.ts | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/webapi/src/lib/CustomEvent.ts b/packages/webapi/src/lib/CustomEvent.ts new file mode 100644 index 000000000..951ca8e81 --- /dev/null +++ b/packages/webapi/src/lib/CustomEvent.ts @@ -0,0 +1,24 @@ +import * as _ from './utils' +import { Event } from 'event-target-shim' + +class CustomEvent<TEventType extends string = string> extends Event<TEventType> { + constructor(type: TEventType, params?: CustomEventInit) { + params = Object(params) as Required<CustomEventInit> + + super(type, params) + + if ('detail' in params) this.detail = params.detail + } + + detail!: any +} + +_.allowStringTag(CustomEvent) + +export { CustomEvent } + +interface CustomEventInit { + bubbles?: boolean + cancelable?: false + detail?: any +} |