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

Function genHandler

static/vuejs/vue.esm.js:8393–8441  ·  view source on GitHub ↗
(
  name,
  handler
)

Source from the content-addressed store, hash-verified

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