UNPKG

across-bridge-v3-sdk

Version:

Light-weighted SDK for interacting with Across V3 API

56 lines 2.02 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.program = void 0; const commander_1 = require("commander"); const client_1 = require("./client"); exports.program = new commander_1.Command(); const client = (0, client_1.createAcrossClient)(); function parseKeyValueParams(paramList) { const params = {}; for (const param of paramList) { const [key, value] = param.split('='); if (!key || value === undefined) { throw new Error(`Invalid parameter format: "${param}". Expected format is key=value`); } params[key] = value; } return params; } exports.program .name('across-v3-cli') .description('CLI for interacting with Across V3 SDK') .argument('<method>', 'API method to call') .option('-p, --params <params...>', 'API call params') .option('-o, --output <fields...>', 'Output fields') .action(async (method, options) => { try { const paramsObject = options.params ? parseKeyValueParams(options.params) : {}; const outputFields = options.output || []; const apiMethod = client[method]; if (!apiMethod) { console.error(`❌ Unknown method: ${method}`); process.exit(1); } // eslint-disable-next-line @typescript-eslint/no-explicit-any const result = await apiMethod(paramsObject); if (outputFields.length > 0) { const filteredResult = outputFields.reduce((acc, field) => { acc[field] = result[field]; return acc; }, {}); console.log(JSON.stringify(filteredResult, null, 2)); } else { console.log(JSON.stringify(result, null, 2)); } } catch (error) { console.error('❌ Error:', error instanceof Error ? error.message : String(error)); process.exit(1); } }); exports.program.parseAsync(process.argv); //# sourceMappingURL=cli.js.map