@kadena/kadena-cli
Version:
Kadena CLI tool to interact with the Kadena blockchain (manage keys, transactions, etc.)
97 lines • 3.56 kB
JavaScript
import { Option } from 'commander';
import { z } from 'zod';
import { pactjs } from '../../../prompts/index.js';
import { createOption } from '../../../utils/createOption.js';
const asList = (value) => {
if (typeof value === 'string') {
if (value.trim().length === 0) {
return [];
}
value = value
.split(',')
.map((item) => item.trim())
.filter((item) => item.length > 0);
}
if (Array.isArray(value) && value.length === 0) {
return [];
}
return value;
};
export const contractOptions = {
clean: createOption({
key: 'clean',
prompt: pactjs.cleanPrompt,
validation: z.string(),
option: new Option('-x, --clean <clean>', 'Clean existing generated files'),
}),
capsInterface: createOption({
key: 'capsInterface',
prompt: pactjs.capsInterfacePrompt,
validation: z.string().optional(),
option: new Option('-i, --caps-interface <capsInterface>', 'Custom name for the interface of the caps'),
}),
fileOrDirectory: createOption({
key: 'fileOrDirectory',
prompt: pactjs.fileOrDirectoryPrompt,
validation: z.string().optional(),
option: new Option('-d, --file-or-directory <fileOrDirectory>', 'File or directory to use to generate the client'),
transform: asList,
}),
file: createOption({
key: 'file',
prompt: pactjs.filePrompt,
validation: z.string().optional(),
option: new Option('-f, --file <file>', 'Generate d.ts from Pact contract file'),
transform: asList,
}),
contract: createOption({
key: 'contract',
prompt: pactjs.contractPrompt,
validation: z.string().optional(),
option: new Option('-c, --contract <contract>', 'Generate d.ts from Pact contract from the blockchain'),
transform: asList,
}),
namespace: createOption({
key: 'namespace',
prompt: pactjs.namespacePrompt,
validation: z.string().optional(),
option: new Option('-n, --namespace <namespace>', 'Namespace for the contract'),
}),
api: createOption({
key: 'api',
prompt: pactjs.apiPrompt,
validation: z.string().optional(),
option: new Option('-a, --api <api>', 'API to retrieve the contract'),
}),
module: createOption({
key: 'module',
prompt: pactjs.modulePrompt,
validation: z.string(),
option: new Option('-m, --module <module>', 'The module you want to retrieve (e.g. "coin")'),
}),
out: createOption({
key: 'out',
prompt: pactjs.outPrompt,
validation: z.string(),
option: new Option('-o, --out <out>', 'File to write the contract to'),
}),
chain: createOption({
key: 'chain',
prompt: pactjs.chainPrompt,
validation: z.number().optional(),
option: new Option('-c, --chain <chain>', 'Chain ID to retrieve the contract from'),
}),
network: createOption({
key: 'network',
prompt: pactjs.networkPrompt,
validation: z.string().optional(),
option: new Option('-n, --network <network>', 'Network ID to retrieve the contract from'),
}),
parseTreePath: createOption({
key: 'parseTreePath',
prompt: pactjs.parseTreePathPrompt,
validation: z.string().optional(),
option: new Option('-t,--parse-tree-path <parseTreePath>', 'Path to store the parsed tree'),
}),
};
//# sourceMappingURL=contractOptions.js.map