Debugging
Some handy ideas on how to debug easily
Usually, events get pushed to the
window.elbLayer
. You can take a look at the elbLayer in the console to see events. However, some events might skip the elbLayer.Add a custom destination where push points to console.log to list all events in the console:
import { elb } from '@elbwalker/walker.js';
elb('walker destination', {
push: console.log,
});
Use selectors to loop through all elb-tags on a page and display the results in the console:
// Loop all entities
queryScope(document.body, "[data-elb]", function (entity) {
console.log(`------`);
const entityName = entity.getAttribute("data-elb");
// Loop all acctions
queryScope(entity, "[data-elbaction]", function (action) {
const actionName = action.getAttribute("data-elbaction");
console.log("event", entityName, actionName);
});
// Get all properties
const properties = [];
const propertyAttr = `data-elb-${entityName}`;
queryScope(entity, `[${propertyAttr}]`, function (prop) {
properties.push(prop.getAttribute(propertyAttr));
});
console.log("properties", properties);
});
function queryScope(scope, selector, func) {
[scope, ...scope.querySelectorAll(selector)]
.filter((el) => el.matches(selector))
.map((elem) => {
func.call(scope, elem);
});
}
For more information on any of the things covered in this documentation, you can
Last modified 5mo ago