config.js 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. const os = require("os");
  4. const path = require("path");
  5. const cli_1 = require("./cli");
  6. let logger = new cli_1.Logger('config');
  7. /**
  8. * The configuration for webdriver-manager
  9. *
  10. * The config.json, package.json, and selenium directory are found in the
  11. * same location at the root directory in webdriver-manager.
  12. *
  13. */
  14. class Config {
  15. static osArch() {
  16. return Config.osArch_;
  17. }
  18. static osType() {
  19. return Config.osType_;
  20. }
  21. static noProxy() {
  22. return Config.noProxy_;
  23. }
  24. static httpProxy() {
  25. return Config.httpProxy_;
  26. }
  27. static httpsProxy() {
  28. return Config.httpsProxy_;
  29. }
  30. static getConfigFile_() {
  31. return path.resolve(Config.dir, '..', Config.configFile);
  32. }
  33. static getPackageFile_() {
  34. return path.resolve(Config.dir, '..', Config.packageFile);
  35. }
  36. static getSeleniumDir() {
  37. return path.resolve(Config.dir, '..', '..', 'selenium/');
  38. }
  39. static getBaseDir() {
  40. return path.resolve(Config.dir, '..', '..');
  41. }
  42. /**
  43. * Get the binary versions from the configuration file.
  44. * @returns A map of the versions defined in the configuration file.
  45. */
  46. static binaryVersions() {
  47. let configFile = require(Config.getConfigFile_());
  48. let configVersions = {};
  49. configVersions.selenium = configFile.webdriverVersions.selenium;
  50. configVersions.chrome = configFile.webdriverVersions.chromedriver;
  51. configVersions.gecko = configFile.webdriverVersions.geckodriver;
  52. configVersions.ie = configFile.webdriverVersions.iedriver;
  53. configVersions.android = configFile.webdriverVersions.androidsdk;
  54. configVersions.appium = configFile.webdriverVersions.appium;
  55. configVersions.maxChrome = configFile.webdriverVersions.maxChromedriver;
  56. return configVersions;
  57. }
  58. /**
  59. * Get the CDN urls from the configuration file.
  60. * @returns A map of the CDN versions defined in the configuration file.
  61. */
  62. static cdnUrls() {
  63. let configFile = require(Config.getConfigFile_());
  64. let configCdnUrls = {};
  65. configCdnUrls.selenium = configFile.cdnUrls.selenium;
  66. configCdnUrls.chrome = configFile.cdnUrls.chromedriver;
  67. configCdnUrls.gecko = configFile.cdnUrls.geckodriver;
  68. configCdnUrls.ie = configFile.cdnUrls.iedriver;
  69. configCdnUrls.android = configFile.cdnUrls.androidsdk;
  70. return configCdnUrls;
  71. }
  72. /**
  73. * Get the package version.
  74. */
  75. static getVersion() {
  76. let packageFile = require(Config.getPackageFile_());
  77. return packageFile.version;
  78. }
  79. }
  80. Config.configFile = 'config.json';
  81. Config.packageFile = 'package.json';
  82. Config.nodeModuleName = 'webdriver-manager';
  83. Config.cwd = process.cwd();
  84. Config.parentPath = path.resolve(Config.cwd, '..');
  85. Config.dir = __dirname;
  86. Config.folder = Config.cwd.replace(Config.parentPath, '').substring(1);
  87. Config.isProjectVersion = Config.folder === Config.nodeModuleName;
  88. Config.isLocalVersion = false;
  89. Config.osArch_ = os.arch();
  90. Config.osType_ = os.type();
  91. Config.noProxy_ = process.env.NO_PROXY || process.env.no_proxy;
  92. Config.httpsProxy_ = process.env.HTTPS_PROXY || process.env.https_proxy;
  93. Config.httpProxy_ = process.env.HTTP_PROXY || process.env.http_proxy;
  94. exports.Config = Config;
  95. //# sourceMappingURL=config.js.map