UNPKG

@kadena/kadena-cli

Version:

Kadena CLI tool to interact with the Kadena blockchain (manage keys, transactions, etc.)

71 lines 3.03 kB
import { Option, program } from 'commander'; import { z } from 'zod'; import { createExternalPrompt } from '../../prompts/generic.js'; import { devnet as devnetPrompts } from '../../prompts/index.js'; import { createOption } from '../../utils/createOption.js'; import { ensureDevnetsConfiguration } from '../../utils/helpers.js'; import { log } from '../../utils/logger.js'; import { loadDevnetConfig } from './utils/devnetHelpers.js'; export const devnetOptions = { devnet: createOption({ key: 'devnet', prompt: devnetPrompts.devnetPrompt, validation: z.string(), option: new Option('-d, --devnet <devnet>', 'Devnet name'), expand: async (devnet) => { await ensureDevnetsConfiguration(); try { return await loadDevnetConfig(devnet); } catch (e) { log.warning(`\nNo devnet "${devnet}" found. Please create the devnet.\n`); await program.parseAsync(['', '', 'devnet', 'create']); const externalPrompt = createExternalPrompt({ devnetPrompt: devnetPrompts.devnetPrompt, }); const devnetName = await externalPrompt.devnetPrompt(); return await loadDevnetConfig(devnetName); } }, }), devnetName: createOption({ key: 'name', prompt: devnetPrompts.devnetNamePrompt, validation: z.string(), option: new Option('-n, --name <name>', 'Devnet name (e.g. "devnet")'), expand: async (name) => { return { foo: 'bar' }; }, }), devnetPort: createOption({ key: 'port', prompt: devnetPrompts.devnetPortPrompt, validation: z.number(), option: new Option('-p, --port <port>', 'Port to forward to the Chainweb node API (default: 8080)').argParser((value) => parseInt(value, 10)), }), devnetUseVolume: createOption({ key: 'useVolume', prompt: devnetPrompts.devnetUseVolumePrompt, validation: z.boolean(), option: new Option('-u, --useVolume', 'Create a persistent volume to mount to the container'), }), devnetMountPactFolder: createOption({ key: 'mountPactFolder', prompt: devnetPrompts.devnetMountPactFolderPrompt, validation: z.string(), option: new Option('-m, --mountPactFolder <mountPactFolder>', 'Mount a folder containing Pact files to the container (e.g. "./pact", optional)'), }), devnetSelect: createOption({ key: 'name', prompt: devnetPrompts.devnetSelectPrompt, validation: z.string(), option: new Option('-n, --name <name>', 'Devnet name'), }), devnetVersion: createOption({ key: 'version', prompt: devnetPrompts.devnetVersionPrompt, validation: z.string(), option: new Option('-v, --version <version>', 'Version of the kadena/devnet Docker image to use (e.g. "latest")'), }), }; //# sourceMappingURL=devnetOptions.js.map