UNPKG

@decaf-ts/fabric-weaver

Version:
93 lines 10.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FabricPeerNodeCommandBuilder = void 0; const logging_1 = require("@decaf-ts/logging"); const fabric_binaries_1 = require("../constants/fabric-binaries.cjs"); const parsers_1 = require("../../utils/parsers.cjs"); const fabric_peer_1 = require("../constants/fabric-peer.cjs"); const child_process_1 = require("../../utils/child-process.cjs"); class FabricPeerNodeCommandBuilder { constructor(logger) { this.binName = fabric_binaries_1.FabricBinaries.PEER; this.baseCommand = fabric_peer_1.PeerCommands.NODE; this.command = fabric_peer_1.PeerNodeCommands.START; this.args = new Map(); if (!logger) this.log = logging_1.Logging.for(FabricPeerNodeCommandBuilder); else this.log = logger.for(FabricPeerNodeCommandBuilder.name); } setCommand(command) { if (command !== undefined) { this.log.debug(`Setting command to ${command}`); this.command = command; } return this; } setPeerDevelopmentMode(enable) { if (enable !== undefined) { this.log.debug(`Setting peer development mode to ${enable}`); this.args.set("--peer-chaincodedev", enable); } return this; } setBlockNumber(blockNumber) { if (blockNumber !== undefined) { this.log.debug(`Setting block number to ${blockNumber}`); this.args.set("--blockNumber", blockNumber.toString()); } return this; } setChannelID(channelID) { if (channelID !== undefined) { this.log.debug(`Setting channel ID to ${channelID}`); this.args.set("--channelID", channelID); } return this; } setHelp(show) { if (show !== undefined) { this.log.debug(`Setting help flag: ${show}`); this.args.set("--help", show); } return this; } build() { const command = [ this.getBinary(), this.getBaseCommand(), this.getCommand(), this.getCommand(), ...(0, parsers_1.mapParser)(this.args), ].join(" "); this.log.debug(`Built command: ${command}`); return command; } getBaseCommand() { return this.baseCommand; } getCommand() { return this.command; } getBinary() { return this.binName; } getArgs() { return (0, parsers_1.mapParser)(this.args); } async execute() { const bin = this.getBinary(); const argz = [this.getBaseCommand(), this.getCommand(), ...this.getArgs()]; try { // const regex = /\[\s*INFO\s*\] Listening on http/; // can be used as a promise but to lock the logs running as execsync await (0, child_process_1.runCommand)(bin, argz); } catch (error) { this.log.error(`Error: Failed to execute the command: ${error}`); process.exit(1); } } } exports.FabricPeerNodeCommandBuilder = FabricPeerNodeCommandBuilder; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmljLXBlZXItbm9kZS1jb21tYW5kLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmFicmljL3BlZXIvZmFicmljLXBlZXItbm9kZS1jb21tYW5kLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQW9EO0FBQ3BELGtFQUE4RDtBQUM5RCxpREFBZ0Q7QUFDaEQsMERBQTBFO0FBQzFFLDZEQUF1RDtBQUV2RCxNQUFhLDRCQUE0QjtJQVN2QyxZQUFZLE1BQWU7UUFObkIsWUFBTyxHQUFtQixnQ0FBYyxDQUFDLElBQUksQ0FBQztRQUM5QyxnQkFBVyxHQUFHLDBCQUFZLENBQUMsSUFBSSxDQUFDO1FBQ2hDLFlBQU8sR0FBRyw4QkFBZ0IsQ0FBQyxLQUFLLENBQUM7UUFFakMsU0FBSSxHQUFzRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRzFFLElBQUksQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxpQkFBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDOztZQUM3RCxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUEwQjtRQUNuQyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsTUFBZ0I7UUFDckMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsb0NBQW9DLE1BQU0sRUFB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aW1wb3J0IHsgTG9nZ2VyLCBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyBGYWJyaWNCaW5hcmllcyB9IGZyb20gXCIuLi9jb25zdGFudHMvZmFicmljLWJpbmFyaWVzXCI7XG5pbXBvcnQgeyBtYXBQYXJzZXIgfSBmcm9tIFwiLi4vLi4vdXRpbHMvcGFyc2Vyc1wiO1xuaW1wb3J0IHsgUGVlckNvbW1hbmRzLCBQZWVyTm9kZUNvbW1hbmRzIH0gZnJvbSBcIi4uL2NvbnN0YW50cy9mYWJyaWMtcGVlclwiO1xuaW1wb3J0IHsgcnVuQ29tbWFuZCB9IGZyb20gXCIuLi8uLi91dGlscy9jaGlsZC1wcm9jZXNzXCI7XG5cbmV4cG9ydCBjbGFzcyBGYWJyaWNQZWVyTm9kZUNvbW1hbmRCdWlsZGVyIHtcbiAgcHJpdmF0ZSBsb2c6IExvZ2dlcjtcblxuICBwcml2YXRlIGJpbk5hbWU6IEZhYnJpY0JpbmFyaWVzID0gRmFicmljQmluYXJpZXMuUEVFUjtcbiAgcHJpdmF0ZSBiYXNlQ29tbWFuZCA9IFBlZXJDb21tYW5kcy5OT0RFO1xuICBwcml2YXRlIGNvbW1hbmQgPSBQZWVyTm9kZUNvbW1hbmRzLlNUQVJUO1xuXG4gIHByaXZhdGUgYXJnczogTWFwPHN0cmluZywgc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZ1tdPiA9IG5ldyBNYXAoKTtcblxuICBjb25zdHJ1Y3Rvcihsb2dnZXI/OiBMb2dnZXIpIHtcbiAgICBpZiAoIWxvZ2dlcikgdGhpcy5sb2cgPSBMb2dnaW5nLmZvcihGYWJyaWNQZWVyTm9kZUNvbW1hbmRCdWlsZGVyKTtcbiAgICBlbHNlIHRoaXMubG9nID0gbG9nZ2VyLmZvcihGYWJyaWNQZWVyTm9kZUNvbW1hbmRCdWlsZGVyLm5hbWUpO1xuICB9XG5cbiAgc2V0Q29tbWFuZChjb21tYW5kPzogUGVlck5vZGVDb21tYW5kcyk6IHRoaXMge1xuICAgIGlmIChjb21tYW5kICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBTZXR0aW5nIGNvbW1hbmQgdG8gJHtjb21tYW5kfWApO1xuICAgICAgdGhpcy5jb21tYW5kID0gY29tbWFuZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRQZWVyRGV2ZWxvcG1lbnRNb2RlKGVuYWJsZT86IGJvb2xlYW4pOiB0aGlzIHtcbiAgICBpZiAoZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBTZXR0aW5nIHBlZXIgZGV2ZWxvcG1lbnQgbW9kZSB0byAke2VuYWJsZX1gKTtcbiAgICAgIHRoaXMuYXJncy5zZXQoXCItLXBlZXItY2hhaW5jb2RlZGV2XCIsIGVuYWJsZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2V0QmxvY2tOdW1iZXIoYmxvY2tOdW1iZXI/OiBudW1iZXIpOiB0aGlzIHtcbiAgICBpZiAoYmxvY2tOdW1iZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5sb2cuZGVidWcoYFNldHRpbmcgYmxvY2sgbnVtYmVyIHRvICR7YmxvY2tOdW1iZXJ9YCk7XG4gICAgICB0aGlzLmFyZ3Muc2V0KFwiLS1ibG9ja051bWJlclwiLCBibG9ja051bWJlci50b1N0cmluZygpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRDaGFubmVsSUQoY2hhbm5lbElEPzogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKGNoYW5uZWxJRCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgU2V0dGluZyBjaGFubmVsIElEIHRvICR7Y2hhbm5lbElEfWApO1xuICAgICAgdGhpcy5hcmdzLnNldChcIi0tY2hhbm5lbElEXCIsIGNoYW5uZWxJRCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2V0SGVscChzaG93PzogYm9vbGVhbik6IHRoaXMge1xuICAgIGlmIChzaG93ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBTZXR0aW5nIGhlbHAgZmxhZzogJHtzaG93fWApO1xuICAgICAgdGhpcy5hcmdzLnNldChcIi0taGVscFwiLCBzaG93KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBidWlsZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbW1hbmQ6IHN0cmluZyA9IFtcbiAgICAgIHRoaXMuZ2V0QmluYXJ5KCksXG4gICAgICB0aGlzLmdldEJhc2VDb21tYW5kKCksXG4gICAgICB0aGlzLmdldENvbW1hbmQoKSxcbiAgICAgIHRoaXMuZ2V0Q29tbWFuZCgpLFxuICAgICAgLi4ubWFwUGFyc2VyKHRoaXMuYXJncyksXG4gICAgXS5qb2luKFwiIFwiKTtcblxuICAgIHRoaXMubG9nLmRlYnVnKGBCdWlsdCBjb21tYW5kOiAke2NvbW1hbmR9YCk7XG4gICAgcmV0dXJuIGNvbW1hbmQ7XG4gIH1cblxuICBnZXRCYXNlQ29tbWFuZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJhc2VDb21tYW5kO1xuICB9XG5cbiAgZ2V0Q29tbWFuZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbW1hbmQ7XG4gIH1cblxuICBnZXRCaW5hcnkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5iaW5OYW1lO1xuICB9XG5cbiAgZ2V0QXJncygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIG1hcFBhcnNlcih0aGlzLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBiaW4gPSB0aGlzLmdldEJpbmFyeSgpO1xuICAgIGNvbnN0IGFyZ3ogPSBbdGhpcy5nZXRCYXNlQ29tbWFuZCgpLCB0aGlzLmdldENvbW1hbmQoKSwgLi4udGhpcy5nZXRBcmdzKCldO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIGNvbnN0IHJlZ2V4ID0gL1xcW1xccypJTkZPXFxzKlxcXSBMaXN0ZW5pbmcgb24gaHR0cC87XG4gICAgICAvLyBjYW4gYmUgdXNlZCBhcyBhIHByb21pc2UgYnV0IHRvIGxvY2sgdGhlIGxvZ3MgcnVubmluZyBhcyBleGVjc3luY1xuICAgICAgYXdhaXQgcnVuQ29tbWFuZChiaW4sIGFyZ3opO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICB0aGlzLmxvZy5lcnJvcihgRXJyb3I6IEZhaWxlZCB0byBleGVjdXRlIHRoZSBjb21tYW5kOiAke2Vycm9yfWApO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgfVxufVxuIl19