Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const child_process_1 = require("child_process");
const log_1 = require("../../log");
const transform_1 = require("./transform");
const fixture_1 = require("./fixture");
// if we load pm2 inside test env, it does not exit
// tslint:disable:no-var-requires
const pm = process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'testing'
    ? require('./deps.pm2.mock').pm
    : require('./deps.pm2').pm;
exports.isProcessManagerRunning = async () => {
    if (process.env.IS_INSIDE_PM2) {
        log_1.logger.debug('[@skava/graphql]{pm2} used IS_INSIDE_PM2 env');
        return true;
    }
    try {
        const list = await pm.list();
        return list.length === 0;
    }
    catch (pm2Exception) {
        log_1.logger.warn('[@skava/graphql]{pm2} could not get list');
        log_1.logger.error(pm2Exception);
        return false;
    }
};
/**
 * @todo could process.exit if we pass an arg or set in config
 */
exports.restart = async (appName = 'skava-graphql') => {
    const isRunning = await exports.isProcessManagerRunning();
    if (isRunning === false) {
        if (process.env.NODE_ENV === 'test') {
            return;
        }
        else {
            log_1.logger.warn(`[${appName}]{pm2} no restart, is not running`);
            child_process_1.execSync('pm2 restart all --update-env');
        }
    }
    else {
        return pm.restart(appName);
    }
};
/**
 * @todo execSync('pm2 status')
 */
exports.stats = async (appName = 'skava-graphql') => {
    const isRunning = await exports.isProcessManagerRunning();
    if (isRunning === false) {
        log_1.logger.warn(`[${appName}]{pm2} no restart, is not running`);
        return fixture_1.fixture;
    }
    else {
        const processList = await pm.describe(appName);
        return transform_1.fromProcessDescriptionListToResponse(processList);
    }
};
const fs_1 = require("fs");
const isJSON = x => {
    try {
        return JSON.parse(x);
    }
    catch (exception) {
        return false;
    }
};
/**
 * @see http://pm2.keymetrics.io/docs/usage/log-management/#log-configuration
 * @todo need to be careful about memory size reading a file that big
 *       could stream them
 */
exports.readLogs = async () => {
    // @todo move these out into params
    // then we could read orchestration/stream/any log file
    // ^ would need super security
    const { env } = await exports.stats();
    const logPath = env.logPath;
    const logs = fs_1.readFileSync(logPath).toString('utf-8');
    const logObj = logs
        .split('\n')
        .filter(x => x && x !== '\n' && x !== '\r')
        .map(x => {
        const asJSON = isJSON(x);
        if (!asJSON) {
            return { message: x, timestamp: 'missing' };
        }
        else if (asJSON.message && asJSON.timestamp) {
            return asJSON;
        }
        else {
            return { message: x, timestamp: 'missing' };
        }
    });
    // const list = fromLogListToFormatted(logObj)
    const list = logObj;
    const uniq = [...new Set(list)];
    return uniq;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsLW1vZHVsZXMvcG0yL2RlcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBd0M7QUFDeEMsbUNBQWtDO0FBQ2xDLDJDQUdvQjtBQUNwQix1Q0FBbUM7QUFFbkMsbURBQW1EO0FBQ25ELGlDQUFpQztBQUNqQyxNQUFNLEVBQUUsR0FDTixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxNQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssU0FBUztJQUNuRSxDQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRTtJQUMvQixDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQTtBQUVqQixRQUFBLHVCQUF1QixHQUFHLEtBQUssSUFBSSxFQUFFO0lBQ2hELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUU7UUFDN0IsWUFBTSxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFBO1FBQzVELE9BQU8sSUFBSSxDQUFBO0tBQ1o7SUFFRCxJQUFJO1FBQ0YsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQTtLQUN6QjtJQUFDLE9BQU8sWUFBWSxFQUFFO1FBQ3JCLFlBQU0sQ0FBQyxJQUFJLENBQUMsMENBQTBDLENBQUMsQ0FBQTtRQUN2RCxZQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzFCLE9BQU8sS0FBSyxDQUFBO0tBQ2I7QUFDSCxDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNVLFFBQUEsT0FBTyxHQUFHLEtBQUssRUFBRSxVQUFrQixlQUFlLEVBQUUsRUFBRTtJQUNqRSxNQUFNLFNBQVMsR0FBRyxNQUFNLCtCQUF1QixFQUFFLENBQUE7SUFDakQsSUFBSSxTQUFTLEtBQUssS0FBSyxFQUFFO1FBQ3ZCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUFFO1lBQ25DLE9BQU07U0FDUDthQUFNO1lBQ0wsWUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sbUNBQW1DLENBQUMsQ0FBQTtZQUMzRCx3QkFBUSxDQUFDLDhCQUE4QixDQUFDLENBQUE7U0FDekM7S0FDRjtTQUFNO1FBQ0wsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQzNCO0FBQ0gsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDVSxRQUFBLEtBQUssR0FBRyxLQUFLLEVBQUUsVUFBa0IsZUFBZSxFQUFFLEVBQUU7SUFDL0QsTUFBTSxTQUFTLEdBQUcsTUFBTSwrQkFBdUIsRUFBRSxDQUFBO0lBQ2pELElBQUksU0FBUyxLQUFLLEtBQUssRUFBRTtRQUN2QixZQUFNLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxtQ0FBbUMsQ0FBQyxDQUFBO1FBQzNELE9BQU8saUJBQU8sQ0FBQTtLQUNmO1NBQU07UUFDTCxNQUFNLFdBQVcsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDOUMsT0FBTyxnREFBb0MsQ0FBQyxXQUFXLENBQUMsQ0FBQTtLQUN6RDtBQUNILENBQUMsQ0FBQTtBQUVELDJCQUFpQztBQUNqQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtJQUNqQixJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ3JCO0lBQUMsT0FBTyxTQUFTLEVBQUU7UUFDbEIsT0FBTyxLQUFLLENBQUE7S0FDYjtBQUNILENBQUMsQ0FBQTtBQUVEOzs7O0dBSUc7QUFDVSxRQUFBLFFBQVEsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNqQyxtQ0FBbUM7SUFDbkMsdURBQXVEO0lBQ3ZELDhCQUE4QjtJQUM5QixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxhQUFLLEVBQUUsQ0FBQTtJQUM3QixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFBO0lBRTNCLE1BQU0sSUFBSSxHQUFHLGlCQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRXBELE1BQU0sTUFBTSxHQUFHLElBQUk7U0FDaEIsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUM7U0FDMUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ1AsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUE7U0FDNUM7YUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUM3QyxPQUFPLE1BQU0sQ0FBQTtTQUNkO2FBQU07WUFDTCxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUE7U0FDNUM7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVKLDhDQUE4QztJQUM5QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUE7SUFDbkIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDL0IsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDLENBQUEifQ==