cli: parse json params
This commit is contained in:
parent
e87f628e7a
commit
61caf6974a
|
@ -3,6 +3,7 @@
|
|||
var program = require('commander');
|
||||
var path = require('path');
|
||||
var bitcorenode = require('..');
|
||||
var utils = require('../utils');
|
||||
|
||||
function main(servicesPath, additionalServices) {
|
||||
/* jshint maxstatements: 100 */
|
||||
|
@ -124,7 +125,8 @@ function main(servicesPath, additionalServices) {
|
|||
program
|
||||
.command('call <method> [params...]')
|
||||
.description('Call an API method')
|
||||
.action(function(method, params) {
|
||||
.action(function(method, paramsArg) {
|
||||
var params = utils.parseParamsWithJSON(paramsArg);
|
||||
var configInfo = findConfig(process.cwd());
|
||||
if (!configInfo) {
|
||||
configInfo = defaultConfig();
|
||||
|
|
13
lib/utils.js
13
lib/utils.js
|
@ -26,4 +26,17 @@ if (!utils.isAbsolutePath) {
|
|||
utils.isAbsolutePath = require('path-is-absolute');
|
||||
}
|
||||
|
||||
utils.parseParamsWithJSON = function parseParamsWithJSON(paramsArg) {
|
||||
var params = paramsArg.map(function(paramArg) {
|
||||
var param;
|
||||
try {
|
||||
param = JSON.parse(paramArg);
|
||||
} catch(err) {
|
||||
param = paramArg;
|
||||
}
|
||||
return param;
|
||||
});
|
||||
return params;
|
||||
};
|
||||
|
||||
module.exports = utils;
|
||||
|
|
|
@ -130,4 +130,22 @@ describe('Utils', function() {
|
|||
|
||||
});
|
||||
|
||||
describe('#parseParamsWithJSON', function() {
|
||||
it('will parse object', function() {
|
||||
var paramsArg = ['3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou', '{"start": 100, "end": 1}'];
|
||||
var params = utils.parseParamsWithJSON(paramsArg);
|
||||
params.should.deep.equal(['3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou', {start: 100, end: 1}]);
|
||||
});
|
||||
it('will parse array', function() {
|
||||
var paramsArg = ['3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou', '[0, 1]'];
|
||||
var params = utils.parseParamsWithJSON(paramsArg);
|
||||
params.should.deep.equal(['3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou', [0, 1]]);
|
||||
});
|
||||
it('will parse numbers', function() {
|
||||
var paramsArg = ['3', 0, 'b', '0', 0x12, '0.0001'];
|
||||
var params = utils.parseParamsWithJSON(paramsArg);
|
||||
params.should.deep.equal([3, 0, 'b', 0, 0x12, 0.0001]);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue