tgsnake
Version:
Telegram MTProto framework for nodejs.
91 lines (90 loc) • 3.37 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TgsnakeApi = void 0;
class TgsnakeApi {
_beforeStartHandler = [];
_afterStartHandler = [];
_onLoginHandler = [];
_gracefullyStopHandler = [];
_beforeParseUpdateHandler = [];
_onParseUpdateHandler = [];
_afterParseUpdateHandler = [];
constructor() { }
addEventHandler(filter, func) {
if ('beforeStart' === filter) {
this._beforeStartHandler.push(func);
}
if ('afterStart' === filter) {
this._afterStartHandler.push(func);
}
if ('onLogin' === filter) {
this._onLoginHandler.push(func);
}
if ('gracefullyStop' === filter) {
this._gracefullyStopHandler.push(func);
}
if ('beforeParseUpdate' === filter) {
this._beforeParseUpdateHandler.push(func);
}
if ('onParseUpdate' === filter) {
this._onParseUpdateHandler.push(func);
}
if ('afterParseUpdate' === filter) {
this._afterParseUpdateHandler.push(func);
}
}
getEventHandler(filter) {
if ('beforeStart' === filter) {
return this._beforeStartHandler;
}
if ('afterStart' === filter) {
return this._afterStartHandler;
}
if ('onLogin' === filter) {
return this._onLoginHandler;
}
if ('gracefullyStop' === filter) {
return this._gracefullyStopHandler;
}
if ('beforeParseUpdate' === filter) {
return this._beforeParseUpdateHandler;
}
if ('onParseUpdate' === filter) {
return this._onParseUpdateHandler;
}
if ('afterParseUpdate' === filter) {
return this._afterParseUpdateHandler;
}
return [];
}
[Symbol.for('nodejs.util.inspect.custom')]() {
const toPrint = {
_: 'TgsnakeApi',
'[beforeStart]': `${this._beforeStartHandler.length} handler`,
'[afterStart]': `${this._afterStartHandler.length} handler`,
'[onLogin]': `${this._onLoginHandler.length} handler`,
'[gracefullyStop]': `${this._gracefullyStopHandler.length} handler`,
'[beforeParseUpdate]': `${this._beforeParseUpdateHandler.length} handler`,
'[onParseUpdate]': `${this._onParseUpdateHandler.length} handler`,
'[afterParseUpdate]': `${this._afterParseUpdateHandler.length} handler`,
};
return toPrint;
}
toJSON() {
const toPrint = {
_: 'TgsnakeApi',
'[beforeStart]': `${this._beforeStartHandler.length} handler`,
'[afterStart]': `${this._afterStartHandler.length} handler`,
'[onLogin]': `${this._onLoginHandler.length} handler`,
'[gracefullyStop]': `${this._gracefullyStopHandler.length} handler`,
'[beforeParseUpdate]': `${this._beforeParseUpdateHandler.length} handler`,
'[onParseUpdate]': `${this._onParseUpdateHandler.length} handler`,
'[afterParseUpdate]': `${this._afterParseUpdateHandler.length} handler`,
};
return toPrint;
}
toString() {
return `[constructor of ${this.constructor.name}] ${JSON.stringify(this, null, 2)}`;
}
}
exports.TgsnakeApi = TgsnakeApi;