UNPKG

@readme/nodegit

Version:

Node.js libgit2 asynchronous native bindings

40 lines (31 loc) 1.1 kB
var NodeGit = require("../../"); /** * Wraps a method so that you can pass in either a string, OID or the object * itself and you will always get back a promise that resolves to the object. * @param {Object} objectType The object type that you're expecting to receive. * @param {Function} lookupFunction The function to do the lookup for the * object. Defaults to `objectType.lookup`. * @return {Function} */ function lookupWrapper(objectType, lookupFunction) { lookupFunction = lookupFunction || objectType.lookup; return function(repo, id, callback) { if (id instanceof objectType) { return Promise.resolve(id).then(function(obj) { obj.repo = repo; if (typeof callback === "function") { callback(null, obj); } return obj; }, callback); } return lookupFunction(repo, id).then(function(obj) { obj.repo = repo; if (typeof callback === "function") { callback(null, obj); } return obj; }, callback); }; } NodeGit.Utils.lookupWrapper = lookupWrapper;