transformEvent.js 1005 B

12345678910111213141516171819202122232425262728
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.createTransformEvent = void 0;
  4. const shared_1 = require("@vue/shared");
  5. const ast_1 = require("../../vite/utils/ast");
  6. function createTransformEvent(options) {
  7. return function transformEvent(node) {
  8. if (!(0, ast_1.isElementNode)(node)) {
  9. return;
  10. }
  11. node.props.forEach((prop) => {
  12. const { name, arg } = prop;
  13. if (name === 'on' && arg && (0, ast_1.isSimpleExpressionNode)(arg)) {
  14. const eventType = options[arg.content];
  15. if (eventType) {
  16. // e.g tap => click
  17. if ((0, shared_1.isFunction)(eventType)) {
  18. arg.content = eventType(node, prop);
  19. }
  20. else {
  21. arg.content = eventType;
  22. }
  23. }
  24. }
  25. });
  26. };
  27. }
  28. exports.createTransformEvent = createTransformEvent;