From 3d4b51dababcc85e0aa5bd56bcd7001cdf98f3e3 Mon Sep 17 00:00:00 2001 From: Gabriele Lippi Date: Sat, 18 Apr 2020 13:12:20 +0200 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=93=91=EF=B8=8F=20Add=20type=20declar?= =?UTF-8?q?ations=20in=20order=20to=20enable=20better=20IDE=20integration?= =?UTF-8?q?=20and=20autocompletion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/reffects/index.d.ts | 35 ++++++++++++++++++++++++++++++++++ packages/reffects/package.json | 1 + 2 files changed, 36 insertions(+) create mode 100644 packages/reffects/index.d.ts diff --git a/packages/reffects/index.d.ts b/packages/reffects/index.d.ts new file mode 100644 index 0000000..725ad08 --- /dev/null +++ b/packages/reffects/index.d.ts @@ -0,0 +1,35 @@ +// Type definitions for reffects +// Project: reffects +// Definitions by: Gabriele Lippi - https://www.github.com/glippi +interface Event { + id: string; + payload?: object; +} + +interface Effect { + id: string; + data: object; +} + +interface Coeffect{ + id: string; + data?: object; +} + +type EventHandler = (coeffect?: Coeffect, payload?: object) => Effect; + +type EffectHandler = Function; + +type CoeffectHandler = Function; + +export function dispatch(event: Event): void; +export function dispatchMany(events: Event[]): void; +export function dispatchLater(event: Event): void; +export function registerEventHandler(eventId: string, handler: EventHandler, coeffectDescriptions?: string[]): void; +export function registerCoeffectHandler(coeffectId: string, handler: CoeffectHandler): void; +export function registerEffectHandler(effectId: string, handler: EffectHandler): void; +export function registerEventsDelegation(originalEvents: string[], targetEvent: string): void; +export function coeffect(id: string, data?: object): Coeffect; +export function getEffectHandler(effectId: string): EffectHandler; +export function getCoeffectHandler(coeffectId: string): CoeffectHandler; +export function getEventHandler(eventId: string): EventHandler; diff --git a/packages/reffects/package.json b/packages/reffects/package.json index d256ece..9fd3788 100644 --- a/packages/reffects/package.json +++ b/packages/reffects/package.json @@ -7,6 +7,7 @@ "main": "dist/reffects.js", "umd:main": "dist/reffects.umd.js", "keywords": [], + "types": "index.d.ts", "devDependencies": { "@babel/core": "^7.4.3", "@babel/preset-env": "^7.4.3", From 8cde124bf1f08bf8e6e9951f426ed6c288938d6d Mon Sep 17 00:00:00 2001 From: Gabriele Lippi Date: Mon, 20 Apr 2020 11:50:28 +0200 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=97=91=EF=B8=8F=20Delete=20comments?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/reffects/index.d.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/reffects/index.d.ts b/packages/reffects/index.d.ts index 725ad08..441cd65 100644 --- a/packages/reffects/index.d.ts +++ b/packages/reffects/index.d.ts @@ -1,6 +1,3 @@ -// Type definitions for reffects -// Project: reffects -// Definitions by: Gabriele Lippi - https://www.github.com/glippi interface Event { id: string; payload?: object; From fe8e97c0dd9332c4668bceb40189f056394b9d5f Mon Sep 17 00:00:00 2001 From: Gabriele Lippi Date: Sun, 3 May 2020 10:25:54 +0200 Subject: [PATCH 3/3] Fix Effect definition and improve types for registerEventHandler --- packages/reffects/index.d.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/reffects/index.d.ts b/packages/reffects/index.d.ts index 441cd65..dce7581 100644 --- a/packages/reffects/index.d.ts +++ b/packages/reffects/index.d.ts @@ -4,8 +4,7 @@ interface Event { } interface Effect { - id: string; - data: object; + [effectName: string]: object } interface Coeffect{ @@ -22,7 +21,7 @@ type CoeffectHandler = Function; export function dispatch(event: Event): void; export function dispatchMany(events: Event[]): void; export function dispatchLater(event: Event): void; -export function registerEventHandler(eventId: string, handler: EventHandler, coeffectDescriptions?: string[]): void; +export function registerEventHandler(eventId: string, handler: EventHandler, coeffectDescriptions?: Coeffect[]): void; export function registerCoeffectHandler(coeffectId: string, handler: CoeffectHandler): void; export function registerEffectHandler(effectId: string, handler: EffectHandler): void; export function registerEventsDelegation(originalEvents: string[], targetEvent: string): void;