From 45a00fdc76be2ea2cd90fbc1702b990f0efdf68c Mon Sep 17 00:00:00 2001 From: David Bismut Date: Sun, 12 May 2019 10:45:38 +0200 Subject: [PATCH 1/3] Add createEvent that returns the created Event --- src/events.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/events.js b/src/events.js index 48114410..d20228f7 100644 --- a/src/events.js +++ b/src/events.js @@ -307,11 +307,13 @@ function fireEvent(element, event) { return element.dispatchEvent(event) } +const createEvent = {} + Object.keys(eventMap).forEach(key => { const {EventType, defaultInit} = eventMap[key] const eventName = key.toLowerCase() - fireEvent[key] = (node, init) => { + createEvent[key] = (node, init) => { const eventInit = {...defaultInit, ...init} const {target: {value, files, ...targetProperties} = {}} = eventInit Object.assign(node, targetProperties) @@ -331,9 +333,10 @@ Object.keys(eventMap).forEach(key => { } const window = getWindowFromNode(node) const EventConstructor = window[EventType] || window.Event - const event = new EventConstructor(eventName, eventInit) - return fireEvent(node, event) + return new EventConstructor(eventName, eventInit) } + + fireEvent[key] = (node, init) => fireEvent(node, createEvent[key](node, init)) }) function getWindowFromNode(node) { @@ -377,6 +380,6 @@ Object.keys(eventAliasMap).forEach(aliasKey => { fireEvent[aliasKey] = (...args) => fireEvent[key](...args) }) -export {fireEvent} +export {fireEvent, createEvent} /* eslint complexity:["error", 9] */ From 7eed7ada1376adf59839356729d1d369327831b0 Mon Sep 17 00:00:00 2001 From: David Bismut Date: Sun, 12 May 2019 20:03:33 +0200 Subject: [PATCH 2/3] Typescript definitions for createEvent --- package.json | 3 ++- typings/events.d.ts | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ae405576..6a5937f5 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,8 @@ "test:update": "npm test -- --updateSnapshot --coverage", "validate": "kcd-scripts validate", "setup": "npm install && npm run validate -s", - "dtslint": "dtslint typings" + "dtslint": "dtslint typings", + "precommit": "kcd-scripts pre-commit" }, "husky": { "hooks": { diff --git a/typings/events.d.ts b/typings/events.d.ts index 1bb05a37..2b3399dd 100644 --- a/typings/events.d.ts +++ b/typings/events.d.ts @@ -75,5 +75,9 @@ export type FireFunction = (element: Element | Window, event: Event) => boolean export type FireObject = { [K in EventType]: (element: Element | Window, options?: {}) => boolean } +export type CreateObject = { + [K in EventType]: (element: Element | Window, options?: {}) => Event +} +export const createEvent: CreateObject export const fireEvent: FireFunction & FireObject From 0afda647a4c943a0f0f84262293ea5d1dc47c293 Mon Sep 17 00:00:00 2001 From: David Bismut Date: Sun, 12 May 2019 20:34:28 +0200 Subject: [PATCH 3/3] =?UTF-8?q?Revert=20package.json=20=F0=9F=98=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 6a5937f5..ae405576 100644 --- a/package.json +++ b/package.json @@ -30,8 +30,7 @@ "test:update": "npm test -- --updateSnapshot --coverage", "validate": "kcd-scripts validate", "setup": "npm install && npm run validate -s", - "dtslint": "dtslint typings", - "precommit": "kcd-scripts pre-commit" + "dtslint": "dtslint typings" }, "husky": { "hooks": {