Axios PhraseApp
Axios middleware/interceptor that helps to guard a bit against PhraseApp rate limiting. Highly configurable
Installation
npm install axios-phraseapp
Note 🚨
Not working with axios 0.19.0
(As most other libraries). For details see the bug. axios 0.19.1
has fixed this bug.
Usage
The simple, no configuration behaviour of axios-phraseapp
is to add a phraseApp
property on the request/response configuration of axios requests.
const config = await axios;console; /** Access to the phraseApp property */
This phraseApp
property has following structure that you can extract information returned from the PhraseApp API calls and even add your own logic on top of them.
moduleConfig : {} /** Module configuration */ state: /** Number of in-flight requests */ inFlightRequests: 0 /** Remaining requests until limit is reached for this time slice */ remaining: null /** Unix Epoch value to time reset */ reset: null /** PhraseApp request limit */ limit: null /** JavaScript Date object from the `reset` time */ resetDate: null /** Signifies if the `axios-phraseapp` functions are active */ started: false
Importing
// CommonJSconst attach detach = ; // ESM; // You can also consider renaming, something like:;
Attaching
attach , : Array<InterceptorId, InterceptorId>
The attach
method, registers the request interceptors on either an axios
instance or the main imported axios
object by default.
/** Implicit */;; /** Explicit */;; // Assumes axios peer dependency /** Specific instance */;const axiosInstance = axios;;
* The return value of the attach
method, is an array <InterceptorId, InterceptorId>
that can be then passed as it is to detach
and remove the interceptors.
Detaching
To remove the axios-phraseapp
interceptors you can use the detach
method.
/** Implicit */;const interceptorIds = ;; /** Specific instance */;const axiosInstance = axios;const interceptorIds = ;;
Configuration
The second argument to the attach
method, can take a custom configuration object, or uses some non-intrusive defaults.
Next Steps
- Examples folder
- Full usage typings
- More badges
- Strategies for canceling befora quota is reached
License
refer to LICENSE
file in this repository.
❗️ This repository is in no way affiliated with PhraseApp