index.js.map 44 KB

1
  1. {"version":3,"file":"index.js","sources":["../../../node_modules/tslib/tslib.es6.js","../src/poll.ts","../src/ratelimiter.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { JSONExt, PromiseDelegate } from '@lumino/coreutils';\n\nimport { IObservableDisposable } from '@lumino/disposable';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { IPoll } from './index';\n\n/**\n * A function to defer an action immediately.\n */\nconst defer =\n typeof requestAnimationFrame === 'function'\n ? requestAnimationFrame\n : setImmediate;\n\n/**\n * A function to cancel a deferred action.\n */\nconst cancel: (timeout: any) => void =\n typeof cancelAnimationFrame === 'function'\n ? cancelAnimationFrame\n : clearImmediate;\n\n/**\n * A class that wraps an asynchronous function to poll at a regular interval\n * with exponential increases to the interval length if the poll fails.\n *\n * @typeparam T - The resolved type of the factory's promises.\n * Defaults to `any`.\n *\n * @typeparam U - The rejected type of the factory's promises.\n * Defaults to `any`.\n *\n * @typeparam V - An optional type to extend the phases supported by a poll.\n * Defaults to `standby`, which already exists in the `Phase` type.\n */\nexport class Poll<T = any, U = any, V extends string = 'standby'>\n implements IObservableDisposable, IPoll<T, U, V> {\n /**\n * Instantiate a new poll with exponential backoff in case of failure.\n *\n * @param options - The poll instantiation options.\n */\n constructor(options: Poll.IOptions<T, U, V>) {\n this._factory = options.factory;\n this._standby = options.standby || Private.DEFAULT_STANDBY;\n this._state = { ...Private.DEFAULT_STATE, timestamp: new Date().getTime() };\n\n // Normalize poll frequency `max` to be the greater of\n // default `max`, `options.frequency.max`, or `options.frequency.interval`.\n const frequency = options.frequency || {};\n const max = Math.max(\n frequency.interval || 0,\n frequency.max || 0,\n Private.DEFAULT_FREQUENCY.max\n );\n this.frequency = { ...Private.DEFAULT_FREQUENCY, ...frequency, ...{ max } };\n\n this.name = options.name || Private.DEFAULT_NAME;\n\n if ('auto' in options ? options.auto : true) {\n defer(() => void this.start());\n }\n }\n\n /**\n * The name of the poll.\n */\n readonly name: string;\n\n /**\n * A signal emitted when the poll is disposed.\n */\n get disposed(): ISignal<this, void> {\n return this._disposed;\n }\n\n /**\n * The polling frequency parameters.\n */\n get frequency(): IPoll.Frequency {\n return this._frequency;\n }\n set frequency(frequency: IPoll.Frequency) {\n if (this.isDisposed || JSONExt.deepEqual(frequency, this.frequency || {})) {\n return;\n }\n\n let { backoff, interval, max } = frequency;\n\n interval = Math.round(interval);\n max = Math.round(max);\n\n if (typeof backoff === 'number' && backoff < 1) {\n throw new Error('Poll backoff growth factor must be at least 1');\n }\n\n if ((interval < 0 || interval > max) && interval !== Poll.NEVER) {\n throw new Error('Poll interval must be between 0 and max');\n }\n\n if (max > Poll.MAX_INTERVAL && max !== Poll.NEVER) {\n throw new Error(`Max interval must be less than ${Poll.MAX_INTERVAL}`);\n }\n\n this._frequency = { backoff, interval, max };\n }\n\n /**\n * Whether the poll is disposed.\n */\n get isDisposed(): boolean {\n return this.state.phase === 'disposed';\n }\n\n /**\n * Indicates when the poll switches to standby.\n */\n get standby(): Poll.Standby | (() => boolean | Poll.Standby) {\n return this._standby;\n }\n set standby(standby: Poll.Standby | (() => boolean | Poll.Standby)) {\n if (this.isDisposed || this.standby === standby) {\n return;\n }\n\n this._standby = standby;\n }\n\n /**\n * The poll state, which is the content of the current poll tick.\n */\n get state(): IPoll.State<T, U, V> {\n return this._state;\n }\n\n /**\n * A promise that resolves when the poll next ticks.\n */\n get tick(): Promise<this> {\n return this._tick.promise;\n }\n\n /**\n * A signal emitted when the poll ticks and fires off a new request.\n */\n get ticked(): ISignal<this, IPoll.State<T, U, V>> {\n return this._ticked;\n }\n\n /**\n * Dispose the poll.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n\n this._state = {\n ...Private.DISPOSED_STATE,\n timestamp: new Date().getTime()\n };\n this._tick.promise.catch(_ => undefined);\n this._tick.reject(new Error(`Poll (${this.name}) is disposed.`));\n this._disposed.emit(undefined);\n Signal.clearData(this);\n }\n\n /**\n * Refreshes the poll. Schedules `refreshed` tick if necessary.\n *\n * @returns A promise that resolves after tick is scheduled and never rejects.\n *\n * #### Notes\n * The returned promise resolves after the tick is scheduled, but before\n * the polling action is run. To wait until after the poll action executes,\n * await the `poll.tick` promise: `await poll.refresh(); await poll.tick;`\n */\n refresh(): Promise<void> {\n return this.schedule({\n cancel: ({ phase }) => phase === 'refreshed',\n interval: Poll.IMMEDIATE,\n phase: 'refreshed'\n });\n }\n\n /**\n * Schedule the next poll tick.\n *\n * @param next - The next poll state data to schedule. Defaults to standby.\n *\n * @param next.cancel - Cancels state transition if function returns `true`.\n *\n * @returns A promise that resolves when the next poll state is active.\n *\n * #### Notes\n * This method is not meant to be invoked by user code typically. It is public\n * to allow poll instances to be composed into classes that schedule ticks.\n */\n async schedule(\n next: Partial<\n IPoll.State<T, U, V> & { cancel: (last: IPoll.State<T, U, V>) => boolean }\n > = {}\n ): Promise<void> {\n if (this.isDisposed) {\n return;\n }\n\n // Check if the phase transition should be canceled.\n if (next.cancel && next.cancel(this.state)) {\n return;\n }\n\n // Update poll state.\n const last = this.state;\n const pending = this._tick;\n const scheduled = new PromiseDelegate<this>();\n const state = {\n interval: this.frequency.interval,\n payload: null,\n phase: 'standby',\n timestamp: new Date().getTime(),\n ...next\n } as IPoll.State<T, U, V>;\n this._state = state;\n this._tick = scheduled;\n\n // Clear the schedule if possible.\n if (last.interval === Poll.IMMEDIATE) {\n cancel(this._timeout);\n } else {\n clearTimeout(this._timeout);\n }\n\n // Emit ticked signal, resolve pending promise, and await its settlement.\n this._ticked.emit(this.state);\n pending.resolve(this);\n await pending.promise;\n\n // Schedule next execution and cache its timeout handle.\n const execute = () => {\n if (this.isDisposed || this.tick !== scheduled.promise) {\n return;\n }\n\n this._execute();\n };\n this._timeout =\n state.interval === Poll.IMMEDIATE\n ? defer(execute)\n : state.interval === Poll.NEVER\n ? -1\n : setTimeout(execute, state.interval);\n }\n\n /**\n * Starts the poll. Schedules `started` tick if necessary.\n *\n * @returns A promise that resolves after tick is scheduled and never rejects.\n */\n start(): Promise<void> {\n return this.schedule({\n cancel: ({ phase }) =>\n phase !== 'constructed' && phase !== 'standby' && phase !== 'stopped',\n interval: Poll.IMMEDIATE,\n phase: 'started'\n });\n }\n\n /**\n * Stops the poll. Schedules `stopped` tick if necessary.\n *\n * @returns A promise that resolves after tick is scheduled and never rejects.\n */\n stop(): Promise<void> {\n return this.schedule({\n cancel: ({ phase }) => phase === 'stopped',\n interval: Poll.NEVER,\n phase: 'stopped'\n });\n }\n\n /**\n * Execute a new poll factory promise or stand by if necessary.\n */\n private _execute(): void {\n let standby =\n typeof this.standby === 'function' ? this.standby() : this.standby;\n standby =\n standby === 'never'\n ? false\n : standby === 'when-hidden'\n ? !!(typeof document !== 'undefined' && document && document.hidden)\n : standby;\n\n // If in standby mode schedule next tick without calling the factory.\n if (standby) {\n void this.schedule();\n return;\n }\n\n const pending = this.tick;\n\n this._factory(this.state)\n .then((resolved: T) => {\n if (this.isDisposed || this.tick !== pending) {\n return;\n }\n\n void this.schedule({\n payload: resolved,\n phase: this.state.phase === 'rejected' ? 'reconnected' : 'resolved'\n });\n })\n .catch((rejected: U) => {\n if (this.isDisposed || this.tick !== pending) {\n return;\n }\n\n void this.schedule({\n interval: Private.sleep(this.frequency, this.state),\n payload: rejected,\n phase: 'rejected'\n });\n });\n }\n\n private _disposed = new Signal<this, void>(this);\n private _factory: Poll.Factory<T, U, V>;\n private _frequency: IPoll.Frequency;\n private _standby: Poll.Standby | (() => boolean | Poll.Standby);\n private _state: IPoll.State<T, U, V>;\n private _tick = new PromiseDelegate<this>();\n private _ticked = new Signal<this, IPoll.State<T, U, V>>(this);\n private _timeout: any = -1;\n}\n\n/**\n * A namespace for `Poll` types, interfaces, and statics.\n */\nexport namespace Poll {\n /**\n * A promise factory that returns an individual poll request.\n *\n * @typeparam T - The resolved type of the factory's promises.\n *\n * @typeparam U - The rejected type of the factory's promises.\n *\n * @typeparam V - The type to extend the phases supported by a poll.\n */\n export type Factory<T, U, V extends string> = (\n state: IPoll.State<T, U, V>\n ) => Promise<T>;\n\n /**\n * Indicates when the poll switches to standby.\n */\n export type Standby = 'never' | 'when-hidden';\n\n /**\n * Instantiation options for polls.\n *\n * @typeparam T - The resolved type of the factory's promises.\n *\n * @typeparam U - The rejected type of the factory's promises.\n *\n * @typeparam V - The type to extend the phases supported by a poll.\n */\n export interface IOptions<T, U, V extends string> {\n /**\n * Whether to begin polling automatically; defaults to `true`.\n */\n auto?: boolean;\n\n /**\n * A factory function that is passed a poll tick and returns a poll promise.\n */\n factory: Factory<T, U, V>;\n\n /**\n * The polling frequency parameters.\n */\n frequency?: Partial<IPoll.Frequency>;\n\n /**\n * The name of the poll.\n * Defaults to `'unknown'`.\n */\n name?: string;\n\n /**\n * Indicates when the poll switches to standby or a function that returns\n * a boolean or a `Poll.Standby` value to indicate whether to stand by.\n * Defaults to `'when-hidden'`.\n *\n * #### Notes\n * If a function is passed in, for any given context, it should be\n * idempotent and safe to call multiple times. It will be called before each\n * tick execution, but may be called by clients as well.\n */\n standby?: Standby | (() => boolean | Standby);\n }\n /**\n * An interval value that indicates the poll should tick immediately.\n */\n export const IMMEDIATE = 0;\n\n /**\n * Delays are 32-bit integers in many browsers so intervals need to be capped.\n *\n * #### Notes\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout#Maximum_delay_value\n */\n export const MAX_INTERVAL = 2147483647;\n\n /**\n * An interval value that indicates the poll should never tick.\n */\n export const NEVER = Infinity;\n}\n\n/**\n * A namespace for private module data.\n */\nnamespace Private {\n /**\n * The default backoff growth rate if `backoff` is `true`.\n */\n export const DEFAULT_BACKOFF = 3;\n\n /**\n * The default polling frequency.\n */\n export const DEFAULT_FREQUENCY: IPoll.Frequency = {\n backoff: true,\n interval: 1000,\n max: 30 * 1000\n };\n\n /**\n * The default poll name.\n */\n export const DEFAULT_NAME = 'unknown';\n\n /**\n * The default poll standby behavior.\n */\n export const DEFAULT_STANDBY: Poll.Standby = 'when-hidden';\n\n /**\n * The first poll tick state's default values superseded in constructor.\n */\n export const DEFAULT_STATE: IPoll.State<any, any, any> = {\n interval: Poll.NEVER,\n payload: null,\n phase: 'constructed',\n timestamp: new Date(0).getTime()\n };\n\n /**\n * The disposed tick state values.\n */\n export const DISPOSED_STATE: IPoll.State<any, any, any> = {\n interval: Poll.NEVER,\n payload: null,\n phase: 'disposed',\n timestamp: new Date(0).getTime()\n };\n\n /**\n * Get a random integer between min and max, inclusive of both.\n *\n * #### Notes\n * From\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random#Getting_a_random_integer_between_two_values_inclusive\n *\n * From the MDN page: It might be tempting to use Math.round() to accomplish\n * that, but doing so would cause your random numbers to follow a non-uniform\n * distribution, which may not be acceptable for your needs.\n */\n function getRandomIntInclusive(min: number, max: number) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n /**\n * Returns the number of milliseconds to sleep before the next tick.\n *\n * @param frequency - The poll's base frequency.\n * @param last - The poll's last tick.\n */\n export function sleep(\n frequency: IPoll.Frequency,\n last: IPoll.State<any, any, any>\n ): number {\n const { backoff, interval, max } = frequency;\n\n if (interval === Poll.NEVER) {\n return interval;\n }\n\n const growth =\n backoff === true ? DEFAULT_BACKOFF : backoff === false ? 1 : backoff;\n const random = getRandomIntInclusive(interval, last.interval * growth);\n\n return Math.min(max, random);\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { PromiseDelegate } from '@lumino/coreutils';\n\nimport { IRateLimiter } from './index';\n\nimport { Poll } from './poll';\n\n/**\n * A base class to implement rate limiters with different invocation strategies.\n *\n * @typeparam T - The resolved type of the underlying function.\n *\n * @typeparam U - The rejected type of the underlying function.\n */\nexport abstract class RateLimiter<T, U> implements IRateLimiter<T, U> {\n /**\n * Instantiate a rate limiter.\n *\n * @param fn - The function to rate limit.\n *\n * @param limit - The rate limit; defaults to 500ms.\n */\n constructor(fn: () => T | Promise<T>, limit = 500) {\n this.limit = limit;\n this.poll = new Poll({\n auto: false,\n factory: async () => await fn(),\n frequency: { backoff: false, interval: Poll.NEVER, max: Poll.NEVER },\n standby: 'never'\n });\n this.payload = new PromiseDelegate();\n this.poll.ticked.connect((_, state) => {\n const { payload } = this;\n\n if (state.phase === 'resolved') {\n this.payload = new PromiseDelegate();\n payload!.resolve(state.payload as T);\n return;\n }\n\n if (state.phase === 'rejected' || state.phase === 'stopped') {\n this.payload = new PromiseDelegate();\n payload!.promise.catch(_ => undefined);\n payload!.reject(state.payload as U);\n return;\n }\n }, this);\n }\n\n /**\n * Whether the rate limiter is disposed.\n */\n get isDisposed(): boolean {\n return this.payload === null;\n }\n\n /**\n * Disposes the rate limiter.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n this.payload = null;\n this.poll.dispose();\n }\n\n /**\n * The rate limit in milliseconds.\n */\n readonly limit: number;\n\n /**\n * Invoke the rate limited function.\n */\n abstract invoke(): Promise<T>;\n\n /**\n * Stop the function if it is mid-flight.\n */\n async stop(): Promise<void> {\n return this.poll.stop();\n }\n\n /**\n * A promise that resolves on each successful invocation.\n */\n protected payload: PromiseDelegate<T> | null = null;\n\n /**\n * The underlying poll instance used by the rate limiter.\n */\n protected poll: Poll<T, U, 'invoked'>;\n}\n\n/**\n * Wraps and debounces a function that can be called multiple times and only\n * executes the underlying function one `interval` after the last invocation.\n *\n * @typeparam T - The resolved type of the underlying function. Defaults to any.\n *\n * @typeparam U - The rejected type of the underlying function. Defaults to any.\n */\nexport class Debouncer<T = any, U = any> extends RateLimiter<T, U> {\n /**\n * Invokes the function and only executes after rate limit has elapsed.\n * Each invocation resets the timer.\n */\n invoke(): Promise<T> {\n void this.poll.schedule({ interval: this.limit, phase: 'invoked' });\n return this.payload!.promise;\n }\n}\n\n/**\n * Wraps and throttles a function that can be called multiple times and only\n * executes the underlying function once per `interval`.\n *\n * @typeparam T - The resolved type of the underlying function. Defaults to any.\n *\n * @typeparam U - The rejected type of the underlying function. Defaults to any.\n */\nexport class Throttler<T = any, U = any> extends RateLimiter<T, U> {\n /**\n * Instantiate a throttler.\n *\n * @param fn - The function being throttled.\n *\n * @param options - Throttling configuration or throttling limit in ms.\n *\n * #### Notes\n * The `edge` defaults to `leading`; the `limit` defaults to `500`.\n */\n constructor(fn: () => T | Promise<T>, options?: Throttler.IOptions | number) {\n super(fn, typeof options === 'number' ? options : options && options.limit);\n let edge: 'leading' | 'trailing' = 'leading';\n if (typeof options !== 'number') {\n options = options || {};\n edge = 'edge' in options ? options.edge! : edge;\n }\n this._interval = edge === 'trailing' ? this.limit : Poll.IMMEDIATE;\n }\n\n /**\n * Throttles function invocations if one is currently in flight.\n */\n invoke(): Promise<T> {\n if (this.poll.state.phase !== 'invoked') {\n void this.poll.schedule({ interval: this._interval, phase: 'invoked' });\n }\n return this.payload!.promise;\n }\n\n private _interval: number;\n}\n\n/**\n * A namespace for `Throttler` interfaces.\n */\nexport namespace Throttler {\n /**\n * Instantiation options for a `Throttler`.\n */\n export interface IOptions {\n /**\n * The throttling limit; defaults to 500ms.\n */\n limit?: number;\n\n /**\n * Whether to invoke at the leading or trailing edge of throttle cycle.\n * Defaults to `leading`.\n */\n edge?: 'leading' | 'trailing';\n };\n}\n"],"names":["Signal","PromiseDelegate","JSONExt","Poll","Throttler"],"mappings":"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"}