diff --git a/packages/reffects/index.d.ts b/packages/reffects/index.d.ts new file mode 100644 index 0000000..dce7581 --- /dev/null +++ b/packages/reffects/index.d.ts @@ -0,0 +1,31 @@ +interface Event { + id: string; + payload?: object; +} + +interface Effect { + [effectName: string]: 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?: 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; +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",