UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

34 lines 2.39 kB
export class InterceptorChain { constructor(target) { this.target = target; this.interceptors = []; } addInterceptor(interceptor) { this.interceptors.push(typeof interceptor === 'function' ? { intercept: interceptor, } : interceptor); return this; } execute(context) { const runner = { index: 0, run: (context) => { if (runner.index < this.interceptors.length) { runner.index++; return this.interceptors[runner.index - 1].intercept(context, { handle: (context) => { return runner.run(context); }, }); } else { return this.target(context); } }, }; return runner.run(context); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjZXB0b3ItY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9jbGllbnQvaW1wbC9zcmMvbGliL2ludGVyY2VwdG9ycy9pbnRlcmNlcHRvci1jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCLFlBQ1UsTUFBbUU7UUFBbkUsV0FBTSxHQUFOLE1BQU0sQ0FBNkQ7UUFFM0UsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUFtQztRQUNoRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDcEIsT0FBTyxXQUFXLEtBQUssVUFBVTtZQUMvQixDQUFDLENBQUM7Z0JBQ0UsU0FBUyxFQUFFLFdBQVc7YUFDdkI7WUFDSCxDQUFDLENBQUMsV0FBVyxDQUNoQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUFJLE9BQXlCO1FBQ2xDLE1BQU0sTUFBTSxHQUFHO1lBQ2IsS0FBSyxFQUFFLENBQUM7WUFDUixHQUFHLEVBQUUsQ0FBQyxPQUF5QixFQUFnQyxFQUFFO2dCQUMvRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7b0JBQzNDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO3dCQUM1RCxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTs0QkFDbEIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUM3QixDQUFDO3FCQUNGLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzdCO1lBQ0gsQ0FBQztTQUNGLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIn0=