Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,18 @@ on:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
jobs:
integration-tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version: [12.x, 20.x, 22.x, 23.x]
node-version: [13.x, 20.x, 22.x, 23.x]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: npm test
- run: npm test
101 changes: 88 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,94 @@ XHR object.
Note: use the lowercase string "xmlhttprequest-ssl" in your require(). On
case-sensitive systems (eg Linux) using uppercase letters won't work.

### Non-standard features ###

Non-standard options for this module are passed through the `XMLHttpRequest` constructor. The following options control `https:` SSL requests: `ca`, `cert`, `ciphers`, `key`, `passphrase`, `pfx`, and `rejectUnauthorized`. You can find their functionality in the [Node.js docs](https://nodejs.org/api/https.html#httpsrequestoptions-callback).

Additionally, the `agent` option allows you to specify a [Node.js Agent](https://nodejs.org/api/https.html#class-httpsagent) instance, allowing connection reuse.

To prevent a process from not exiting naturally because a request socket from this module is still open, you can set `autoUnref` to a truthy value.

This module allows control over the maximum number of redirects that are followed. You can set the `maxRedirects` option to do this. The default number is 20.

Using the `allowFileSystemResources` option allows you to control access to the local filesystem through the `file:` protocol.

The `origin` option allows you to set a base URL for the request. The resulting request URL will be constructed as follows `new URL(url, origin)`.
## Non-standard features ##
### Additional options ###

Non-standard options for this module are passed through the `XMLHttpRequest` constructor. Here is the list of all options:

<table>
<thead>
<tr>
<th>Option</th>
<th>Default value</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ca</code></td>
<td rowspan="6"><code>undefined</code></td>
<td rowspan="7">Control <code>https:</code> requests, you can find their functionality in the <a href="https://nodejs.org/api/https.html#httpsrequestoptions-callback">Nodejs Documentation</a></td>
</tr>
<tr>
<td><code>cert</code></td>
</tr>
<tr>
<td><code>ciphers</code></td>
</tr>
<tr>
<td><code>key</code></td>
</tr>
<tr>
<td><code>passhphrase</code></td>
</tr>
<tr>
<td><code>pfx</code></td>
</tr>
<tr>
<td><code>rejectUnauthorized</code></td>
<td><code>true</code></td>
</tr>
<tr>
<td><code>agent</code></td>
<td><code>undefined</code></td>
<td>Allows to specify a <a href="https://nodejs.org/api/https.html#class-httpsagent">Nodejs Agent</a> instance, allowing connection reuse</td>
</tr>
<tr>
<td><code>autoUnref</code></td>
<td><code>false</code></td>
<td>Set to any truthy value to prevent a process from not exiting naturally because a request socket from this module is still open</td>
</tr>
<tr>
<td><code>maxRedirects</code></td>
<td><code>20</code></td>
<td>Allows control over the maximum number of redirects that are followed</td>
</tr>
<tr>
<td><code>allowFileSystemResources</code></td>
<td><code>true</code></td>
<td>Allows control access to the local filesystem through the <code>file:</code> protocol</td>
</tr>
<tr>
<td><code>origin</code></td>
<td><code>undefined</code></td>
<td>Set a base URL for the requests called using this instance. The resulting request URL will be constructed as follows: <code>new URL(url, origin)</code></td>
</tr>
<tr>
<td><code>syncPolicy</code></td>
<td><code>"warn"</code></td>
<td>Control feature behavior of the synchronous feature:<ul><li><code>"disabled"</code>: Disable the feature completely, throws error after calling <code>.send()</code> if in synchronous mode</li><li><code>"warn"</code>: Enable the feature, but show a warning when calling <code>.open()</code> with synchronous mode</li><li><code>"enabled"</code>: Enable the feature without showing any additional warnings or errors</li></ul></td>
</tr>
<tr>
<td><code>disableHeaderCheck</code></td>
<td><code>false</code></td>
<td>Disable the check against forbidden headers to be added to a XHR request</td>
</tr>
<tr>
<td><code>xmlParser</code></td>
<td>none</td>
<td>Specify a parser (non-async) to parse document from text when <code>xhr.responseType</code> is either <code>"document"</code> or in text format. If the parser is invalid or omitted, <code>xhr.responseXML</code> will be <code>null</code></td>
</tr>
<tr>
<td><code>textDecoder</code></td>
<td><code>TextDecoder</code> or <code>buf.toString(enc)</code> depending on Node version</td>
<td>Specify a text decoder (non-async), accepting a buffer <code>buf</code> and encoding <code>enc</code> to decode to desired encoding.<br>Note that <code>TextDecoder</code> at version 12 does not support a wide range of encodings than later node version does</td>
</tr>
</tbody>
</table>

### Additional methods ###
`XMLHttpRequest` object created using this library exposes `xhr.getRequestHeader(header_name)` method to retrieve any header content by name in the request headers list. This feature is deprecated and will be removed in future releases.

# Original README #

Expand Down
Loading