MCPcopy Create free account
hub / github.com/TruthHun/BookStack / genHandler

Function genHandler

static/vuejs/vue.common.js:8395–8443  ·  view source on GitHub ↗
(
  name,
  handler
)

Source from the content-addressed store, hash-verified

8393}
8394
8395function genHandler (
8396 name,
8397 handler
8398) {
8399 if (!handler) {
8400 return 'function(){}'
8401 }
8402
8403 if (Array.isArray(handler)) {
8404 return ("[" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + "]")
8405 }
8406
8407 var isMethodPath = simplePathRE.test(handler.value);
8408 var isFunctionExpression = fnExpRE.test(handler.value);
8409
8410 if (!handler.modifiers) {
8411 return isMethodPath || isFunctionExpression
8412 ? handler.value
8413 : ("function($event){" + (handler.value) + "}") // inline statement
8414 } else {
8415 var code = '';
8416 var genModifierCode = '';
8417 var keys = [];
8418 for (var key in handler.modifiers) {
8419 if (modifierCode[key]) {
8420 genModifierCode += modifierCode[key];
8421 // left/right
8422 if (keyCodes[key]) {
8423 keys.push(key);
8424 }
8425 } else {
8426 keys.push(key);
8427 }
8428 }
8429 if (keys.length) {
8430 code += genKeyFilter(keys);
8431 }
8432 // Make sure modifiers like prevent and stop get executed after key filtering
8433 if (genModifierCode) {
8434 code += genModifierCode;
8435 }
8436 var handlerCode = isMethodPath
8437 ? handler.value + '($event)'
8438 : isFunctionExpression
8439 ? ("(" + (handler.value) + ")($event)")
8440 : handler.value;
8441 return ("function($event){" + code + handlerCode + "}")
8442 }
8443}
8444
8445function genKeyFilter (keys) {
8446 return ("if(!('button' in $event)&&" + (keys.map(genFilterCode).join('&&')) + ")return null;")

Callers 1

genHandlersFunction · 0.70

Calls 1

genKeyFilterFunction · 0.70

Tested by

no test coverage detected