@react-jsonr/plugin-event-handlers
Version:
Event handler mapping plugin for React-JSONR
37 lines (36 loc) • 1.02 kB
JavaScript
/* React-JSONR Event Handlers Plugin - Maps string event handlers to functions */
// src/index.ts
function createEventHandlerPlugin(options) {
const {
handlers,
prefix = "on",
warnOnMissing = true
} = options;
return {
enter(node, context) {
if (typeof node !== "object" || node === null || Array.isArray(node)) {
return;
}
const componentNode = node;
if (!componentNode.props) {
return;
}
for (const [key, value] of Object.entries(componentNode.props)) {
if (key.startsWith(prefix) && typeof value === "string") {
const handler = handlers[value];
if (typeof handler === "function") {
componentNode.props[key] = handler;
} else if (warnOnMissing) {
console.warn(`Event handler not found: ${value}`);
}
}
}
}
};
}
var src_default = createEventHandlerPlugin;
export {
createEventHandlerPlugin,
src_default as default
};
//# sourceMappingURL=index.js.map