Add documentation for {intercept,register}StreamProtocol.
This commit is contained in:
parent
639dc2377f
commit
5e8618ec3b
2 changed files with 84 additions and 0 deletions
|
@ -194,6 +194,67 @@ request to have a different session you should set `session` to `null`.
|
||||||
|
|
||||||
For POST requests the `uploadData` object must be provided.
|
For POST requests the `uploadData` object must be provided.
|
||||||
|
|
||||||
|
### `protocol.registerStreamProtocol(scheme, handler[, completion])`
|
||||||
|
|
||||||
|
* `scheme` String
|
||||||
|
* `handler` Function
|
||||||
|
* `request` Object
|
||||||
|
* `url` String
|
||||||
|
* `headers` Object
|
||||||
|
* `referrer` String
|
||||||
|
* `method` String
|
||||||
|
* `uploadData` [UploadData[]](structures/upload-data.md)
|
||||||
|
* `callback` Function
|
||||||
|
* `stream` (ReadableStream | [StreamProtocolResponse](structures/stream-protocol-response.md)) (optional)
|
||||||
|
* `completion` Function (optional)
|
||||||
|
* `error` Error
|
||||||
|
|
||||||
|
Registers a protocol of `scheme` that will send a `Readable` as a response.
|
||||||
|
|
||||||
|
The usage is similar to the other `register{Any}Protocol`, except that the
|
||||||
|
`callback` should be called with either a `Readable` object or an object that
|
||||||
|
has the `data`, `statusCode`, and `headers` properties.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const {protocol} = require('electron')
|
||||||
|
const {PassThrough} = require('stream')
|
||||||
|
|
||||||
|
function createStream (text) {
|
||||||
|
const rv = new PassThrough() // PassThrough is also a Readable stream
|
||||||
|
rv.push(text)
|
||||||
|
rv.push(null)
|
||||||
|
return rv
|
||||||
|
}
|
||||||
|
|
||||||
|
protocol.registerStreamProtocol('atom', (request, callback) => {
|
||||||
|
callback({
|
||||||
|
statusCode: 200,
|
||||||
|
headers: {
|
||||||
|
'content-type': 'text/html'
|
||||||
|
},
|
||||||
|
data: createStream('<h5>Response</h5>')
|
||||||
|
})
|
||||||
|
}, (error) => {
|
||||||
|
if (error) console.error('Failed to register protocol')
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
It is possible to pass any object that implements the readable stream API (emits
|
||||||
|
`data`/`end`/`error` events). For example, here's how a file could be returned:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const {protocol} = require('electron')
|
||||||
|
const fs = require('fs')
|
||||||
|
|
||||||
|
protocol.registerStreamProtocol('atom', (request, callback) => {
|
||||||
|
callback(fs.createReadStream('index.html'))
|
||||||
|
}, (error) => {
|
||||||
|
if (error) console.error('Failed to register protocol')
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
### `protocol.unregisterProtocol(scheme[, completion])`
|
### `protocol.unregisterProtocol(scheme[, completion])`
|
||||||
|
|
||||||
* `scheme` String
|
* `scheme` String
|
||||||
|
@ -285,6 +346,24 @@ which sends a `Buffer` as a response.
|
||||||
Intercepts `scheme` protocol and uses `handler` as the protocol's new handler
|
Intercepts `scheme` protocol and uses `handler` as the protocol's new handler
|
||||||
which sends a new HTTP request as a response.
|
which sends a new HTTP request as a response.
|
||||||
|
|
||||||
|
### `protocol.interceptStreamProtocol(scheme, handler[, completion])`
|
||||||
|
|
||||||
|
* `scheme` String
|
||||||
|
* `handler` Function
|
||||||
|
* `request` Object
|
||||||
|
* `url` String
|
||||||
|
* `headers` Object
|
||||||
|
* `referrer` String
|
||||||
|
* `method` String
|
||||||
|
* `uploadData` [UploadData[]](structures/upload-data.md)
|
||||||
|
* `callback` Function
|
||||||
|
* `stream` (ReadableStream | [StreamProtocolResponse](structures/stream-protocol-response.md)) (optional)
|
||||||
|
* `completion` Function (optional)
|
||||||
|
* `error` Error
|
||||||
|
|
||||||
|
Same as `protocol.registerStreamProtocol`, except that it replaces an existing
|
||||||
|
protocol handler.
|
||||||
|
|
||||||
### `protocol.uninterceptProtocol(scheme[, completion])`
|
### `protocol.uninterceptProtocol(scheme[, completion])`
|
||||||
|
|
||||||
* `scheme` String
|
* `scheme` String
|
||||||
|
|
5
docs/api/structures/stream-protocol-response.md
Normal file
5
docs/api/structures/stream-protocol-response.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# StreamProtocolResponse Object
|
||||||
|
|
||||||
|
* `statusCode` Number - The HTTP response code
|
||||||
|
* `headers` Object - An object containing the response headers
|
||||||
|
* `data` ReadableStream - A Node.js readable stream representing the response body
|
Loading…
Add table
Add a link
Reference in a new issue