electron/lib/browser/api/net.js

54 lines
1 KiB
JavaScript
Raw Normal View History

'use strict'
const {EventEmitter} = require('events')
const binding = process.atomBinding('net')
const {net, Net} = binding
const {URLRequest} = net
Object.setPrototypeOf(Net.prototype, EventEmitter.prototype)
Object.setPrototypeOf(URLRequest.prototype, EventEmitter.prototype)
class URLResponse extends EventEmitter {
constructor(request) {
super();
this.request = request;
}
get statusCode() {
return this.request.statusCode;
}
get statusMessage() {
return this.request.statusMessage;
}
get headers() {
return this.request.responseHeaders;
}
get httpVersion() {
return this.request.responseHttpVersion;
}
}
Net.prototype.request = function(options, callback) {
let request = new URLRequest(options)
if (callback) {
request.once('response', callback)
}
return request
}
URLRequest.prototype._emitResponse = function() {
this.response = new URLResponse(this);
this.emit('response', this.response);
}
module.exports = net