core-version.js 1.24 KB
"use strict";

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

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

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

const MINIMUM_VERSION = 'v1.33.1-3-g2ce5525';

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');

    const coreMatrix = await coreMatrixRequest();
    if (!coreMatrix || !coreMatrix.version_active) 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();