publiclab/image-sequencer

View on GitHub
examples/lib/versionManagement.js

Summary

Maintainability
A
25 mins
Test Coverage
/**
 * Functions for getting version information.
 * Note: these functions are not used by the service worker to check for updates;
 * the service worker updates whenever sw.js has changed.
 * sw.js is changed when grunt replace:version is run. This task is run during
 * grunt build, serve, and productions tasks.
 */

const package = require('../../package.json');

/**
 * Get the current version number from package.json on the homepage.
 * @param {function} callback The function that uses the version number.
 */
function getLatestVersionNumber(callback) {
  // Get the homepage reference from the local package.json.
  var homepage = package.homepage;
  var request = new XMLHttpRequest();
  request.onreadystatechange = function() {
    if (request.readyState == 4 && request.status == 200) {
      var response = JSON.parse(this.responseText);
      var latestVersionNumber = response.version;

      // Do something with the version number using a callback function.
      if (callback)
        callback(latestVersionNumber);
    }
  }

  // Get the package.json file from online using a GET request.
  request.open("GET", homepage + "/package.json", true);
  request.send();
}

// Get the version number from the local package.json file.
function getLocalVersionNumber() {
  return package.version;
}

module.exports = {
  getLatestVersionNumber,
  getLocalVersionNumber
}