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

Function genHandler

static/vuejs/vue.js:8389–8437  ·  view source on GitHub ↗
(
  name,
  handler
)

Source from the content-addressed store, hash-verified

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