57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
|
const { net } = require('electron');
|
||
|
|
||
|
async function get(url) {
|
||
|
return request({ url, method: 'GET' })
|
||
|
}
|
||
|
|
||
|
async function post(url, body) {
|
||
|
return request({ url, method: 'POST' }, body)
|
||
|
}
|
||
|
|
||
|
async function request(options, body) {
|
||
|
|
||
|
return new Promise((resolve, reject) => {
|
||
|
const responseBody = [];
|
||
|
let responseHeaders;
|
||
|
let responseStatus;
|
||
|
|
||
|
console.log(options);
|
||
|
const request = net.request(options);
|
||
|
|
||
|
request.on('response', (response) => {
|
||
|
responseStatus = response.statusCode;
|
||
|
responseHeaders = response.headers;
|
||
|
|
||
|
response.on('data', (chunk) => {
|
||
|
if (chunk) {
|
||
|
responseBody.push(`${chunk}`);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
response.on('end', () => {
|
||
|
resolve({
|
||
|
status: responseStatus,
|
||
|
headers: responseHeaders,
|
||
|
body: JSON.parse(responseBody.join('')),
|
||
|
});
|
||
|
});
|
||
|
|
||
|
response.on('aborted', () => console.log('request aborted'));
|
||
|
response.on('error', (error) => reject(error));
|
||
|
});
|
||
|
|
||
|
request.on('error', (error) => reject(error));
|
||
|
|
||
|
request.setHeader('Content-Type', 'application/json');
|
||
|
if (['POST'].includes(options.method.toUpperCase())) {
|
||
|
request.write(body, 'utf-8')
|
||
|
}
|
||
|
request.end();
|
||
|
|
||
|
});
|
||
|
}
|
||
|
|
||
|
|
||
|
module.exports = {
|
||
|
get
|
||
|
};
|