1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.BaseScene = void 0;
|
4 | const composer_1 = require("../composer");
|
5 | const { compose } = composer_1.default;
|
6 | class BaseScene extends composer_1.default {
|
7 | constructor(id, options) {
|
8 | const opts = {
|
9 | handlers: [],
|
10 | enterHandlers: [],
|
11 | leaveHandlers: [],
|
12 | ...options,
|
13 | };
|
14 | super(...opts.handlers);
|
15 | this.id = id;
|
16 | this.ttl = opts.ttl;
|
17 | this.enterHandler = compose(opts.enterHandlers);
|
18 | this.leaveHandler = compose(opts.leaveHandlers);
|
19 | }
|
20 | enter(...fns) {
|
21 | this.enterHandler = compose([this.enterHandler, ...fns]);
|
22 | return this;
|
23 | }
|
24 | leave(...fns) {
|
25 | this.leaveHandler = compose([this.leaveHandler, ...fns]);
|
26 | return this;
|
27 | }
|
28 | enterMiddleware() {
|
29 | return this.enterHandler;
|
30 | }
|
31 | leaveMiddleware() {
|
32 | return this.leaveHandler;
|
33 | }
|
34 | }
|
35 | exports.BaseScene = BaseScene;
|
36 | exports.default = BaseScene;
|