rkeys
Version:
A platform for creating tablet/HTML5 virtual-keyboard apps to send keystrokes to remote X11
43 lines (42 loc) • 1.25 kB
JavaScript
// Generated by LiveScript 1.3.0
(function(){
var _, Co, Fc;
_ = require('lodash');
Co = require('../command');
Fc = require('./filter-chain');
module.exports = function(e){
var scs, id, ref$, chain, rx, lresult$, i$, len$, cmd, r, j$, len1$, i, submatch, fn, results$ = [];
e == null && (e = rkeyEvent);
scs = Co.getSidechains();
for (id in scs) {
ref$ = scs[id], chain = ref$.chain, rx = ref$.rx;
lresult$ = [];
if (rx.test(e.from)) {
for (i$ = 0, len$ = chain.length; i$ < len$; ++i$) {
ref$ = chain[i$], rx = ref$.rx, cmd = ref$.cmd;
if (r = rx.exec(e.act)) {
for (j$ = 0, len1$ = r.length; j$ < len1$; ++j$) {
i = j$;
submatch = r[j$];
fn = fn$;
cmd = _.isArray(cmd)
? _.map(cmd, fn)
: fn(cmd);
}
Fc((ref$ = clone$(e), ref$.command = cmd, ref$));
break;
}
}
}
results$.push(lresult$);
}
return results$;
function fn$(it){
return it.replace(new RegExp("\\$" + i, 'g'), submatch);
}
};
function clone$(it){
function fun(){} fun.prototype = it;
return new fun;
}
}).call(this);