@decaf-ts/fabric-weaver
Version:
template for ts projects
93 lines • 10.7 kB
JavaScript
"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