tgsnake
Version:
Telegram MTProto framework for nodejs.
42 lines (41 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.filter = filter;
const index_js_1 = require("../TL/Updates/index.js");
function filter(key, ctx) {
const aliases = {
cb: 'callbackQuery',
msg: 'message',
editMsg: 'editedMessage',
editPost: 'editedChannelPost',
};
if (Array.isArray(key)) {
for (const k of key) {
if (k === 'any' ||
(ctx[k] && ctx instanceof index_js_1.Update) ||
('className' in ctx && k === ctx.className))
return true;
const sk = k.split('.');
if (sk.length) {
if (ctx[aliases[sk[0]]] &&
ctx[aliases[sk[0]]][sk[1]] !== undefined) {
return true;
}
}
}
}
else {
if (key === 'any' ||
(ctx[key] && ctx instanceof index_js_1.Update) ||
('className' in ctx && key === ctx.className))
return true;
const sk = key.split('.');
if (sk.length) {
if (ctx[aliases[sk[0]]] &&
ctx[aliases[sk[0]]][sk[1]] !== undefined) {
return true;
}
}
}
return false;
}