stratumn-sdk
Version:
Stratumn SDK for Javascript
43 lines (35 loc) • 991 B
JavaScript
import { post } from './request';
import config from './config';
export default function linkify(app, obj) {
Object
.keys(app.agentInfo.functions)
.filter(key => ['init', 'catchAll'].indexOf(key) < 0)
.forEach(key => {
/*eslint-disable*/
obj[key] = (...args) => {
const url = `${config.applicationUrl.replace('%s', app.name)}/links/${obj.meta.linkHash}/${key}`;
/*eslint-enable*/
return post(url, args)
.then(res => linkify(app, res.body));
};
});
/*eslint-disable*/
obj.getPrev = () => {
/*eslint-enable*/
if (obj.link.meta.prevLinkHash) {
return app.getLink(obj.link.meta.prevLinkHash);
}
return Promise.resolve(null);
};
/*eslint-disable*/
obj.getBranches = tags => {
/*eslint-enable*/
return app.getBranches(obj.meta.linkHash, tags);
};
/*eslint-disable*/
obj.load = () => {
/*eslint-enable*/
return app.getLink(obj.meta.linkHash);
};
return obj;
}