Security News
How Threat Actors are Abusing GitHub’s File Upload Feature to Host Malware
GitHub is susceptible to a CDN flaw that allows attackers to host malware on any public repository.
@applitools/http-commons
Advanced tools
Readme
Library that has http common functionality, all around http-client currently.
npm install @applitools/http-commons
Let's see an example with fetchAsJson
const {fetchAsJson} = require('@applitools/http-commons')
await fetchAsJson('https://swapi.co/api/people/1/') // ===> {name: "Luke Skywalker", ...}
All these functions with throw an exception if the status code is not 2xx. The excption will have the following properties:
code
: it will be 'ERR_X_STATUS_CODE_NOT_OK'
status
: the HTTP status codestatusText
: the HTTP status textheaders
: an object with the response headersfetchAsBuffer(url, [fetchOptions], [options])
async fetches URL and returns a Buffer response.
url
The URL to fetch.
fetchOptions
The fetch options used by the node-fetch
package.
options
The following options are available:
alternativeFetch
(For testing purposes) A function that will be used as an alternative to node-fetch
-s fetch
function.
An object with the response body as JSON parsed.
await fetchAsJson('https://swapi.co/api/people/1/') // ===> {name: "Luke Skywalker", ...}
fetchAsText(url, [fetchOptions], [options])
async fetches URL and returns the response as a string.
url
The URL to fetch.
fetchOptions
The fetch options used by the node-fetch
package.
options
The following options are available:
alternativeFetch
(For testing purposes) A function that will be used as an alternative to node-fetch
-s fetch
function.
A string with the response body.
await fetchAsText('https://www.wikipedia.org')) // ===> "<!DOCTYPE html><html ..."
fetchAsTextWithJsonBody(url, json, [fetchOptions], [options])
async posts URL with a JSON body and returns the response as a string.
url
The URL to fetch.
fetchOptions
The fetch options used by the node-fetch
package.
Note that the default options are {method: 'POST', body: '_the_json_'}
, with the correct content-type
header,
but you can override this using fetchOptions
options
The following options are available:
alternativeFetch
(For testing purposes) A function that will be used as an alternative to node-fetch
-s fetch
function.
A string with the response body.
await fetchAsTextWithJsonBody('https://httpbin.org/anything', {x: 4})) // ===> "{..{"x": 4}..}"
fetchAsJsonWithJsonBody(url, json, [fetchOptions], [options])
async posts URL with a JSON body and returns the response as a string.
url
The URL to fetch.
fetchOptions
The fetch options used by the node-fetch
package.
Note that the default options are {method: 'POST', body: '_the_json_'}
, with the correct content-type
header,
but you can override this using fetchOptions
options
The following options are available:
alternativeFetch
(For testing purposes) A function that will be used as an alternative to node-fetch
-s fetch
function.
A "JSON" object with the parsed body
await fetchAsTextWithJsonBody('https://httpbin.org/anything', {x: 4}, {method: 'PUT'})) // ===> {..{"x": 4}..}
fetchAsBufferWithJsonBody(url, json, [fetchOptions], [options])
async posts URL with a JSON body and returns the response as a string.
url
The URL to fetch.
fetchOptions
The fetch options used by the node-fetch
package.
Note that the default options are {method: 'POST', body: '_the_json_'}
, with the correct content-type
header,
but you can override this using fetchOptions
options
The following options are available:
alternativeFetch
(For testing purposes) A function that will be used as an alternative to node-fetch
-s fetch
function.
A buffer with the response body.
await fetchAsBufferWithJsonBody('https://httpbin.org/anything', {x: 4})) // ===> Buffer (....)
retryFetch(func, options)
Retries code and deals correctly with retrying HTTP and connection errors.
func
An async func that calls one of the fetch*
functions above or the fetch
in node-fetch
directly.
options
retries
Number of retries before failing.
sleepTime
The time (in ms) for sleeping between retries
backoff
Exponential backoff factor for sleepTime
idempotent
Some errors, like 5xx
http status error should not retry if the fetch
operation is idempotent. So this
flag says whether the operation is idempotent to know whether to retry.
Whatever func
returns
const json = await retry(() => fetchAsJson('http://httpbin.org/anything'), {idempotent: true})
FAQs
<!-- markdownlint-disable MD024 -->
The npm package @applitools/http-commons receives a total of 41,545 weekly downloads. As such, @applitools/http-commons popularity was classified as popular.
We found that @applitools/http-commons demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 45 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub is susceptible to a CDN flaw that allows attackers to host malware on any public repository.
Security News
At Node Congress, Socket CEO Feross Aboukhadijeh uncovers the darker aspects of open source, where applications that rely heavily on third-party dependencies can be exploited in supply chain attacks.
Research
Security News
The Socket Research team found this npm package includes code for collecting sensitive developer information, including your operating system username, Git username, and Git email.