typhonjs-ast-walker
Version:
Provides a simple Javascript AST traversal utility that traverses all nodes / children regardless of type.
39 lines (31 loc) • 870 B
JavaScript
import ASTWalker from './ASTWalker.js';
/**
* Default walker instance.
* @type {ASTWalker}
*/
const walker = new ASTWalker();
/**
* Provides a default ASTWalker instance.
*/
export default walker;
/**
* Wires up walker on the plugin eventbus.
*
* @param {PluginEvent} ev - The plugin event.
*
* @see https://www.npmjs.com/package/typhonjs-plugin-manager
* @ignore
*/
export function onPluginLoad(ev)
{
const eventbus = ev.eventbus;
let eventPrepend = 'typhonjs';
const options = ev.pluginOptions;
// Apply any plugin options.
if (typeof options === 'object')
{
// If `eventPrepend` is defined then it is prepended before all event bindings.
if (typeof options.eventPrepend === 'string') { eventPrepend = `${options.eventPrepend}:`; }
}
eventbus.on(`${eventPrepend}:ast:walker:traverse`, walker.traverse, walker);
}