Skip to content

Commit

Permalink
Passes tests for statuses
Browse files Browse the repository at this point in the history
  • Loading branch information
jfhbrook committed Jan 26, 2014
1 parent 3122b03 commit 735e4ed
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 23 deletions.
7 changes: 5 additions & 2 deletions bundler/cache.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,14 @@ var Cache = function (name, db, opts) {
};

Cache.prototype.get = function get(key, cb) {
this.db.get(this.hashfxn(key), cb);
this.db.get(this.hashfxn(key), function (err, v) {
if (err) return cb(err);
return cb(null, JSON.parse(v));
});
};

Cache.prototype.put = function put(key, val, cb) {
this.db.put(this.hashfxn(key), val, cb);
this.db.put(this.hashfxn(key), JSON.stringify(val), cb);
};

Cache.prototype.check = function check(body, generate, cb) {
Expand Down
33 changes: 27 additions & 6 deletions bundler/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ var path = require('path'),
EventEmitter = require('events').EventEmitter;

var log = require('minilog')('bundler'),
xtend = require('xtend');
xtend = require('xtend'),
waitress = require('waitress');

var cache = require('./cache'),
core = require('./node-core'),
Expand Down Expand Up @@ -129,7 +130,7 @@ module.exports = function bundler(opts) {
var result = { package: json, bundle: bundle };

// Save build metadata to c.builds
c.statuses.put(pkg, { module: module, version: version, ok: true });
c.statuses.put(pkg, { module: module, version: version, built: true, ok: true });

inProgress[key].emit('bundle', result);
destroyInProgress();
Expand All @@ -147,6 +148,7 @@ module.exports = function bundler(opts) {
c.statuses.db.put(pkg, {
module: module,
version: version,
built: true,
ok: false,
error: xtend(
{
Expand All @@ -168,6 +170,7 @@ module.exports = function bundler(opts) {
}
};

_bundle.alias = alias;
function alias(module, semver, callback) {
c.aliases.check({ module: module, semver: semver }, function resolve(cb) {
registry.resolve(module, semver, function (err, v) {
Expand All @@ -178,16 +181,34 @@ module.exports = function bundler(opts) {
}, callback);
}

_bundle.status = function status(module, semver, callback) {
registry.resolve(module, semver, function (err, versions) {
_bundle.status = status;
function status(module, semver, callback) {
registry.versions(module, semver, function (err, vs) {
if (err) return callback(err);

_bundle.builds.get({ module: module, version: version }, callback);
var sts = {},
finish = waitress(vs.length, function (err) {
if (err) return callback(err);
callback(null, sts);
});

vs.forEach(function (v) {
c.statuses.get({ module: module, version: v }, function (err, st) {
if (err) {
if (err.name == 'NotFoundError') {
sts[v] = { built: false };
return finish();
}
return finish(err);
}
sts[v] = st;
finish();
});
});
});
}

_bundle.cache = c;
_bundle.alias = alias;

return _bundle;
};
11 changes: 8 additions & 3 deletions bundler/registry.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ registry.metadata = function metadata(module, cb) {
};

registry.resolve = function resolve(module, version, cb) {
registry.versions(module, version, function (err, vs) {
if (err) return cb(err);
cb(null, vs[0]);
});
};

registry.versions = function versions(module, version, cb) {
registry.metadata(module, function (err, data) {
if (err) {
return cb(err);
Expand All @@ -44,7 +51,7 @@ registry.resolve = function resolve(module, version, cb) {

try {
if (version === 'latest') {
v = data['dist-tags'].latest;
v = [data['dist-tags'].latest];
}
else if (!semver.validRange(version)) {
console.log('not a valid range ' + version);
Expand All @@ -53,7 +60,6 @@ registry.resolve = function resolve(module, version, cb) {
.filter(function (v) {
return v === version;
})
[0]
;
}
else {
Expand All @@ -64,7 +70,6 @@ registry.resolve = function resolve(module, version, cb) {
.sort(function (a, b) {
return semver.lte(a, b);
})
[0]
;
}
}
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@
"cors": "~2.1.1",
"npm-publish-stream": "~0.3.1",
"glob": "3.2.6",
"xtend": "~2.1.2"
"xtend": "~2.1.2",
"waitress": "~0.1.5"
},
"bundledDependencies": [
"temp",
Expand Down
13 changes: 2 additions & 11 deletions statuses.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ function status(bundle) {
semver,
subfile = module.split('/');

var serve = serveBundle(res);

if (t.length) {
semver = t.shift();
}
Expand All @@ -28,22 +26,15 @@ function status(bundle) {
subfile = subfile.join('/');
}

bundle.status(module, semver, function (err, st) {
bundle.status(module, semver, function (err, sts) {
if (err) {
if (err.code == 'NotFoundError') {
return res.json(404, {
message: 'This module has not been built yet.',
hints: 'Try GETing /bundle/' + module + '@' + version
});
}

return res.json(500, {
ok: false,
message: err.message,
hints: stringifyError.goodbye
});
}
res.json(st);
res.json(sts);
});
};
}

0 comments on commit 735e4ed

Please sign in to comment.