HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/shop.komma.nl/node_modules/apollo/lib/commands/service/list.js
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const command_1 = require("@oclif/command");
const Command_1 = require("../../Command");
const lodash_sortby_1 = __importDefault(require("lodash.sortby"));
const table_1 = require("table");
const moment_1 = __importDefault(require("moment"));
const chalk_1 = __importDefault(require("chalk"));
const sharedMessages_1 = require("../../utils/sharedMessages");
const formatImplementingService = (implementingService, effectiveDate = new Date()) => {
    return {
        name: implementingService.name,
        url: implementingService.url || "",
        updatedAt: `${moment_1.default(implementingService.updatedAt).format("D MMMM YYYY")} (${moment_1.default(implementingService.updatedAt).from(effectiveDate)})`
    };
};
function formatHumanReadable({ implementingServices, graphName, frontendUrlRoot }) {
    let result = "";
    if (!implementingServices ||
        implementingServices.__typename === "NonFederatedImplementingService") {
        result =
            "\nThis graph is not federated, there are no services composing the graph";
    }
    else if (implementingServices.services.length === 0) {
        result = "\nThere are no services on this federated graph";
    }
    else {
        const sortedImplementingServices = lodash_sortby_1.default(implementingServices.services, [service => service.name.toUpperCase()]);
        console.log(table_1.table([
            ["Name", "URL", "Last Updated"],
            ...sortedImplementingServices
                .map(sortedImplementingService => formatImplementingService(sortedImplementingService, process.env.NODE_ENV === "test"
                ? new Date("2019-06-13")
                : undefined))
                .sort((s1, s2) => s1.name.toUpperCase() > s2.name.toUpperCase() ? 1 : -1)
                .map(Object.values)
                .filter(Boolean)
        ]));
        const serviceListUrlEnding = `/graph/${graphName}/service-list`;
        const targetUrl = `${frontendUrlRoot}${serviceListUrlEnding}`;
        result += `\nView full details at: ${chalk_1.default.cyan(targetUrl)}\n`;
    }
    return result;
}
class ServiceList extends Command_1.ProjectCommand {
    async run() {
        const taskOutput = {};
        let graphID;
        let graphVariant;
        try {
            await this.runTasks(({ config, flags, project }) => {
                graphID = config.graph;
                graphVariant = config.variant;
                if (!graphID) {
                    throw sharedMessages_1.graphUndefinedError;
                }
                return [
                    {
                        title: `Fetching list of services for graph ${chalk_1.default.cyan(graphID + "@" + graphVariant)}`,
                        task: async (ctx, task) => {
                            const { frontendUrlRoot, service } = await project.engine.listServices({
                                id: graphID,
                                graphVariant: graphVariant
                            });
                            const { implementingServices } = service;
                            const newContext = {
                                implementingServices,
                                frontendUrlRoot,
                                config
                            };
                            Object.assign(ctx, newContext);
                            Object.assign(taskOutput, ctx);
                        }
                    }
                ];
            });
        }
        catch (error) {
            if (error.message.includes("/upgrade")) {
                this.exit(1);
                return;
            }
            throw error;
        }
        this.log(formatHumanReadable({
            implementingServices: taskOutput.implementingServices,
            graphName: taskOutput.config.graph,
            frontendUrlRoot: taskOutput.frontendUrlRoot
        }));
    }
}
exports.default = ServiceList;
ServiceList.description = "List the services in a graph";
ServiceList.flags = Object.assign(Object.assign({}, Command_1.ProjectCommand.flags), { tag: command_1.flags.string({
        char: "t",
        description: "[Deprecated: please use --variant instead] The tag (AKA variant) to list implementing services for",
        hidden: true,
        exclusive: ["variant"]
    }), variant: command_1.flags.string({
        char: "v",
        description: "The variant to list implementing services for",
        exclusive: ["tag"]
    }), graph: command_1.flags.string({
        char: "g",
        description: "The ID of the graph in the Apollo registry for which to list implementing services. Overrides config file if set."
    }) });
//# sourceMappingURL=list.js.map