| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- (function () {
- 'use strict';
- angular.module('ariaNg').factory('ariaNgVersionService', ['ariaNgNativeElectronService', function (ariaNgNativeElectronService) {
- var latestApi = 'https://api.github.com/repos/mayswind/AriaNg-Native/releases/latest';
- var getTheLatestVersion = function () {
- return ariaNgNativeElectronService.requestHttp({
- url: latestApi,
- method: 'GET',
- headers: {
- 'Accept': 'application/vnd.github.v3+json'
- }
- })
- };
- var compareVersion = function (version1, version2) {
- var parts1 = version1.split('.');
- var parts2 = version2.split('.');
- for (var i = 0; i < Math.max(parts1.length, parts2.length); i++) {
- if (parts1[i] && angular.isUndefined(parts2[i])) { // 1.1.1 > 1.1, 1.1.0 == 1.1
- return 1; // version1 > version2
- }
- if (parts2[i] && angular.isUndefined(parts1[i])) {
- return -1; // version1 < version2
- }
- if (parts2[i].indexOf('-') > 0 && parts1[i].indexOf('-') < 0) { // 1.1.0 > 1.1.0-beta1
- return 1; // version1 > version2
- } else if (parts1[i].indexOf('-') > 0 && parts2[i].indexOf('-') < 0) {
- return -1; // version1 < version2
- }
- var subParts1 = parts1[i].split('-');
- var subParts2 = parts2[i].split('-');
- var subPart0CompareResult = String.naturalCompare(subParts1[0], subParts2[0]);
- if (subPart0CompareResult > 0) { // 1.1.1 > 1.1.0
- return 1; // version1 > version2
- } else if (subPart0CompareResult < 0) {
- return -1; // version1 < version2
- }
- if (!angular.isUndefined(subParts1[1]) && !angular.isUndefined(subParts2[1])) {
- var subPart1CompareResult = String.naturalCompare(subParts1[1], subParts2[1]);
- if (subPart1CompareResult > 0) { // 1.1.0-beta2 > 1.1.0-beta1
- return 1; // version1 > version2
- } else if (subPart1CompareResult < 0) {
- return -1; // version1 < version2
- }
- }
- }
- return 0;
- };
- return {
- getBuildVersion: function () {
- return 'v' + ariaNgNativeElectronService.getVersion();
- },
- getBuildVersionNumber: function () {
- return ariaNgNativeElectronService.getVersion();
- },
- getAriaNgVersion: function() {
- return 'v' + ariaNgNativeElectronService.getAriaNgVersion();
- },
- getBuildCommit: function () {
- return ariaNgNativeElectronService.getBuildCommit();
- },
- getTheLatestVersion: getTheLatestVersion,
- compareVersion: compareVersion
- };
- }]);
- }());
|