I am trying to import the npm package superagent-throttle in my TypeScript project, but when I do so I get this message:
Uncaught TypeError: Class extends value #<Object> is not a constructor or null
If I use require it works fine:
const Throttle = require("superagent-throttle");
But, I've started using Vite which does not allow require so I have to use import instead.
The code where I reference it wants to instantiate a class ie:
this.throttle = new Throttle({
// set false to pause queue
active: true,
// how many requests can be sent every `ratePer`
rate: 10000,
// number of ms in which `rate` requests may be sent
ratePer: 1000,
// How many requests can be sent concurrently
concurrent: 2
});
I have tried different variations of the import statement, but none of these work for me:
import { Throttle } from "superagent-throttle";
import Throttle from "superagent-throttle";
import * as Throttle from "superagent-throttle";
They all give the same result - they compile ok but fail at runtime with the same error message (as above).
The code in the superagent-throttle JS file looks rather obscure, I have no idea what it's trying to do, so I'm struggling to try and understand how I could fix this issue:
Package file: node_modules/superagent-throttle/dist/index.js:
'use strict';
var _events = require('events');
var _events2 = _interopRequireDefault(_events);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
...
class Throttle extends _events2.default {
constructor(options) {
super();
// instance properties
this._options({
_requestTimes: [0],
_current: 0,
_buffer: [],
_serials: {},
_timeout: false
});
... etc ...