"use strict";
|
Object.defineProperty(exports, "__esModule", { value: true });
|
exports.createTransformEvent = void 0;
|
const shared_1 = require("@vue/shared");
|
const ast_1 = require("../../vite/utils/ast");
|
function createTransformEvent(options) {
|
return function transformEvent(node) {
|
if (!(0, ast_1.isElementNode)(node)) {
|
return;
|
}
|
node.props.forEach((prop) => {
|
const { name, arg } = prop;
|
if (name === 'on' && arg && (0, ast_1.isSimpleExpressionNode)(arg)) {
|
const eventType = options[arg.content];
|
if (eventType) {
|
// e.g tap => click
|
if ((0, shared_1.isFunction)(eventType)) {
|
arg.content = eventType(node, prop);
|
}
|
else {
|
arg.content = eventType;
|
}
|
}
|
}
|
});
|
};
|
}
|
exports.createTransformEvent = createTransformEvent;
|