{"_id":"@asleeppiano/http-client","_rev":"2-e2cbe9388e8cf98c870de19ae94a2aef","name":"@asleeppiano/http-client","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@asleeppiano/http-client","version":"1.0.0","description":"http client for the browser and node, zero deps","licence":"MIT","repository":{"type":"git","url":"git+https://github.com/moody-person/http-client.git"},"scripts":{"dev":"ts-node src/index.ts","build":"npm run build:lib && npm run build:types","build:lib":"rollup -c","build:types":"tsc --project tsconfig.declaration.json","compile":"tsc","test:node":"NODE_OPTIONS='--experimental-specifier-resolution=node' uvu -r tsm ./tests/node","test:browser":"serve ./tests/browser"},"type":"module","browser":"./dist/bundle.esm.js","main":"./dist/bundle.node.js","types":"./dist/types/index.d.ts","engines":{"node":">=12"},"keywords":["http","xhr","fetch"],"author":{"name":"Andrey Parfenov","email":"asleeppiano@outlook.com","url":"andreyparfenov.com"},"devDependencies":{"@rollup/plugin-commonjs":"^21.0.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.1.3","@rollup/plugin-typescript":"^8.3.0","@types/node":"^17.0.14","eslint":"^8.8.0","msw":"^0.36.8","prettier":"^2.5.1","rollup":"^2.67.0","serve":"^13.0.2","ts-node":"^10.4.0","ts-node-dev":"^1.1.8","tsm":"^2.2.1","typescript":"^4.5.5","uvu":"^0.5.3"},"msw":{"workerDirectory":"tests/browser"},"gitHead":"24e0fd8f49308db0e9556c8aaf05bae3aae9daaa","bugs":{"url":"https://github.com/moody-person/http-client/issues"},"homepage":"https://github.com/moody-person/http-client#readme","_id":"@asleeppiano/http-client@1.0.0","_nodeVersion":"14.18.2","_npmVersion":"8.3.1","dist":{"integrity":"sha512-Fk/K7tpjG0QojxXxGySQUZ6JXR0L9Lf9zuegDv594h+3QXgBIFR3XS3cHDH3oXsFMNHmcIp/3F+2BxhGYf5PoQ==","shasum":"868eec04acd7d446a50587bac7d4405c4597976c","tarball":"https://registry.npmjs.org/@asleeppiano/http-client/-/http-client-1.0.0.tgz","fileCount":40,"unpackedSize":64685,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiEjZuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmtxAApIeAIiGSQ9SYYlMIl5LPExKoJWkWOQuA44a4UdU44iXcJdCI\r\nrYNfx+ulbPBLVfLZHRVnsdKL/v33YZ+ius9dITd0tERqtgx40Pl/v+1KH0A+\r\nPNsnX8zScfg35vnjCnoj5D7OvA/t/AoM8sOanm3b3g/DyNfpSwS3NHBQlxrY\r\neOZYm5Gp2sxD3iMI/MbkIiZz0EtX9DEezGlGl891DnIqh4+EtwpLUcGeB4WG\r\nxFkH03Nbqr/Hegh3/ZDhNrjzyIzX0h6VJSz8kwW3jfDCPYSUXBcuiPGcF2t4\r\nwxHEZLNpA+gQlWTGYLyVDJHqqqrLUrFd9GT+bVbAbcuJj09tnOz2xI2AbV+u\r\n9jwOSpLXWhDfGjPxeapLvWWX3Pk/sCIWM+lLdAdvo9l5YPf4cq03ShBpeqOf\r\nZB+wwFsZJX8I4+1sbRDgqYcOMshratsOo27KFWKv7GsPQmt5swLjqRXjPN4n\r\nlOVmjAntRn79x8EyhEOY5sfwwbgT4G+KW4o8s3cr57muxbj4cMO/hZXMpfgk\r\nl7aWba3P3D5xNMmDSBZZNFuZB3KVsy7sO0flk+2kbAYqcDV5cRbfKSqteyTx\r\nVtfUyuVq+I1mrUM4eoQeiQkQyUPRVk3QeTTyDji5M89zyV5OoPwZRdcstFzc\r\nfP5QwEkUYmFU7StzRBvwfJmZ3kK+e5aQRfA=\r\n=mxfX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQm3SF1RVq/fVNTMnq1SAXnH4ffdlOLuQqJ0NFR0gsugIgCg1hiiKd8W3aMlMFQ0RxsIM3D14n8q+bSQOezJgGLMo="}]},"_npmUser":{"name":"asleeppiano","email":"asleeppiano@outlook.com"},"directories":{},"maintainers":[{"name":"asleeppiano","email":"asleeppiano@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-client_1.0.0_1645360750819_0.4912930814934646"},"_hasShrinkwrap":false},"1.1.0":{"name":"@asleeppiano/http-client","version":"1.1.0","description":"http client for the browser and node, zero deps","license":"MIT","repository":{"type":"git","url":"git+https://github.com/moody-person/http-client.git"},"scripts":{"dev":"ts-node src/index.ts","build":"npm run build:lib && npm run build:types","build:lib":"rollup -c","build:types":"tsc --project tsconfig.declaration.json","compile":"tsc","test:node":"NODE_OPTIONS='--experimental-specifier-resolution=node' uvu -r tsm ./tests/node","test:browser":"serve ./tests/browser"},"type":"module","browser":"./dist/bundle.esm.js","main":"./dist/bundle.node.js","types":"./dist/types/index.d.ts","engines":{"node":">=14"},"keywords":["http","xhr","fetch"],"author":{"name":"Andrey Parfenov","email":"asleeppiano@outlook.com","url":"andreyparfenov.com"},"devDependencies":{"@rollup/plugin-commonjs":"^21.0.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.1.3","@rollup/plugin-typescript":"^8.3.0","@types/node":"^17.0.14","eslint":"^8.8.0","msw":"^0.36.8","prettier":"^2.5.1","rollup":"^2.67.0","serve":"^13.0.2","ts-node":"^10.4.0","ts-node-dev":"^1.1.8","tsm":"^2.2.1","typescript":"^4.5.5","uvu":"^0.5.3"},"msw":{"workerDirectory":"tests/browser"},"gitHead":"89f0fe4e78471d3c5c0bcf94d1c6806491acb330","bugs":{"url":"https://github.com/moody-person/http-client/issues"},"homepage":"https://github.com/moody-person/http-client#readme","_id":"@asleeppiano/http-client@1.1.0","_nodeVersion":"14.19.1","_npmVersion":"8.5.5","dist":{"integrity":"sha512-u9VMQ8gbVE9Gdq2+YIByg/7hfCzIZkIHVydCe9joNQev7yFg2yWtNr1cksGDWYw1Rzjr1xU/qeq9qS/h2qEzzw==","shasum":"6d7b9a701e6481aba6c1e11c0dfa0174c04d5140","tarball":"https://registry.npmjs.org/@asleeppiano/http-client/-/http-client-1.1.0.tgz","fileCount":40,"unpackedSize":64651,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/cf/w0tblb1y5wEGKZy5CprATJ7r6skhGzVhRtZ7BbQIgOiD7UdFo0fg1ig7kJ84rVnmyWC1Z362o1gIesRw5RgY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibVvcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpe3Q/+OrDDFUN9n1b9Zr/9oSjP9hJV/DzjGRRT8zO967DD47bM6W14\r\nEZ1WeHEiWqgfbK2g3F3YeK5UlzHlRc+71b5iH6EJYfP1vRopt4N02o1AZDT7\r\n+KOt9jntxCcUErSTiEZrIwYTUWCMn6gTXA/bx2KQ+r6DI8a8rSFNP04J1FMx\r\nMRvwCQ1SsT9bDDKcfAWASOuvtsxZdVRE/BWbFP6b9OeSezdcgS4XNtQRUo/k\r\nnUmnooU2kSwp8NuSBDVfJLq+OwtS5LY2snGJdGtbqt709W4wgB0X8pUyW8ff\r\nD9DBUwU2suScZ7SIMLpljLhTMNH9RvCIW98DutXqr1lFaf7MaViZejViE/gp\r\nNdlu9/VybOOSxkZkYoy6In+oaPk0gavnN/H0EcTMatYnHK/lkGUtOVsGutCk\r\naz5J/Rbw9WnI2kcJeZ1eJD94yHuNyZmpb74pj8FDQ63/GpdW4D0vfFGHj42E\r\nqN7DyPR4yuPQlXN2oOCSXGfEQ/YptzE4D7+/PLtFM6qstQYW3Ham/MigBrrq\r\n2A0hs8MwLm7oowG9OwPYFON2pnNqqOe0MUCCzMy1nPXdXiTKTtQVFc+POkoG\r\nQthfgfIR56jBd3zGnrA9d1eMXjWB+flaHcVuAX7yupEdYvu/wqhtzCLL5RVh\r\nXWW3oUjEpAG5kN1HBezrYr9o48827HXUD0w=\r\n=v57y\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"asleeppiano","email":"asleeppiano@outlook.com"},"directories":{},"maintainers":[{"name":"asleeppiano","email":"asleeppiano@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-client_1.1.0_1651334108072_0.4101674572087062"},"_hasShrinkwrap":false}},"time":{"created":"2022-02-20T12:39:10.761Z","1.0.0":"2022-02-20T12:39:10.975Z","modified":"2022-04-30T15:55:08.349Z","1.1.0":"2022-04-30T15:55:08.256Z"},"maintainers":[{"name":"asleeppiano","email":"asleeppiano@outlook.com"}],"description":"http client for the browser and node, zero deps","homepage":"https://github.com/moody-person/http-client#readme","keywords":["http","xhr","fetch"],"repository":{"type":"git","url":"git+https://github.com/moody-person/http-client.git"},"author":{"name":"Andrey Parfenov","email":"asleeppiano@outlook.com","url":"andreyparfenov.com"},"bugs":{"url":"https://github.com/moody-person/http-client/issues"},"readme":"# http-client\n\nhttp client for browser and node. Use only with es modules.\n\n## Installing\n\n``` sh\nnpm i @asleeppiano/http-client\n```\n\n## Usage\n\n- construct http client with browser or node engine\n- build request using HttpRequestBuilder\n- send request\n- handle request result with isOk function\n\n``` javascript\nimport { HttpClient, HttpNodeEngine, HttpRequestBuilder, isOk } from '@asleeppiano/http-client';\n\n\nasync function request() {\n\tconst client = new HttpClient({\n\t\tbaseUrl: 'https://www.boredapi.com',\n\t\tengine: new HttpNodeEngine()\n\t});\n\tconst request = new HttpRequestBuilder().url('/api/activity').get().build();\n\tconst res = await client.send(request);\n\tif (isOk(res)) {\n        console.log('res: ', res.result);\n\t} else {\n\t\tconsole.error(`Error. status = ${res.status}, message = ${res.message}`);\n\t}\n}\n\nrequest()\n```\n\nYou can only send body as string for now.\n\n## API\n\n### HttpClient\n\n#### Constructor\n\n`HttpClient({ baseUrl: string, engine: HttpEngine })`\n\ncreate http client with provided baseUrl and engine.\n\n#### Methods\n\n`send<R, B>(request: HttpRequest): ResponseResultPromise<R>` - send a builded request\n\n`addOptions<R, B>(request: HttpRequest): ResponseResultPromise<R>` - add request options to all requests\n\n### HttpEngine\n\n#### Methods\n\n`\nrequest<T extends BodyInit, R>(\nurl: COMMON.Url,\nrequestOptions: RequestOptions,\ndata?: T,\n): ResponseResultPromise<R>;\n\nrequest<T, R>(\nurl: COMMON.Url,\nrequestOptions: RequestOptions,\ndata?: T,\n): ResponseResultPromise<R>;\n`\n\nmake request with provided url, request options, and some data.\n\n### HttpRequestBuilder\n\n`addOptions(options: HTTP.RequestOptionsProps): HttpRequestBuilder`\n\n`body(body: TBody): HttpRequestBuilder`\n\n`url(url: string): HttpRequestBuilder`\n\n`query(query: TQuery): HttpRequestBuilder`\n\n`headers(headers: Headers): HttpRequestBuilder`\n\nadd data to request\n\n`get(): HttpRequestBuilder`\n\n`head(): HttpRequestBuilder`\n\n`post(): HttpRequestBuilder`\n\n`put(): HttpRequestBuilder`\n\n`patch(): HttpRequestBuilder`\n\n`delete(): HttpRequestBuilder`\n\n`options(): HttpRequestBuilder`\n\nset a method\n\n`build(): HTTP.HttpRequest`\n\nreturns HttpRequest\n","readmeFilename":"README.md","license":"MIT"}