core-version.js 1.47 KB
const MINIMUM_VERSION = 'v1.34.3-1-g86cdf97';

const util = require('util');
const naturalCompare = require('natural-compare-lite');

const logger = require('tektrans-logger');
const matrix = require('komodo-sdk/matrix');

const coreMatrixRequest =  util.promisify(require('./matrix'));

let _isSufficient = false;
matrix.core_version_is_sufficient = false;
matrix.core_version_requirement = MINIMUM_VERSION;

function logIfDev(...args) {
    matrix.NODE_ENV !== 'production' && logger.verbose(...args);
}

async function getCoreVersion() {
    
    logIfDev('CORE-VERSION: checking core version');

    try {
        var coreMatrix = await coreMatrixRequest();
    }
    catch(e) {
        logger.verbose('Error requsting CORE version. ' + e.toString())
    }
    
    if (!coreMatrix || !coreMatrix.version_active) {
        setTimeout(
            function() {
                getCoreVersion();
            },
            5000
        )
        return;
    }

    _isSufficient = naturalCompare(MINIMUM_VERSION, coreMatrix.version_active) <= 0;
    matrix.core_version_is_sufficient = _isSufficient;
    logger.info('CORE-VERSION', {version_active: coreMatrix.version_active, minimum_version: MINIMUM_VERSION, sufficient: _isSufficient});

    if (!_isSufficient) {
        setTimeout(
            function() {
                getCoreVersion();
            },
            5000
        )
    }
}
getCoreVersion();

function isSufficient() {
    return _isSufficient;
}

module.exports = isSufficient();