get-online.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.getOnline = getOnline;
  6. var _childProcess = require("child_process");
  7. var _dns = _interopRequireDefault(require("dns"));
  8. var _url = _interopRequireDefault(require("url"));
  9. function _interopRequireDefault(obj) {
  10. return obj && obj.__esModule ? obj : {
  11. default: obj
  12. };
  13. }
  14. function getProxy() {
  15. if (process.env.https_proxy) {
  16. return process.env.https_proxy;
  17. }
  18. try {
  19. const httpsProxy = (0, _childProcess).execSync("npm config get https-proxy").toString().trim();
  20. return httpsProxy !== "null" ? httpsProxy : undefined;
  21. } catch (e) {
  22. return;
  23. }
  24. }
  25. function getOnline() {
  26. return new Promise((resolve)=>{
  27. _dns.default.lookup("registry.yarnpkg.com", (registryErr)=>{
  28. if (!registryErr) {
  29. return resolve(true);
  30. }
  31. const proxy = getProxy();
  32. if (!proxy) {
  33. return resolve(false);
  34. }
  35. const { hostname } = _url.default.parse(proxy);
  36. if (!hostname) {
  37. return resolve(false);
  38. }
  39. _dns.default.lookup(hostname, (proxyErr)=>{
  40. resolve(proxyErr == null);
  41. });
  42. });
  43. });
  44. }
  45. //# sourceMappingURL=get-online.js.map