Skip to content
Snippets Groups Projects
Commit 986cd8fb authored by yamadapc's avatar yamadapc
Browse files

Generate methods from the definition

parent a092d82e
No related branches found
No related tags found
No related merge requests found
var Steem = require('./api');
var methods = require('./methods.json'); var methods = require('./methods.json');
var snakeCaseRe = /_([a-z])/g var snakeCaseRe = /_([a-z])/g
...@@ -8,40 +7,42 @@ function camelCase(str) { ...@@ -8,40 +7,42 @@ function camelCase(str) {
}); });
} }
exports = module.exports = methods.reduce(function (memo, method) { exports = module.exports = function generateMethods(Steem) {
var methodName = camelCase(method.method); methods.reduce(function (memo, method) {
var methodName = camelCase(method.method);
memo[methodName + 'With'] =
function Steem$specializedSendWith(options, callback) { memo[methodName + 'With'] =
var params = method.params.map(function (param) { function Steem$specializedSendWith(options, callback) {
return options[param]; var params = method.params.map(function (param) {
}); return options[param];
var iterator = Steem.iterate(); });
var iterator = Steem.iterate();
return Steem.send(method.api, {
id: iterator, return Steem.send(method.api, {
method: method.method, id: iterator,
params: params, method: method.method,
}, function (err, data) { params: params,
if (err) return callback(err); }, function (err, data) {
if (data && data.id === iterator) return callback(err, data.result); if (err) return callback(err);
// TODO - Do something here if (data && data.id === iterator) return callback(err, data.result);
}); // TODO - Do something here
}; });
};
memo[methodName] =
function Steem$specializedSend() { memo[methodName] =
var args = arguments; function Steem$specializedSend() {
var options = method.params.reduce(function (memo, param, i) { var args = arguments;
memo[param] = args[i]; var options = method.params.reduce(function (memo, param, i) {
return memo; memo[param] = args[i];
}, {}); return memo;
var callback = args[method.params.length]; }, {});
memo[methodName + 'With'](options, callback); var callback = args[method.params.length];
}; memo[methodName + 'With'](options, callback);
};
return memo;
}, {}); return memo;
}, Steem);
};
/* /*
......
This diff is collapsed.
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"description": "Steem.js the JavaScript API for Steem blockchain", "description": "Steem.js the JavaScript API for Steem blockchain",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "node test.js", "test": "mocha --require babel-register",
"build": "browserify lib/browser.js -o examples/steem.js && uglifyjs examples/steem.js -o examples/steem.min.js && uglifyjs examples/steem.js -o steem.min.js" "build": "browserify lib/browser.js -o examples/steem.js && uglifyjs examples/steem.js -o examples/steem.min.js && uglifyjs examples/steem.js -o steem.min.js"
}, },
"browser": { "browser": {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment