https://github.com/anubhavsrivastava/axios-api-profiler
Axios interceptor that profiles HTTP responses for time taken(including middleware time)
https://github.com/anubhavsrivastava/axios-api-profiler
Last synced: 2 days ago
JSON representation
Axios interceptor that profiles HTTP responses for time taken(including middleware time)
- Host: GitHub
- URL: https://github.com/anubhavsrivastava/axios-api-profiler
- Owner: anubhavsrivastava
- License: mit
- Created: 2019-04-15T16:31:06.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T07:37:30.000Z (almost 3 years ago)
- Last Synced: 2025-10-08T13:14:53.710Z (4 days ago)
- Language: JavaScript
- Homepage: https://anubhavsrivastava.github.io/axios-api-profiler/.
- Size: 555 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Axios API Profiler
Axios interceptor that profiles HTTP responses for timings
[](https://travis-ci.org/anubhavsrivastava/axios-api-profiler)
[](https://coveralls.io/github/anubhavsrivastava/axios-api-profiler?branch=master)
[](http://makeapullrequest.com)
[](https://github.com/anubhavsrivastava/axios-api-profiler/issues)
[](http://hits.dwyl.io/anubhavsrivastava/axios-api-profiler)[](https://nodei.co/npm/axios-api-profiler/)
---
## Introduction
Axios API Profiler is interceptor for axios that profiles for time each axios based call takes including network time + axios handling time (including middleware time)
## Profiling info
API profiling is only for time. This includes time taken by axios to process the request and network time.
## Install
```
$ npm install axios-api-profiler --save
```or
```
yarn add axios-api-profiler
```## Usage
Import `axiosRequestProfiler` to register it as interceptor for axios that will profile all APIs.
### Simple usage
import axios from 'axios';
import axiosRequestProfiler from 'axios-api-profiler';// ... middleware chain
axiosRequestProfiler(axios)`axiosRequestProfiler` function also accepts instance of axios as its parameter.
By default, Profiling information is logged in the console. (browser or node)#### Node

#### Browser

### Fetching all profiling information
You can get all profiled information (of same instance) via `defaultApiProfilerInstance.getAPIProfileData()`
import axios from 'axios';
import axiosRequestProfiler, { defaultApiProfilerInstance } from 'axios-api-profiler';// ... middleware chain
axiosRequestProfiler(axios);
// stop default console loggin
axios.defaults.ignoreApiProfilingLogs = true;axios.get('/user);
//other axios call over a period of timeconst profileInfomation = defaultApiProfilerInstance.getAPIProfileData();
console.table(profileInformation, ["startTime", "endTime"]);
`startTime` and `endTime` are instance of Date.
## Configuration
One can disable this interceptor by passing `ignoreApiProfiling` as configuration in axios instance or per axios api call. This configuration can also be set on `axios.default` object.
| Setting Name | type | description | default value |
| ---------------------- | --------- | ------------------------------------------------------- | ------------- |
| ignoreApiProfiling | `Boolean` | Flag to disable profiling | `false` |
| ignoreApiProfilingLogs | `Boolean` | Flag to disable `console` logging of API profile timing | `false` |1. To disable profiling for specific call
axios.get('/users', { ignoreApiProfiling:true } ).then(response=>{
//response is standard axios response with config, header, status, data, statusText
})This config as parameter is available for all calls(get, post, put, etc) in axios, refer [here](https://www.npmjs.com/package/axios#request-method-aliases).
2. To disable interceptor for all calls of a instance (if already configured as interceptor in axios default configuration)
const instance = axios.create({ignoreApiProfiling: true});
3. To continue profiling and not log timing on `console`, use `ignoreApiProfilingLogs` flag,
axios.get('/users', { ignoreApiProfilingLogs:true } ).then(response => {
//api timing wont be logged on console
})---
## Contribution
Suggestions and PRs are welcome!
Please read the [contribution guidelines](CONTRIBUTING.md) to get started.
---
## License
[](LICENSE)
refer `LICENSE` file in this repository.
---