pact-toolbox
Version:
A tool to help you build, test and deploy your Pact smart contracts
76 lines (74 loc) • 2.41 kB
JavaScript
const require_chunk = require('./chunk-CUT6urMc.cjs');
const citty = require_chunk.__toESM(require("citty"));
const __pact_toolbox_config = require_chunk.__toESM(require("@pact-toolbox/config"));
const __pact_toolbox_utils = require_chunk.__toESM(require("@pact-toolbox/utils"));
const fs = require_chunk.__toESM(require("fs"));
const pathe = require_chunk.__toESM(require("pathe"));
const __pact_toolbox_fabricator = require_chunk.__toESM(require("@pact-toolbox/fabricator"));
//#region src/commands/generate/station.ts
const stationCommand = (0, citty.defineCommand)({
meta: {
name: "station",
description: "Generate gas station contract"
},
args: {
name: {
type: "positional",
description: "Name of the gas station",
valueHint: "my-gas-station",
default: "my-gas-station",
required: false
},
namespace: {
type: "string",
description: "Namespace of the gas station",
valueHint: "free",
default: "free"
},
"admin-keyset": {
type: "string",
description: "Admin keyset for the gas station",
valueHint: "admin-keyset",
default: "admin-keyset"
},
account: {
type: "string",
description: "K account for the gas station",
required: true,
valueHint: "k:3a9dd...."
},
module: {
type: "string",
description: "Module for the gas station",
valueHint: "my-module",
default: "my-module"
},
force: {
type: "boolean",
description: "Force overwrite existing gas station",
default: false,
alias: ["f"]
}
},
run: async ({ args }) => {
const config = await (0, __pact_toolbox_config.resolveConfig)();
const contractDir = config.contractsDir || "pact";
const code = (0, __pact_toolbox_fabricator.generateGasStation)({
namespace: args.namespace,
adminKeyset: args["admin-keyset"],
account: args.account,
module: args.module,
name: args.name
});
const fileName = `${args.module}-${args.name}.pact`;
const path = (0, pathe.join)(contractDir, fileName);
if ((0, fs.existsSync)(path) && !args.force) {
__pact_toolbox_utils.logger.error(`Gas station ${fileName} already exists in ${contractDir} directory.`);
return;
}
await (0, __pact_toolbox_utils.writeFile)(path, code);
__pact_toolbox_utils.logger.box(`Gas station ${fileName} generated in ${contractDir} directory.\nPlease review the generated code before deploying it.`);
}
});
//#endregion
exports.stationCommand = stationCommand;