iedriver_xml.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. const semver = require("semver");
  4. const config_1 = require("../config");
  5. const config_source_1 = require("./config_source");
  6. class IEDriverXml extends config_source_1.XmlConfigSource {
  7. constructor() {
  8. super('iedriver', config_1.Config.cdnUrls()['ie']);
  9. }
  10. getUrl(version) {
  11. if (version === 'latest') {
  12. return this.getLatestIEDriverVersion();
  13. }
  14. else {
  15. return this.getSpecificIEDriverVersion(version);
  16. }
  17. }
  18. getVersionList() {
  19. return this.getXml().then(xml => {
  20. let versionPaths = [];
  21. for (let content of xml.ListBucketResult.Contents) {
  22. let contentKey = content.Key[0];
  23. // Filter For IEDriverServer win 32. Removing option to download x64
  24. if (contentKey.includes('IEDriverServer_Win32_')) {
  25. versionPaths.push(contentKey);
  26. }
  27. }
  28. return versionPaths;
  29. });
  30. }
  31. getLatestIEDriverVersion() {
  32. return this.getVersionList().then(list => {
  33. let latestVersion = null;
  34. let latest = '';
  35. for (let item of list) {
  36. // Get a semantic version.
  37. let version = item.split('IEDriverServer_Win32_')[1].replace('.zip', '');
  38. if (latestVersion == null) {
  39. // First time: use the version found.
  40. latestVersion = version;
  41. latest = item;
  42. }
  43. else if (semver.gt(version, latestVersion)) {
  44. // Get the latest.
  45. latestVersion = version;
  46. latest = item;
  47. }
  48. }
  49. return { url: config_1.Config.cdnUrls().ie + latest, version: latestVersion };
  50. });
  51. }
  52. getSpecificIEDriverVersion(inputVersion) {
  53. return this.getVersionList().then(list => {
  54. let itemFound = '';
  55. for (let item of list) {
  56. // Get a semantic version.
  57. let version = item.split('IEDriverServer_Win32_')[1].replace('.zip', '');
  58. // Check to see if the specified version matches.
  59. let firstPath = item.split('/')[0];
  60. if (version === inputVersion) {
  61. return { url: config_1.Config.cdnUrls().ie + item, version: version };
  62. }
  63. }
  64. return { url: '', version: inputVersion };
  65. });
  66. }
  67. }
  68. exports.IEDriverXml = IEDriverXml;
  69. //# sourceMappingURL=iedriver_xml.js.map