UNPKG

sdg

Version:

pomelo ts

68 lines 4.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tools_1 = require("../../util/tools"); class FilterService { constructor() { this.before = []; this.after = []; this.name = 'filter'; } addBefore(before) { this.before.push(before); } addAfter(after) { this.after.unshift(after); } replaceFilter(filter) { this.replaceBefore(filter); this.replaceAfter(filter); } replaceBefore(before) { this.removeBefore(before); this.addBefore(before); } replaceAfter(after) { this.removeAfter(after); this.addAfter(after); } removeBefore(filter) { let index = this.before.findIndex(v => tools_1.getClassName(v) === tools_1.getClassName(filter)); if (index >= 0) { this.before.splice(index); } } removeAfter(filter) { let index = this.after.findIndex(v => tools_1.getClassName(v) === tools_1.getClassName(filter)); if (index >= 0) { this.after.splice(index); } } async beforeFilter(routeRecord, msg, session) { for (const handler of this.before) { if (typeof handler === 'function') { await handler(routeRecord, msg, session); } else if (typeof handler.before === 'function') { await handler.before(routeRecord, msg, session); } else { throw 'invalid before filter'; } } } async afterFilter(routeRecord, msg, session) { for (const handler of this.after) { if (typeof handler === 'function') { await handler(routeRecord, msg, session); } else if (typeof handler.after === 'function') { await handler.after(routeRecord, msg, session); } else { throw 'invalid after filter'; } } } } exports.default = FilterService; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vc2VydmljZS9maWx0ZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsNENBQWdEO0FBRWhELE1BQXFCLGFBQWE7SUFNaEM7UUFMTyxXQUFNLEdBQTJCLEVBQUUsQ0FBQztRQUNwQyxVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUVsQyxTQUFJLEdBQUcsUUFBUSxDQUFDO0lBRVIsQ0FBQztJQUVULFNBQVMsQ0FBQyxNQUE0QjtRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ00sUUFBUSxDQUFDLEtBQTBCO1FBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSxhQUFhLENBQUMsTUFBc0I7UUFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDTSxhQUFhLENBQUMsTUFBNEI7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDTSxZQUFZLENBQUMsS0FBMEI7UUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxZQUFZLENBQUMsTUFBNEI7UUFDOUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLG9CQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFDTSxXQUFXLENBQUMsTUFBMkI7UUFDNUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLG9CQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNoRixJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQXlCLEVBQUcsR0FBZ0IsRUFBRSxPQUFrQztRQUN4RyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDakMsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLEVBQUU7Z0JBQ2pDLE1BQU0sT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDMUM7aUJBQU0sSUFBSSxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO2dCQUMvQyxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUNqRDtpQkFBTTtnQkFDTCxNQUFNLHVCQUF1QixDQUFDO2FBQy9CO1NBQ0Y7SUFDSCxDQUFDO0lBQ00sS0FBSyxDQUFDLFdBQVcsQ0FBQyxXQUF5QixFQUFHLEdBQWdCLEVBQUUsT0FBa0M7UUFDdkcsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2hDLElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFO2dCQUNqQyxNQUFNLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQzFDO2lCQUFNLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTtnQkFDOUMsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDaEQ7aUJBQU07Z0JBQ0wsTUFBTSxzQkFBc0IsQ0FBQzthQUM5QjtTQUNGO0lBQ0gsQ0FBQztDQUNGO0FBL0RELGdDQStEQyJ9