{"_id":"@4i4/multi-request","_rev":"4-d8f2773bf1196848e171d46d46e2c9f8","name":"@4i4/multi-request","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@4i4/multi-request","version":"1.0.0","author":{"name":"Petyo Stoyanov","email":"petyosv@gmail.com"},"license":"MIT","_id":"@4i4/multi-request@1.0.0","maintainers":[{"name":"petyosv","email":"petyosv@gmail.com"}],"homepage":"https://gitlab.com/4i4/multi-request#readme","bugs":{"url":"https://gitlab.com/4i4/multi-request/-/issues"},"dist":{"shasum":"cc3b79e249b53592363fbfe07da9decc16982a47","tarball":"https://registry.npmjs.org/@4i4/multi-request/-/multi-request-1.0.0.tgz","fileCount":7,"integrity":"sha512-bN9hzGhESJUQdwsbgEqj1411xALxaWuYZNZJcHsueMjLHcjk0EJlhk0vts3x1xoO1k6S+qAXI3H38o6VqM0z2A==","signatures":[{"sig":"MEUCIQD+etychJ4cjnl4l8htcDndRp0kBsj8ns760bu9s4+9oQIgEMhUeOxqTWU/nx44zUfL6IGxf9nDvj8MCKfbHFcj+dQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31341,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6LtuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp/lg//a/p/3hbJpS5YuT7k4FvSfHttu4lTgByTNSLvIx/uwg/fgPuQ\r\nF7PtCWzOKATUTiZ2sRciWW7zZpgughc8scTi9vNiIcT839PcBOsycRQcXcx6\r\nRUZzUR2iC4DRCHR370P1ZL4/tBJgKtoHg3rwQuYAPRXMyZpOXIL/VkP11ewq\r\npwnHv57H6JfvNhrh8ij7yUidCsvKTo+Li1eYtIPde7NP63+qEHEx0XpWhF6i\r\nJ8OntiZKNn63q6OFMpBa7oWl+67sV8QX6iDH4D2R87IeKmiRvU+4LbdMy5JH\r\ntt6hOBfeRBmdfTIuGKN8bHffF9PQyj7MC1rMjyQmbW41vhie1Pmlqg+yiGFq\r\njvLdnWQuknckHj+qBtyV4JboulOzz234drs7KyC/uqPMmoLUEA/ndqG+SVrW\r\n1Hu4fstuLEmmuH2EA2HVIEsMm0GAUTj0tz/KJYWsbZ8FzMSxg/GRjzSjSWkD\r\nmBMskq7zNUm+MkeEVr3He2BbuucCq3inDwj3eYhvaF4RcrnDd/a+i+zP1eUZ\r\nUXgGTGfZqfmXUUm/3l913kiYogkAo33GIw1/YC9B5535iBwlz5SikYahtLfF\r\nyhBmnKAxVkHIyk03E55e82ASXvXqtXZ8jUaz72skOzSLFEtZ2r95wVDsAlqz\r\nmD9/ZJiTZ1YDQ8RVEHggcXOvYpVHt6WS7I4=\r\n=xvfa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e6dee24ca97749ae39a1de0bc1cf8920258cdc23","scripts":{"lint":"eslint --fix --ext .tsx ./src/**","build":"rollup -c","start":"rollup -c -w","format":"prettier --write './**/*.tsx' --config ./.prettierrc"},"_npmUser":{"name":"petyosv","email":"petyosv@gmail.com"},"repository":{"url":"git+https://gitlab.com/4i4/multi-request.git","type":"git"},"_npmVersion":"8.19.2","description":"Multi-request for AXIOS","directories":{},"_nodeVersion":"16.18.0","dependencies":{"axios":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.4.0","eslint":"^8.29.0","rollup":"^3.2.3","prettier":"^2.7.1","typescript":"^4.8.4","rollup-plugin-dts":"^5.0.0","rollup-plugin-terser":"^7.0.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","@rollup/plugin-typescript":"^9.0.2","@typescript-eslint/parser":"^5.46.0","@typescript-eslint/eslint-plugin":"^5.46.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/multi-request_1.0.0_1676196718725_0.3059428165547904","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@4i4/multi-request","version":"1.0.1","author":{"name":"Petyo Stoyanov","email":"petyosv@gmail.com"},"license":"MIT","_id":"@4i4/multi-request@1.0.1","maintainers":[{"name":"petyosv","email":"petyosv@gmail.com"}],"homepage":"https://gitlab.com/4i4/multi-request#readme","bugs":{"url":"https://gitlab.com/4i4/multi-request/-/issues"},"dist":{"shasum":"eee410189afe685f34c07d0e4aa9205badaf9982","tarball":"https://registry.npmjs.org/@4i4/multi-request/-/multi-request-1.0.1.tgz","fileCount":7,"integrity":"sha512-hPFTiP8cd8KPIpEKJCS8VTZMKy2mi7DZx8kTH6vds1aCWoUuUTq6be6Aa7cgeMxNLSpr7uK+ybuIhg9GKXxpcA==","signatures":[{"sig":"MEUCICal/Cw1EHS51OhS4CtcaS5ozn0kLYTmeFQWq1vnxfhzAiEA9UA5+Gg2OP/DV/LTgaSXqU+zuyONvgf+G2iqeEVenCA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31298,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCE9SACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoaaA//QoA+CcGTt3c6N2MkO1q6r3K0EkdEmYkyCQB25PukY2/O+7mK\r\nWoXYEsC85eiTFbNHwAzKN+2m8DGC3MhJDJUNgzrs4uV4u1NrvCCy/ni+C4AM\r\nBrXlKBXgFd2BzntkXQwnTR83yFEtlyef9FysRlpI6A0keYyW7h+lkuk7Vvcx\r\n54HtkF/M9XEXvsAniAL/s4g7oOZ95YEzDKpC8MAohLHFch/Qmq0yUs9CDoPg\r\nbhBny0PD9NoQpw1BrrYvgzJ2yXfG+bidzsL86vBuuERabwBWDPS++Frwm2u6\r\nRP0A6aoEqP3ziheE5i64ktOJ6txqEadZk2Vg0RJ1rh+RKpDjvQdy8aD4D+NY\r\njPjYhTUPC4hgCro24BWHUO2gRRW4uRr5YLKsr6mcIvNOLFLxkWMu//hTca0E\r\nJJskBZyLe7Dwx68p9Zdw1ck/2Nfcg4dL2r6b5avSD67ws1jrfgQJbRUD0SZc\r\nKIhA1DrfUs1k4f6Z5RTNFXLN3Jd+4EBh9lViHYu/ERX4ZoU65qfYID2oxUMY\r\nOL5Gqr7c8NRdNH0BdX3iMcUcxR74xKsU5KyL0RflR+SUa1N7/wLgPKb2dXLv\r\nAtuggpue8mdZ5Z4iDq8/njyILsRtcnllypPkYQXOXA+BCzoy7Et1k5Nboi6T\r\n6goMp6HVO1DwdTTsppzt9cL5LhdCF7SepCA=\r\n=Bzcw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"dad310bec3e780d5bae01252bc28c2d5e137c38f","scripts":{"lint":"eslint --fix --ext .tsx ./src/**","build":"rollup -c","start":"rollup -c -w","format":"prettier --write './**/*.tsx' --config ./.prettierrc"},"_npmUser":{"name":"petyosv","email":"petyosv@gmail.com"},"repository":{"url":"git+https://gitlab.com/4i4/multi-request.git","type":"git"},"_npmVersion":"8.19.2","description":"Multi-request for AXIOS","directories":{},"_nodeVersion":"16.18.0","dependencies":{"axios":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.4.0","eslint":"^8.29.0","rollup":"^3.2.3","prettier":"^2.7.1","typescript":"^4.8.4","rollup-plugin-dts":"^5.0.0","rollup-plugin-terser":"^7.0.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","@rollup/plugin-typescript":"^9.0.2","@typescript-eslint/parser":"^5.46.0","@typescript-eslint/eslint-plugin":"^5.46.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/multi-request_1.0.1_1678266194593_0.0789494414192391","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@4i4/multi-request","version":"1.0.2","description":"Multi-request for AXIOS","author":{"name":"Petyo Stoyanov","email":"petyosv@gmail.com"},"repository":{"type":"git","url":"git+https://gitlab.com/4i4/multi-request.git"},"bugs":{"url":"https://gitlab.com/4i4/multi-request/-/issues"},"license":"MIT","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.js","import":"./dist/index.mjs","types":"./dist/index.d.ts"}},"scripts":{"build":"rollup -c","start":"rollup -c -w","lint":"eslint --fix --ext .tsx ./src/**","format":"prettier --write './**/*.tsx' --config ./.prettierrc"},"devDependencies":{"@rollup/plugin-typescript":"^9.0.2","@typescript-eslint/eslint-plugin":"^5.46.0","@typescript-eslint/parser":"^5.46.0","eslint":"^8.29.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","prettier":"^2.7.1","rollup":"^3.29.4","rollup-plugin-dts":"^6.1.0","rollup-plugin-peer-deps-external":"^2.2.4","@rollup/plugin-terser":"^0.4.4","tslib":"^2.4.0","typescript":"^5.3.3"},"dependencies":{"axios":"^1.13.2"},"_id":"@4i4/multi-request@1.0.2","gitHead":"9bf54adede27218164708a8202cf1c8c39f6b427","homepage":"https://gitlab.com/4i4/multi-request#readme","_nodeVersion":"20.18.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-3xYDETGiH+CihzE7alLMGGzgWCpn6QeLFXOhaY5VEtu8WdYsjvpNQ6LmLzwJObSfEm8EHjDWwLNYKcwH13IsOQ==","shasum":"b23870b4d38e6815e202cf77d9d9efe802997fed","tarball":"https://registry.npmjs.org/@4i4/multi-request/-/multi-request-1.0.2.tgz","fileCount":7,"unpackedSize":31313,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDFMWJ/CyDdR6wfLOhbg/cb9D1zsHggg2cvYu9U+4xmeAiEAxLpjT3lU7bbvftqJCfxyqKB9/3OmsMsmdc1OxugACcI="}]},"_npmUser":{"name":"petyosv","email":"petyosv@gmail.com"},"directories":{},"maintainers":[{"name":"petyosv","email":"petyosv@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/multi-request_1.0.2_1765178410649_0.7819270743222355"},"_hasShrinkwrap":false}},"time":{"created":"2023-02-12T10:11:58.723Z","modified":"2025-12-08T07:20:11.332Z","1.0.0":"2023-02-12T10:11:58.885Z","1.0.1":"2023-03-08T09:03:14.766Z","1.0.2":"2025-12-08T07:20:10.803Z"},"bugs":{"url":"https://gitlab.com/4i4/multi-request/-/issues"},"author":{"name":"Petyo Stoyanov","email":"petyosv@gmail.com"},"license":"MIT","homepage":"https://gitlab.com/4i4/multi-request#readme","repository":{"type":"git","url":"git+https://gitlab.com/4i4/multi-request.git"},"description":"Multi-request for AXIOS","maintainers":[{"name":"petyosv","email":"petyosv@gmail.com"}],"readme":"# MultiRequest\n\nBuild multiple requests based on [Axios](https://www.npmjs.com/package/axios) with option for subrequests and execute them as concurrent requests.\n\n## How this package can help you?\nThis module is using [Axios](https://www.npmjs.com/package/axios) as HTTP client \nand can be considered as helper If you need to execute concurrent requests or/and \nhave dependencies between the requests.\n\n## Installing:\n\nUsing npm:\n```shell\n$ npm install @4i4/multi-request\n```\n\nUsing yarn:\n```shell\n$ yarn add @4i4/multi-request\n```\n\nUsing pnpm:\n```shell\n$ pnpm add @4i4/multi-request\n```\n\n## Example\n```javascript\nimport MultiRequest from \"@4i4/multi-request\";\n\nconst baseUrl = \"https://swapi.dev\"\nconst client = new MultiRequest(baseUrl);\n\nclient.addRequest({\n  id: \"film\",\n  url: \"/api/films/1\",\n  subrequest: response => {\n    const { characters } = response.data;\n    return characters.map((url, index) => ({\n      id: `character-${index}`,\n      url: url\n    }));\n  }\n});\nclient.addRequest({\n  id: \"people\",\n  url: \"/api/people/\",\n  onSuccess: response => {\n    console.log(\"People:\");\n    console.table(response.data.results);\n  }\n});\nclient.addRequest({\n  id: \"planets\",\n  url: \"/api/planets/\",\n  onSuccess: response => {\n    console.log(\"Planets:\");\n    console.table(response.data.results);\n  }\n});\nclient.addRequest({\n  id: \"species\",\n  url: \"/api/species/\",\n  onSuccess: response => {\n    console.log(\"Species:\");\n    console.table(response.data.results);\n  }\n});\n\nawait client.execute();\n```\n## Creating an instance\n\n**new MultiRequest()**\n```javascript\nconst client = new MultiRequest();\n```\n**new MultiRequest([baseUrl])**\n```javascript\nconst client = new MultiRequest(\"https://swapi.dev\"); // common baseUrl\n```\n**new MultiRequest([options])**\n```javascript\nconst client = new MultiRequest({\n  baseUrl: \"https://swapi.dev\", // common baseUrl\n  headers: {} // common headers\n});\n```\n## Instance methods\n### .addRequest(config)\n**Request Config**\n\nThe multi-request configuration is extended version of [Axios Request configuration](https://www.npmjs.com/package/axios#request-config).\\\nThe list bellow is what MultiRequest introduce. For all other properties and methods please check [here](https://www.npmjs.com/package/axios#request-config).\n\n| **Property** | **Type**   | **Optional** | **Description**                                                                                                                                              |\n|--------------|------------|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `id`         | `string`   | Yes          | `id` is the request ID that can be used to identify the response for this request. If one is not provided it will be automatically created.                  |\n| `weight`     | `number`   | Yes          | It will be used to sort the responses. The default value is `0`                                                                                              | \n| `subrequest` | `function` | Yes          | The `subrequest` method receives two parameters - `response` and `requestId`. It should return new request configuration or array of request configurations. |\n| `onSuccess`  | `function` | Yes          | The `onSuccess` method receives two parameters - `response` and `requestId`.                                                                                 |\n| `onError`    | `function` | Yes          | It's receiving an error object.                                                                                                                              |\n\n### .execute()\nExecute all requests and returns the responses sorted by the `weight` property.\n\n### .getResponseHeaders([requestId])\n\n| **Request ID** | **Description**                                  |\n|----------------|--------------------------------------------------|\n| `null`         | Returns the response headers from all requests.  |\n| `string`       | Returns the response headers for single request. |\n| `RegExp`       | Returns the response headers for each match.     |\n\n### .getResponseData([requestId])\n\n| **Request ID** | **Description**                               |\n|----------------|-----------------------------------------------|\n| `null`         | Returns the response data from all requests.  |\n| `string`       | Returns the response data for single request. |\n| `RegExp`       | Returns the response data for each match.     |\n","readmeFilename":"README.md"}