| 'use strict' | 
|   | 
| function InterceptorManager() { | 
|     this.handlers = [] | 
| } | 
|   | 
| /** | 
|  * Add a new interceptor to the stack | 
|  * | 
|  * @param {Function} fulfilled The function to handle `then` for a `Promise` | 
|  * @param {Function} rejected The function to handle `reject` for a `Promise` | 
|  * | 
|  * @return {Number} An ID used to remove interceptor later | 
|  */ | 
| InterceptorManager.prototype.use = function use(fulfilled, rejected) { | 
|     this.handlers.push({ | 
|         fulfilled, | 
|         rejected | 
|     }) | 
|     return this.handlers.length - 1 | 
| } | 
|   | 
| /** | 
|  * Remove an interceptor from the stack | 
|  * | 
|  * @param {Number} id The ID that was returned by `use` | 
|  */ | 
| InterceptorManager.prototype.eject = function eject(id) { | 
|     if (this.handlers[id]) { | 
|         this.handlers[id] = null | 
|     } | 
| } | 
|   | 
| /** | 
|  * Iterate over all the registered interceptors | 
|  * | 
|  * This method is particularly useful for skipping over any | 
|  * interceptors that may have become `null` calling `eject`. | 
|  * | 
|  * @param {Function} fn The function to call for each interceptor | 
|  */ | 
| InterceptorManager.prototype.forEach = function forEach(fn) { | 
|     this.handlers.forEach((h) => { | 
|         if (h !== null) { | 
|             fn(h) | 
|         } | 
|     }) | 
| } | 
|   | 
| export default InterceptorManager |