net.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const { net } = require('electron');
  2. const serverUrl = process.argv[2].split('=')[1];
  3. let configurableArg = null;
  4. if (process.argv[3]) {
  5. configurableArg = process.argv[3].split('=')[0];
  6. }
  7. const data = [];
  8. let request = null;
  9. if (configurableArg === '--omit-credentials') {
  10. request = net.request({ method: 'GET', url: serverUrl, credentials: 'omit' });
  11. } else if (configurableArg === '--use-fetch-api') {
  12. net.fetch(serverUrl).then((response) => {
  13. process.parentPort.postMessage([response.status, response.headers]);
  14. });
  15. } else {
  16. request = net.request({ method: 'GET', url: serverUrl });
  17. }
  18. if (request) {
  19. if (configurableArg === '--use-net-login-event') {
  20. request.on('login', (authInfo, provideCredentials) => {
  21. process.parentPort.postMessage(authInfo);
  22. provideCredentials('user', 'pass');
  23. });
  24. }
  25. request.on('response', (response) => {
  26. process.parentPort.postMessage([response.statusCode, response.headers]);
  27. response.on('data', (chunk) => data.push(chunk));
  28. response.on('end', (chunk) => {
  29. if (chunk) data.push(chunk);
  30. process.parentPort.postMessage(Buffer.concat(data).toString());
  31. });
  32. });
  33. if (configurableArg === '--request-data') {
  34. process.parentPort.on('message', (e) => {
  35. request.write(e.data);
  36. request.end();
  37. });
  38. process.parentPort.postMessage('get-request-data');
  39. } else {
  40. request.end();
  41. }
  42. }