UNPKG

@decaf-ts/fabric-weaver

Version:
120 lines 13.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FabricPeerChaincodeCommandBuilder = void 0; const logging_1 = require("@decaf-ts/logging"); const fabric_binaries_1 = require("../constants/fabric-binaries.cjs"); const fabric_peer_1 = require("../constants/fabric-peer.cjs"); const child_process_1 = require("../../utils/child-process.cjs"); class FabricPeerChaincodeCommandBuilder { constructor(logger) { this.binName = fabric_binaries_1.FabricBinaries.PEER; this.baseCommand = fabric_peer_1.PeerCommands.CHAINCODE; this.command = fabric_peer_1.PeerChaincodeCommands.PACKAGE; this.args = []; if (!logger) this.log = logging_1.Logging.for(FabricPeerChaincodeCommandBuilder); else this.log = logger.for(FabricPeerChaincodeCommandBuilder.name); } setCommand(command) { if (command !== undefined) { this.log.debug(`Setting command to ${command}`); this.command = command; } return this; } // setBlockPath(blockPath?: string): this { // if (blockPath !== undefined) { // this.log.debug(`Setting blockpath to ${blockPath}`); // this.args.push(`--blockpath ${blockPath}`); // } // return this; // } // setBlockReference(blockRef?: string): this { // if (blockRef !== undefined) { // this.log.debug(`Setting block reference to ${blockRef}`); // this.blockReference = blockRef; // } // return this; // } setlocation(location) { if (location !== undefined) { this.log.debug(`Setting contract location to ${location}`); this.location = location; } return this; } // setChannelID(channelID?: string): this { // if (channelID !== undefined) { // this.log.debug(`Setting channel ID to ${channelID}`); // this.args.push(`--channelID ${channelID}`); // } // return this; // } // setOrderer(orderer?: string): this { // if (orderer !== undefined) { // this.log.debug(`Setting orderer to ${orderer}`); // this.args.push(`--orderer ${orderer}`); // } // return this; // } // enableTLS(enable?: boolean): this { // if (enable !== undefined && enable === true) { // this.log.debug(`Setting TLS enabled: ${enable}`); // this.args.push(`--tls`); // } // return this; // } // setTLSCAFile(caFile?: string): this { // if (caFile !== undefined) { // this.log.debug(`Setting TLS CA file: ${caFile}`); // this.args.push(`--cafile ${caFile}`); // } // return this; // } build() { const command = [ this.getBinary(), this.getBaseCommand(), this.getCommand(), this.location, ...[...new Set(this.args)], ] .filter((item) => item !== undefined && item !== null && item !== "") .join(" "); this.log.debug(`Built command: ${command}`); return command; } getBaseCommand() { return this.baseCommand; } getCommand() { return this.command; } getBinary() { return this.binName; } getArgs() { return [...new Set(this.args)]; } async execute() { const bin = this.getBinary(); const argz = [ this.getBaseCommand(), this.getCommand(), this.location, ...this.getArgs(), ].filter((item) => item !== undefined && item !== null && item !== ""); 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.FabricPeerChaincodeCommandBuilder = FabricPeerChaincodeCommandBuilder; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmljLXBlZXItY2hhaW5jb2RlLWNvbW1hbmQtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mYWJyaWMvcGVlci9mYWJyaWMtcGVlci1jaGFpbmNvZGUtY29tbWFuZC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtDQUFvRDtBQUNwRCxrRUFBOEQ7QUFDOUQsMERBQStFO0FBQy9FLDZEQUF1RDtBQUV2RCxNQUFhLGlDQUFpQztJQVk1QyxZQUFZLE1BQWU7UUFUbkIsWUFBTyxHQUFtQixnQ0FBYyxDQUFDLElBQUksQ0FBQztRQUM5QyxnQkFBVyxHQUFHLDBCQUFZLENBQUMsU0FBUyxDQUFDO1FBRXJDLFlBQU8sR0FBRyxtQ0FBcUIsQ0FBQyxPQUFPLENBQUM7UUFJeEMsU0FBSSxHQUFhLEVBQUUsQ0FBQztRQUcxQixJQUFJLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsaUJBQU8sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLENBQUMsQ0FBQzs7WUFDbEUsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBK0I7UUFDeEMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDekIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDZDQUE2QztJQUM3QyxxQ0FBcUM7SUFDckMsNkRBQTZEO0lBQzdELG9EQUFvRDtJQUNwRCxRQUFRO0lBQ1IsbUJBQW1CO0lBQ25CLE1BQU07SUFFTixpREFBaUQ7SUFDakQsb0NBQW9DO0lBQ3BDLGtFQUFrRTtJ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QUFySUQsOEVBcUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2VyLCBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyBGYWJyaWNCaW5hcmllcyB9IGZyb20gXCIuLi9jb25zdGFudHMvZmFicmljLWJpbmFyaWVzXCI7XG5pbXBvcnQgeyBQZWVyQ2hhaW5jb2RlQ29tbWFuZHMsIFBlZXJDb21tYW5kcyB9IGZyb20gXCIuLi9jb25zdGFudHMvZmFicmljLXBlZXJcIjtcbmltcG9ydCB7IHJ1bkNvbW1hbmQgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY2hpbGQtcHJvY2Vzc1wiO1xuXG5leHBvcnQgY2xhc3MgRmFicmljUGVlckNoYWluY29kZUNvbW1hbmRCdWlsZGVyIHtcbiAgcHJpdmF0ZSBsb2c6IExvZ2dlcjtcblxuICBwcml2YXRlIGJpbk5hbWU6IEZhYnJpY0JpbmFyaWVzID0gRmFicmljQmluYXJpZXMuUEVFUjtcbiAgcHJpdmF0ZSBiYXNlQ29tbWFuZCA9IFBlZXJDb21tYW5kcy5DSEFJTkNPREU7XG5cbiAgcHJpdmF0ZSBjb21tYW5kID0gUGVlckNoYWluY29kZUNvbW1hbmRzLlBBQ0tBR0U7XG5cbiAgcHJpdmF0ZSBsb2NhdGlvbj86IHN0cmluZztcblxuICBwcml2YXRlIGFyZ3M6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IobG9nZ2VyPzogTG9nZ2VyKSB7XG4gICAgaWYgKCFsb2dnZXIpIHRoaXMubG9nID0gTG9nZ2luZy5mb3IoRmFicmljUGVlckNoYWluY29kZUNvbW1hbmRCdWlsZGVyKTtcbiAgICBlbHNlIHRoaXMubG9nID0gbG9nZ2VyLmZvcihGYWJyaWNQZWVyQ2hhaW5jb2RlQ29tbWFuZEJ1aWxkZXIubmFtZSk7XG4gIH1cblxuICBzZXRDb21tYW5kKGNvbW1hbmQ/OiBQZWVyQ2hhaW5jb2RlQ29tbWFuZHMpOiB0aGlzIHtcbiAgICBpZiAoY29tbWFuZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgU2V0dGluZyBjb21tYW5kIHRvICR7Y29tbWFuZH1gKTtcbiAgICAgIHRoaXMuY29tbWFuZCA9IGNvbW1hbmQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gICBzZXRCbG9ja1BhdGgoYmxvY2tQYXRoPzogc3RyaW5nKTogdGhpcyB7XG4gIC8vICAgICBpZiAoYmxvY2tQYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgLy8gICAgICAgdGhpcy5sb2cuZGVidWcoYFNldHRpbmcgYmxvY2twYXRoIHRvICR7YmxvY2tQYXRofWApO1xuICAvLyAgICAgICB0aGlzLmFyZ3MucHVzaChgLS1ibG9ja3BhdGggJHtibG9ja1BhdGh9YCk7XG4gIC8vICAgICB9XG4gIC8vICAgICByZXR1cm4gdGhpcztcbiAgLy8gICB9XG5cbiAgLy8gICBzZXRCbG9ja1JlZmVyZW5jZShibG9ja1JlZj86IHN0cmluZyk6IHRoaXMge1xuICAvLyAgICAgaWYgKGJsb2NrUmVmICE9PSB1bmRlZmluZWQpIHtcbiAgLy8gICAgICAgdGhpcy5sb2cuZGVidWcoYFNldHRpbmcgYmxvY2sgcmVmZXJlbmNlIHRvICR7YmxvY2tSZWZ9YCk7XG4gIC8vICAgICAgIHRoaXMuYmxvY2tSZWZlcmVuY2UgPSBibG9ja1JlZjtcbiAgLy8gICAgIH1cbiAgLy8gICAgIHJldHVybiB0aGlzO1xuICAvLyAgIH1cblxuICBzZXRsb2NhdGlvbihsb2NhdGlvbj86IHN0cmluZyk6IHRoaXMge1xuICAgIGlmIChsb2NhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgU2V0dGluZyBjb250cmFjdCBsb2NhdGlvbiB0byAke2xvY2F0aW9ufWApO1xuICAgICAgdGhpcy5sb2NhdGlvbiA9IGxvY2F0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vICAgc2V0Q2hhbm5lbElEKGNoYW5uZWxJRD86IHN0cmluZyk6IHRoaXMge1xuICAvLyAgICAgaWYgKGNoYW5uZWxJRCAhPT0gdW5kZWZpbmVkKSB7XG4gIC8vICAgICAgIHRoaXMubG9nLmRlYnVnKGBTZXR0aW5nIGNoYW5uZWwgSUQgdG8gJHtjaGFubmVsSUR9YCk7XG4gIC8vICAgICAgIHRoaXMuYXJncy5wdXNoKGAtLWNoYW5uZWxJRCAke2NoYW5uZWxJRH1gKTtcbiAgLy8gICAgIH1cbiAgLy8gICAgIHJldHVybiB0aGlzO1xuICAvLyAgIH1cblxuICAvLyAgIHNldE9yZGVyZXIob3JkZXJlcj86IHN0cmluZyk6IHRoaXMge1xuICAvLyAgICAgaWYgKG9yZGVyZXIgIT09IHVuZGVmaW5lZCkge1xuICAvLyAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgU2V0dGluZyBvcmRlcmVyIHRvICR7b3JkZXJlcn1gKTtcbiAgLy8gICAgICAgdGhpcy5hcmdzLnB1c2goYC0tb3JkZXJlciAke29yZGVyZXJ9YCk7XG4gIC8vICAgICB9XG4gIC8vICAgICByZXR1cm4gdGhpcztcbiAgLy8gICB9XG5cbiAgLy8gICBlbmFibGVUTFMoZW5hYmxlPzogYm9vbGVhbik6IHRoaXMge1xuICAvLyAgICAgaWYgKGVuYWJsZSAhPT0gdW5kZWZpbmVkICYmIGVuYWJsZSA9PT0gdHJ1ZSkge1xuICAvLyAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgU2V0dGluZyBUTFMgZW5hYmxlZDogJHtlbmFibGV9YCk7XG4gIC8vICAgICAgIHRoaXMuYXJncy5wdXNoKGAtLXRsc2ApO1xuICAvLyAgICAgfVxuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuXG4gIC8vICAgc2V0VExTQ0FGaWxlKGNhRmlsZT86IHN0cmluZyk6IHRoaXMge1xuICAvLyAgICAgaWYgKGNhRmlsZSAhPT0gdW5kZWZpbmVkKSB7XG4gIC8vICAgICAgIHRoaXMubG9nLmRlYnVnKGBTZXR0aW5nIFRMUyBDQSBmaWxlOiAke2NhRmlsZX1gKTtcbiAgLy8gICAgICAgdGhpcy5hcmdzLnB1c2goYC0tY2FmaWxlICR7Y2FGaWxlfWApO1xuICAvLyAgICAgfVxuXG4gIC8vICAgICByZXR1cm4gdGhpcztcbiAgLy8gICB9XG5cbiAgYnVpbGQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb21tYW5kOiBzdHJpbmcgPSBbXG4gICAgICB0aGlzLmdldEJpbmFyeSgpLFxuICAgICAgdGhpcy5nZXRCYXNlQ29tbWFuZCgpLFxuICAgICAgdGhpcy5nZXRDb21tYW5kKCksXG4gICAgICB0aGlzLmxvY2F0aW9uLFxuICAgICAgLi4uWy4uLm5ldyBTZXQodGhpcy5hcmdzKV0sXG4gICAgXVxuICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gdW5kZWZpbmVkICYmIGl0ZW0gIT09IG51bGwgJiYgaXRlbSAhPT0gXCJcIilcbiAgICAgIC5qb2luKFwiIFwiKTtcblxuICAgIHRoaXMubG9nLmRlYnVnKGBCdWlsdCBjb21tYW5kOiAke2NvbW1hbmR9YCk7XG4gICAgcmV0dXJuIGNvbW1hbmQ7XG4gIH1cblxuICBnZXRCYXNlQ29tbWFuZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJhc2VDb21tYW5kO1xuICB9XG5cbiAgZ2V0Q29tbWFuZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbW1hbmQ7XG4gIH1cblxuICBnZXRCaW5hcnkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5iaW5OYW1lO1xuICB9XG5cbiAgZ2V0QXJncygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0KHRoaXMuYXJncyldO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBiaW4gPSB0aGlzLmdldEJpbmFyeSgpO1xuICAgIGNvbnN0IGFyZ3ogPSBbXG4gICAgICB0aGlzLmdldEJhc2VDb21tYW5kKCksXG4gICAgICB0aGlzLmdldENvbW1hbmQoKSxcbiAgICAgIHRoaXMubG9jYXRpb24sXG4gICAgICAuLi50aGlzLmdldEFyZ3MoKSxcbiAgICBdLmZpbHRlcihcbiAgICAgIChpdGVtKSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBpdGVtICE9PSBcIlwiXG4gICAgKSBhcyBzdHJpbmdbXTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBjb25zdCByZWdleCA9IC9cXFtcXHMqSU5GT1xccypcXF0gTGlzdGVuaW5nIG9uIGh0dHAvO1xuICAgICAgLy8gY2FuIGJlIHVzZWQgYXMgYSBwcm9taXNlIGJ1dCB0byBsb2NrIHRoZSBsb2dzIHJ1bm5pbmcgYXMgZXhlY3N5bmNcbiAgICAgIGF3YWl0IHJ1bkNvbW1hbmQoYmluLCBhcmd6KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgdGhpcy5sb2cuZXJyb3IoYEVycm9yOiBGYWlsZWQgdG8gZXhlY3V0ZSB0aGUgY29tbWFuZDogJHtlcnJvcn1gKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==