{"id":13679759,"url":"https://github.com/anubhavsrivastava/axios-data-unpacker","last_synced_at":"2025-09-09T06:14:05.165Z","repository":{"id":34461097,"uuid":"178719561","full_name":"anubhavsrivastava/axios-data-unpacker","owner":"anubhavsrivastava","description":"Axios interceptor that unpacks HTTP responses so that you can focus on actual server data","archived":false,"fork":false,"pushed_at":"2023-01-03T18:51:34.000Z","size":1645,"stargazers_count":13,"open_issues_count":15,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-29T10:45:33.417Z","etag":null,"topics":["axios","axios-ecosystem","axios-instance","axios-middleware","axios-plugin","axios-restful","middleware"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anubhavsrivastava.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["anubhavsrivastava"],"patreon":"theanubhav","open_collective":"onlyanubhav","ko_fi":"theanubhav","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://donorbox.org/theanubhav","https://www.buymeacoffee.com/theanubhav","https://paypal.me/onlyanubhav","https://theanubhav.com/sponsor"]}},"created_at":"2019-03-31T17:25:29.000Z","updated_at":"2024-07-15T14:20:18.000Z","dependencies_parsed_at":"2023-01-15T07:13:49.109Z","dependency_job_id":null,"html_url":"https://github.com/anubhavsrivastava/axios-data-unpacker","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/anubhavsrivastava/axios-data-unpacker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubhavsrivastava%2Faxios-data-unpacker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubhavsrivastava%2Faxios-data-unpacker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubhavsrivastava%2Faxios-data-unpacker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubhavsrivastava%2Faxios-data-unpacker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anubhavsrivastava","download_url":"https://codeload.github.com/anubhavsrivastava/axios-data-unpacker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubhavsrivastava%2Faxios-data-unpacker/sbom","scorecard":{"id":200007,"data":{"date":"2025-08-11","repo":{"name":"github.com/anubhavsrivastava/axios-data-unpacker","commit":"a241d02d217a6b8d70b76bed949c9d708970b7fa"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/14 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 16 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"63 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-x9w5-v3q2-3rhw","Warn: Project is vulnerable to: GHSA-w8qv-6jwh-64r5","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-r9p9-mrjm-926w","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-8r6j-v8pm-fqw3","Warn: Project is vulnerable to: MAL-2023-462","Warn: Project is vulnerable to: GHSA-765h-qjxv-5f44","Warn: Project is vulnerable to: GHSA-f2jv-r9rf-7988","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-6c8f-qphg-qjgp","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-5fw9-fq32-wv5p","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-h9rv-jmmf-4pgx","Warn: Project is vulnerable to: GHSA-hxcc-f52p-wc94","Warn: Project is vulnerable to: GHSA-4g88-fppr-53pp","Warn: Project is vulnerable to: GHSA-4jqc-8m5r-9rpr","Warn: Project is vulnerable to: GHSA-vx3p-948g-6vhq","Warn: Project is vulnerable to: GHSA-3jfq-g458-7qm9","Warn: Project is vulnerable to: GHSA-r628-mhmh-qjhw","Warn: Project is vulnerable to: GHSA-9r2w-394v-53qc","Warn: Project is vulnerable to: GHSA-5955-9wpr-37jh","Warn: Project is vulnerable to: GHSA-qq89-hq3f-393p","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-jgrx-mgxx-jf9v","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-6fc8-4gx4-v693","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T22:39:02.173Z","repository_id":34461097,"created_at":"2025-08-16T22:39:02.174Z","updated_at":"2025-08-16T22:39:02.174Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274250875,"owners_count":25249479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["axios","axios-ecosystem","axios-instance","axios-middleware","axios-plugin","axios-restful","middleware"],"created_at":"2024-08-02T13:01:09.119Z","updated_at":"2025-09-09T06:14:05.134Z","avatar_url":"https://github.com/anubhavsrivastava.png","language":"JavaScript","funding_links":["https://github.com/sponsors/anubhavsrivastava","https://patreon.com/theanubhav","https://opencollective.com/onlyanubhav","https://ko-fi.com/theanubhav","https://donorbox.org/theanubhav","https://www.buymeacoffee.com/theanubhav","https://paypal.me/onlyanubhav","https://theanubhav.com/sponsor"],"categories":["JavaScript"],"sub_categories":[],"readme":"# Axios Data Unpacker\n\nAxios middleware/interceptor that unpacks HTTP responses so that you can focus on actual response\n\n[![Build Status](https://travis-ci.org/anubhavsrivastava/axios-data-unpacker.svg?branch=master)](https://travis-ci.org/anubhavsrivastava/axios-data-unpacker)\n[![Coverage Status](https://coveralls.io/repos/github/anubhavsrivastava/axios-data-unpacker/badge.svg?branch=master)](https://coveralls.io/github/anubhavsrivastava/axios-data-unpacker?branch=master)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n[![GitHub issues](https://img.shields.io/github/issues/anubhavsrivastava/axios-data-unpacker.svg?style=flat-square)](https://github.com/anubhavsrivastava/axios-data-unpacker/issues)\n[![HitCount](http://hits.dwyl.io/anubhavsrivastava/axios-data-unpacker.svg)](http://hits.dwyl.io/anubhavsrivastava/axios-data-unpacker)\n\n[![NPM](https://nodei.co/npm/axios-data-unpacker.png?downloads=true\u0026stars=true)](https://nodei.co/npm/axios-data-unpacker/)\n\n\u003c!-- toc --\u003e\n\n-   [Introduction](#introduction)\n    -   [The Problem](#the-problem)\n    -   [Solution](#solution)\n-   [Install](#install)\n-   [Usage](#usage)\n    -   [Configuration](#configuration)\n-   [Contribution](#contribution)\n-   [License](#license)\n\n\u003c!-- tocstop --\u003e\n\n---\n\n## Introduction\n\nAxios data unpacker is interceptor for axios that unpacks `data` from axios standard response and makes API response content to be called so that one can focus on actual response.\n\n### The Problem\n\nAny HTTP request using axios will return into following object that is available to callee function,\n\n    {\n        // `data` is the response that was provided by the server\n        data: {},\n\n        // `status` is the HTTP status code from the server response\n        status: 200,\n\n        // `statusText` is the HTTP status message from the server response\n        statusText: 'OK',\n\n        // `headers` the headers that the server responded with\n        headers: {},\n\n        // `config` is the config that was provided to `axios` for the request\n        config: {}\n    }\n\nThis would imply that application has to unpack `data` object at all places of consumption something like,\n\n    getUsers() {\n        return axios.get('/users').then( function (result) {\n            return result.data;\n        });\n    }\n\nor something like,\n\n    getUsers() {\n        return axios.get('/users').then(result =\u003e result.data);\n    }\n\n### Solution\n\nThe above consumption code changes with this module. The above code or all places of consumption would change as below.\n\n    getUsers() {\n        return axios.get('/users');\n    }\n\n## Install\n\n```\n$ npm install axios-data-unpacker --save\n```\n\nor\n\n```\nyarn add axios-data-unpacker\n```\n\n## Usage\n\nImportant : This should be last interceptor to be added as response interceptor for your axios instance. This is important because any other response interceptor in chain may use values from complete axios response, like `status` or `headers`.\n\n-   Simple usage\n\n        import axios from 'axios';\n        import {axiosResponseDataUnpacker} from 'axios-data-unpacker';\n\n        // after adding other response interceptors\n        axiosResponseDataUnpacker(axios)\n\n    `axiosResponseDataUnpacker` function also accepts instance of axios as its parameter.\n\n-   Default Instance\n\n        import axios from 'axios';\n        import axiosDataUnpacker from 'axios-data-unpacker';\n        ... //other chain of interceptors and config\n        axios.interceptors.response.use(axiosDataUnpacker);\n\n-   At instance level\n\n        import axiosDataUnpacker from 'axios-data-unpacker';\n        const instance = axios.create();\n        ... //other chain of interceptors and config\n        instance.interceptors.response.use(axiosDataUnpacker);\n\n### Configuration\n\nOne can disable this interceptor by passing `packResponseData` as configuration in axios instance or per axios api call. This configuration can also be set on `axios.default` object.\n\n| Setting Name     | type      | description                    | default value |\n| ---------------- | --------- | ------------------------------ | ------------- |\n| packResponseData | `Boolean` | Flag to disable data unpacking | `false`       |\n\n1. To disable unpacking for specific call (in case API layer needs to work with header, status, config from standard axios response)\n\n\n        axios.get('/users', { packResponseData;:true } ).then(response=\u003e{\n            //response is standard axios response with config, header, status, data, statusText\n            response.header('csrf') // sample usage of non-data fields\n        })\n\n    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).\n\n2.  To disable interceptor for all calls of a instance (if already configured as interceptor in axios default configuration)\n\n        const instance = axios.create({packResponseData: true});\n        ... //other chain of interceptors and config\n        instance.interceptors.response.use(axiosDataUnpacker);\n\n---\n\n\u003c!-- References\nhttps://laracasts.com/discuss/channels/servers/get-data-out-from-axios-javascript --\u003e\n\n## Contribution\n\nSuggestions and PRs are welcome!\n\nPlease read the [contribution guidelines](CONTRIBUTING.md) to get started.\n\n\u003c!-- Change contributing.md --\u003e\n\n---\n\n## License\n\n[![Open Source Love](https://badges.frapsoft.com/os/mit/mit.svg?v=102)](LICENSE)\n\nrefer `LICENSE` file in this repository.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanubhavsrivastava%2Faxios-data-unpacker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanubhavsrivastava%2Faxios-data-unpacker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanubhavsrivastava%2Faxios-data-unpacker/lists"}