@decaf-ts/fabric-weaver
Version:
template for ts projects
60 lines • 7.36 kB
JavaScript
import { Logging } from "@decaf-ts/logging";
import { FabricBinaries } from "../constants/fabric-binaries";
import { OrdererCommand } from "../constants/fabric-orderer";
import { runCommand } from "../../utils/child-process";
import { mapParser } from "../../utils/parsers";
export class FabricOrdererCommandBuilder {
constructor(logger) {
this.binName = FabricBinaries.ORDERER;
this.command = OrdererCommand.START;
this.args = new Map();
if (!logger)
this.log = Logging.for(FabricOrdererCommandBuilder);
else
this.log = logger.for(FabricOrdererCommandBuilder.name);
}
/**
* @description Sets the command for the Orderer.
* @param {OrdererCommand} command - The command to set.
* @returns {OrdererCommandBuilder} The current instance for method chaining.
*/
setCommand(command) {
if (command === undefined)
this.log.info(`Command not provided, defaulting to ${OrdererCommand.START}`);
this.log.debug(`Setting command to ${command}`);
this.command = command;
return this;
}
build() {
const command = [
this.getBinary(),
this.getCommand(),
...mapParser(this.args),
].join(" ");
this.log.debug(`Built command: ${command}`);
return command;
}
getCommand() {
return this.command;
}
getBinary() {
return this.binName;
}
getArgs() {
return mapParser(this.args);
}
async execute() {
const bin = this.getBinary();
const argz = [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 runCommand(bin, argz);
}
catch (error) {
this.log.error(`Error: Failed to execute the command: ${error}`);
process.exit(1);
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmljLW9yZGVyZXItY29tbWFuZC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ZhYnJpYy9vcmRlcmVyL2ZhYnJpYy1vcmRlcmVyLWNvbW1hbmQtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE1BQU0sT0FBTywyQkFBMkI7SUFRdEMsWUFBWSxNQUFlO1FBTG5CLFlBQU8sR0FBbUIsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUNqRCxZQUFPLEdBQW1CLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFFL0MsU0FBSSxHQUFzRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRzFFLElBQUksQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7O1lBQzVELElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxPQUF1QjtRQUNoQyxJQUFJLE9BQU8sS0FBSyxTQUFTO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNYLHVDQUF1QyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQzlELENBQUM7UUFDSixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLO1FBQ0gsTUFBTSxPQUFPLEdBQVc7WUFDdEIsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDeEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFWixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM1QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUM7WUFDSCxvREFBb0Q7WUFDcEQsb0VBQW9FO1lBQ3BFLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBQUMsT0FBTyxLQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyx5Q0FBeUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNqRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnZXIsIExvZ2dpbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IEZhYnJpY0JpbmFyaWVzIH0gZnJvbSBcIi4uL2NvbnN0YW50cy9mYWJyaWMtYmluYXJpZXNcIjtcbmltcG9ydCB7IE9yZGVyZXJDb21tYW5kIH0gZnJvbSBcIi4uL2NvbnN0YW50cy9mYWJyaWMtb3JkZXJlclwiO1xuaW1wb3J0IHsgcnVuQ29tbWFuZCB9IGZyb20gXCIuLi8uLi91dGlscy9jaGlsZC1wcm9jZXNzXCI7XG5pbXBvcnQgeyBtYXBQYXJzZXIgfSBmcm9tIFwiLi4vLi4vdXRpbHMvcGFyc2Vyc1wiO1xuXG5leHBvcnQgY2xhc3MgRmFicmljT3JkZXJlckNvbW1hbmRCdWlsZGVyIHtcbiAgcHJpdmF0ZSBsb2c6IExvZ2dlcjtcblxuICBwcml2YXRlIGJpbk5hbWU6IEZhYnJpY0JpbmFyaWVzID0gRmFicmljQmluYXJpZXMuT1JERVJFUjtcbiAgcHJpdmF0ZSBjb21tYW5kOiBPcmRlcmVyQ29tbWFuZCA9IE9yZGVyZXJDb21tYW5kLlNUQVJUO1xuXG4gIHByaXZhdGUgYXJnczogTWFwPHN0cmluZywgc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZ1tdPiA9IG5ldyBNYXAoKTtcblxuICBjb25zdHJ1Y3Rvcihsb2dnZXI/OiBMb2dnZXIpIHtcbiAgICBpZiAoIWxvZ2dlcikgdGhpcy5sb2cgPSBMb2dnaW5nLmZvcihGYWJyaWNPcmRlcmVyQ29tbWFuZEJ1aWxkZXIpO1xuICAgIGVsc2UgdGhpcy5sb2cgPSBsb2dnZXIuZm9yKEZhYnJpY09yZGVyZXJDb21tYW5kQnVpbGRlci5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU2V0cyB0aGUgY29tbWFuZCBmb3IgdGhlIE9yZGVyZXIuXG4gICAqIEBwYXJhbSB7T3JkZXJlckNvbW1hbmR9IGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBzZXQuXG4gICAqIEByZXR1cm5zIHtPcmRlcmVyQ29tbWFuZEJ1aWxkZXJ9IFRoZSBjdXJyZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmcuXG4gICAqL1xuICBzZXRDb21tYW5kKGNvbW1hbmQ6IE9yZGVyZXJDb21tYW5kKTogRmFicmljT3JkZXJlckNvbW1hbmRCdWlsZGVyIHtcbiAgICBpZiAoY29tbWFuZCA9PT0gdW5kZWZpbmVkKVxuICAgICAgdGhpcy5sb2cuaW5mbyhcbiAgICAgICAgYENvbW1hbmQgbm90IHByb3ZpZGVkLCBkZWZhdWx0aW5nIHRvICR7T3JkZXJlckNvbW1hbmQuU1RBUlR9YFxuICAgICAgKTtcbiAgICB0aGlzLmxvZy5kZWJ1ZyhgU2V0dGluZyBjb21tYW5kIHRvICR7Y29tbWFuZH1gKTtcbiAgICB0aGlzLmNvbW1hbmQgPSBjb21tYW5kO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYnVpbGQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb21tYW5kOiBzdHJpbmcgPSBbXG4gICAgICB0aGlzLmdldEJpbmFyeSgpLFxuICAgICAgdGhpcy5nZXRDb21tYW5kKCksXG4gICAgICAuLi5tYXBQYXJzZXIodGhpcy5hcmdzKSxcbiAgICBdLmpvaW4oXCIgXCIpO1xuXG4gICAgdGhpcy5sb2cuZGVidWcoYEJ1aWx0IGNvbW1hbmQ6ICR7Y29tbWFuZH1gKTtcbiAgICByZXR1cm4gY29tbWFuZDtcbiAgfVxuXG4gIGdldENvbW1hbmQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb21tYW5kO1xuICB9XG5cbiAgZ2V0QmluYXJ5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYmluTmFtZTtcbiAgfVxuXG4gIGdldEFyZ3MoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBtYXBQYXJzZXIodGhpcy5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmluID0gdGhpcy5nZXRCaW5hcnkoKTtcbiAgICBjb25zdCBhcmd6ID0gW3RoaXMuZ2V0Q29tbWFuZCgpLCAuLi50aGlzLmdldEFyZ3MoKV07XG5cbiAgICB0cnkge1xuICAgICAgLy8gY29uc3QgcmVnZXggPSAvXFxbXFxzKklORk9cXHMqXFxdIExpc3RlbmluZyBvbiBodHRwLztcbiAgICAgIC8vIGNhbiBiZSB1c2VkIGFzIGEgcHJvbWlzZSBidXQgdG8gbG9jayB0aGUgbG9ncyBydW5uaW5nIGFzIGV4ZWNzeW5jXG4gICAgICBhd2FpdCBydW5Db21tYW5kKGJpbiwgYXJneik7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIHRoaXMubG9nLmVycm9yKGBFcnJvcjogRmFpbGVkIHRvIGV4ZWN1dGUgdGhlIGNvbW1hbmQ6ICR7ZXJyb3J9YCk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuICB9XG59XG4iXX0=