across-bridge-v3-sdk
Version:
Light-weighted SDK for interacting with Across V3 API
56 lines • 2.02 kB
JavaScript
;
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