event.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.formatMiniProgramEvent = void 0;
  4. const uni_shared_1 = require("@dcloudio/uni-shared");
  5. function formatMiniProgramEvent(eventName, { isCatch, isCapture, isComponent, }) {
  6. if (isComponent) {
  7. // 自定义组件的自定义事件需要格式化,因为 triggerEvent 时也会格式化
  8. eventName = (0, uni_shared_1.customizeEvent)(eventName);
  9. }
  10. if (!isComponent && eventName === 'click') {
  11. eventName = 'tap';
  12. }
  13. let eventType = 'bind';
  14. if (isCatch) {
  15. eventType = 'catch';
  16. }
  17. if (isCapture) {
  18. return `capture-${eventType}:${eventName}`;
  19. }
  20. // bind:foo-bar
  21. return eventType + (isSimpleExpr(eventName) ? '' : ':') + eventName;
  22. }
  23. exports.formatMiniProgramEvent = formatMiniProgramEvent;
  24. function isSimpleExpr(name) {
  25. if (name.startsWith('_')) {
  26. return false;
  27. }
  28. if (name.indexOf('-') > -1) {
  29. return false;
  30. }
  31. if (name.indexOf(':') > -1) {
  32. return false;
  33. }
  34. return true;
  35. }