UNPKG

tgsnake

Version:

Telegram MTProto framework for nodejs.

55 lines (54 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConversationJob = exports.Conversation = void 0; const Filters_js_1 = require("../Context/Filters.js"); class Conversation { handler; constructor() { this.handler = (_, next) => next(); } middleware(context, next) { return this.handler(context, next); } wait(key, filter = (context) => { context; return true; }) { const job = new ConversationJob(); const middleware = (context, next) => { if (!job.resolved) { if ((0, Filters_js_1.filter)(key, context) && filter(context)) { job.resolve(context); return this.end(); } } return next(); }; this.handler = middleware; return job.promise; } end() { this.handler = (_, next) => next(); } } exports.Conversation = Conversation; class ConversationJob { resolve; reject; promise; resolved; constructor() { this.promise = new Promise((res, rej) => { this.resolve = (results) => { this.resolved = true; res(results); }; this.reject = (error) => { this.resolved = true; rej(error); }; }); } } exports.ConversationJob = ConversationJob;