telegraf
Version:
📡 Modern Telegram bot framework
45 lines (36 loc) • 885 B
JavaScript
const Composer = require('../composer')
class BaseScene extends Composer {
constructor (id, options) {
const opts = Object.assign({
handlers: [],
enterHandlers: [],
leaveHandlers: []
}, options)
super(...opts.handlers)
this.id = id
this.options = opts
this.enterHandler = Composer.compose(opts.enterHandlers)
this.leaveHandler = Composer.compose(opts.leaveHandlers)
}
set ttl (value) {
this.options.ttl = value
}
get ttl () {
return this.options.ttl
}
enter (...fns) {
this.enterHandler = Composer.compose([this.enterHandler, ...fns])
return this
}
leave (...fns) {
this.leaveHandler = Composer.compose([this.leaveHandler, ...fns])
return this
}
enterMiddleware () {
return this.enterHandler
}
leaveMiddleware () {
return this.leaveHandler
}
}
module.exports = BaseScene