Skip to content

Commit cb7d094

Browse files
committed
Refactored reference.js
1 parent c3b7c39 commit cb7d094

File tree

1 file changed

+46
-29
lines changed

1 file changed

+46
-29
lines changed

lib/reference.js

Lines changed: 46 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,54 @@
1-
var git = require('../');
1+
var git = require('../'),
2+
success = require('./utilities').success;
23

3-
var Reference = function(rawReference) {
4-
var self = {};
5-
6-
if(rawReference instanceof git.raw.Reference) {
7-
self.reference = rawReference;
8-
} else if(rawReference instanceof git.raw.Repo) {
9-
self.repo = rawReference;
10-
self.reference = new git.raw.Reference(rawReference);
4+
/**
5+
* Convenience reference constructor.
6+
*
7+
* @constructor
8+
* @param {git.raw.Repo} rawRepo
9+
* @param {git.raw.Reference|null} rawReference
10+
*/
11+
var Reference = function(rawRepo, rawReference) {
12+
if (!(rawRepo instanceof git.raw.Repo)) {
13+
throw git.error('First parameter for Reference must be a raw repo');
1114
}
15+
this.rawRepo = rawRepo;
1216

13-
self.lookup = function(name, callback) {
14-
self.reference.lookup(self.repo, name, function(error, reference) {
15-
if (error) {
16-
callback(git.error(error), self);
17-
return;
18-
}
19-
self.reference = reference;
20-
callback(null, self);
21-
});
22-
};
17+
if (rawReference instanceof git.raw.Reference) {
18+
this.rawReference = rawReference;
19+
} else {
20+
this.rawReference = new git.raw.Reference(this.rawRepo);
21+
}
22+
};
2323

24-
self.oid = function(callback) {
25-
self.reference.oid(function(error, rawOid) {
26-
if (error) {
27-
callback(git.error(error, self));
28-
return;
29-
}
30-
callback(null, git.oid(rawOid));
31-
});
32-
};
24+
/**
25+
* Lookup the reference with the given name.
26+
*
27+
* @param {String} name
28+
* @param {Function} callback
29+
*/
30+
Reference.prototype.lookup = function(name, callback) {
31+
var self = this;
32+
self.rawReference.lookup(self.rawRepo, name, function referenceLookup(error, rawReference) {
33+
if (!success(error, callback)) {
34+
return;
35+
}
36+
self.rawReference = rawReference;
37+
callback(null, self);
38+
});
39+
};
3340

34-
return self;
41+
/**
42+
* Get the Oid representing this reference.
43+
*
44+
* @param {Function} callback
45+
*/
46+
Reference.prototype.oid = function(callback) {
47+
this.rawReference.oid(function referenceOid(error, rawOid) {
48+
if (success(error, callback)) {
49+
callback(null, new git.oid(rawOid));
50+
}
51+
});
3552
};
3653

3754
exports.reference = Reference;

0 commit comments

Comments
 (0)