Extending
VSN.js is designed to be extensible without a huge plugin system.
Custom globals
engine.registerGlobal("api", apiClient);
Custom flags
engine.registerFlag("trace", {
onApply({ element }) {
console.log("trace", element);
}
});
Custom attributes
engine.registerAttributeHandler({
id: "vsn-demo",
match: (name) => name === "vsn-demo",
handle: (element, _name, value, scope) => {
scope.set("demo", value);
}
});