Skip to content

Instantly share code, notes, and snippets.

@rxaviers
Last active December 14, 2015 21:58
Show Gist options
  • Select an option

  • Save rxaviers/5154532 to your computer and use it in GitHub Desktop.

Select an option

Save rxaviers/5154532 to your computer and use it in GitHub Desktop.
diff --git a/download.js b/download.js
index c20b0a7..c4027db 100644
--- a/download.js
+++ b/download.js
@@ -71,7 +71,7 @@ Frontend.prototype = {
});
},
- create: function( fields, response, callback ) {
+ create: function( fields, request, response, callback ) {
try {
var builder, components, theme,
themeVars = null;
@@ -88,9 +88,18 @@ Frontend.prototype = {
version: fields.version
});
components = Object.keys( _.omit( fields, "scope", "theme", "theme-folder-name", "version" ) );
- builder = new Builder( Release.find( fields.version ), components, theme, {
- scope: fields.scope
- });
+ try {
+ builder = new Builder( Release.find( fields.version ), components, theme, {
+ scope: fields.scope
+ });
+ } catch (err) {
+ logger.error( request.headers.referer );
+ var form = require( "formidable" ).IncomingForm();
+ form.parse( request, function( err, fields, files ) {
+ logger.error( fields );
+ });
+ throw err;
+ }
response.setHeader( "Content-Type", "application/zip" );
response.setHeader( "Content-Disposition", "attachment; filename=" + builder.filename() );
builder.writeTo( response, function( err ) {
diff --git a/lib/release.js b/lib/release.js
index a88b3e9..8492960 100644
--- a/lib/release.js
+++ b/lib/release.js
@@ -144,9 +144,16 @@ Release.getStable = function() {
};
Release.find = function( version ) {
- return Release.all().filter(function( release ) {
+ if ( !version ) {
+ throw new Error( "Invalid version argument: " + version );
+ }
+ var match = Release.all().filter(function( release ) {
return release.pkg.version === version;
- })[ 0 ];
+ });
+ if ( !match.length ) {
+ throw new Error( "Didn't find a release for version: " + version );
+ }
+ return match[ 0 ];
};
Release.prototype = {
diff --git a/server.js b/server.js
index e13df9c..e6608ee 100755
--- a/server.js
+++ b/server.js
@@ -62,7 +62,7 @@ function route( app ) {
if ( err ) {
return error( err, response );
}
- frontend.download.create( fields, response, function( err ) {
+ frontend.download.create( fields, request, response, function( err ) {
if ( err ) {
return error( err, response );
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment