diff --git a/app/assets/javascripts/app.js b/app/assets/javascripts/app.js index 544c12bab..02e335760 100644 --- a/app/assets/javascripts/app.js +++ b/app/assets/javascripts/app.js @@ -22,5 +22,6 @@ angular.module('QuepidApp', [ 'ngAnimate', 'countUp', 'ngclipboard', - 'ngVega' + 'ngVega', + 'http-throttler' ]); diff --git a/app/assets/javascripts/core.js b/app/assets/javascripts/core.js index cc7ebb001..b9c43d372 100644 --- a/app/assets/javascripts/core.js +++ b/app/assets/javascripts/core.js @@ -84,3 +84,4 @@ //= require tether-shepherd/dist/js/shepherd //= require tour //= require ace_config +//= require angular-http-throttler/service/http-throttler diff --git a/app/assets/javascripts/interceptors/rails-csrf.js b/app/assets/javascripts/interceptors/rails-csrf.js index b93ddec1a..21cc23938 100644 --- a/app/assets/javascripts/interceptors/rails-csrf.js +++ b/app/assets/javascripts/interceptors/rails-csrf.js @@ -14,6 +14,8 @@ angular.module('ng-rails-csrf', [] ) return el; }; + $httpProvider.interceptors.push('httpThrottler'); + $httpProvider.interceptors.push(function() { return { 'request': function(config) { diff --git a/package.json b/package.json index 1a0e543db..88d0a6b85 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "angular-countup": "^0.0.1", "angular-csv-import": "https://github.com/bahaaldine/angular-csv-import", "angular-flash": "https://github.com/wmluke/angular-flash", + "angular-http-throttler": "https://github.com/mikepugh/angular-http-throttler", "angular-resource": "~1.8.3", "angular-route": "~1.8.3", "angular-sanitize": "~1.8.3", @@ -37,6 +38,7 @@ "ng-json-explorer": "http://github.com/o19s/ng-json-explorer", "ng-tags-input": "3.2.0", "ngclipboard": "^2.0.0", + "p-queue": "^8.0.1", "party-js": "^2.2.0", "popper.js": "^1.16.1", "splainer-search": "2.33.0", diff --git a/yarn.lock b/yarn.lock index a440e72b2..f7c59fc11 100644 --- a/yarn.lock +++ b/yarn.lock @@ -150,6 +150,10 @@ angular-countup@^0.0.1: version "0.1.14" resolved "https://github.com/wmluke/angular-flash#7db7bf177a0908cdc6f2a01d984bd39ea1e3ef1a" +"angular-http-throttler@https://github.com/mikepugh/angular-http-throttler": + version "0.0.0" + resolved "https://github.com/mikepugh/angular-http-throttler#a3d89fb7c9664c27d569525aea038876f1795885" + angular-mocks@~1.8.3: version "1.8.3" resolved "https://registry.yarnpkg.com/angular-mocks/-/angular-mocks-1.8.3.tgz#c0dd05e5c3fc014e07af6289b23f0e817d7a4724" @@ -1098,6 +1102,11 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + exit@0.1.2, exit@0.1.x: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -1735,6 +1744,19 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +p-queue@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-8.0.1.tgz#718b7f83836922ef213ddec263ff4223ce70bef8" + integrity sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA== + dependencies: + eventemitter3 "^5.0.1" + p-timeout "^6.1.2" + +p-timeout@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.2.tgz#22b8d8a78abf5e103030211c5fc6dee1166a6aa5" + integrity sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ== + pac-proxy-agent@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz#6b9ddc002ec3ff0ba5fdf4a8a21d363bcc612d75"