Concepts
Handlers
Handlers are executed by effects, when certain conditions are met.
The actual execution logic of handlers come from modules that are installed in your application.
Defining an effect with a handler#
Handlers are referenced inside the steps of an effect:
effects/myEffect.yml
# ...steps: - handler: module-name-here params: key: value
Learn more in effects page.
Module setup#
We can install the module module-pixel in our application to give a demo:
Command
$ npm install --save @eventvisor/module-pixel
And then set it up when initializing the SDK:
import { createInstance } from "@eventvisor/sdk";import { createInjectScriptModule } from "@eventvisor/module-pixel";const eventvisor = createInstance({ modules: [ createPixelModule(), ],});
Usage example#
From any of our effects, we can use this handler to inject a script into the page:
effects/myEffect.yml
# ...steps: - handler: pixel params: snippet: | <script> console.log("Hello world!"); </script> selector: body
Creating custom handlers#
To create a custom handler, you can create a new custom module with at least the handle
method implemented:
Defining module#
your-app/custom.ts
export function createCustomModule() { return { name: "custom", handle: async ({ effectName, step }) => { const { params } = step; console.log("Custom handler called for effect:", effectName); }, };};
SDK setup#
And then set it up when initializing the SDK:
your-app/index.js
import { createInstance } from "@eventvisor/sdk";import { createCustomModule } from "./custom";const eventvisor = createInstance({ modules: [ createCustomModule(), ],});
Handler usage#
Now from the effects, we can use the custom handler like this:
effects/myEffect.yml
# ...steps: - handler: custom params: key: value