Make Your Own Validator/Plugin
Validator
You may sometimes need to create a custom validator. Below is an example using @cfworker/json-schema.
import { Validator } from "@cfworker/json-schema";
export function validator(jsonSchema: object): (payload?: unknown) => boolean {
// When schema is `{}`, the payload must be undefined or null.
if (Object.keys(jsonSchema).length === 0)
return (payload?: unknown) =>
typeof payload === "undefined" || payload === null;
// Otherwise, validate the payload using the schema.
const validator = new Validator(jsonSchema);
return function (payload?: unknown) {
return validator.validate(payload).valid;
};
}
You can create your own validator using @cfworker/json-schema or ajv.
Plugin
Runnel dispatches CustomEvents to the window.top
or window
object. You can create your own plugin to observe these events.
Custom Events
Event Name | Triggered when... |
---|---|
runnel:on-create-topic | A topic is created. |
runnel:on-post-message | A topic is published. |
runnel:on-add-event-listener | A topic is subscribed to. |
runnel:on-remove-event-listener | A topic is unsubscribed from. |