Skip to content

Commit

Permalink
Merge pull request #52 from Rich-Harris/feat-remove-http-errors
Browse files Browse the repository at this point in the history
 remove HTTP error in AWS
  • Loading branch information
xtuc committed Jun 28, 2018
2 parents 3c203ad + 7c23b08 commit 9b68a00
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 16 deletions.
11 changes: 10 additions & 1 deletion config.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,17 @@ if (process.env.AWS) {
'X-Content-Type-Options': 'nosniff',
'Access-Control-Allow-Origin': '*',
'Access-Control-Request-Method': 'GET',
'X-Powered-By': 'https://github.com/rich-Harris/packd',
'X-Powered-By': 'https://github.com/rich-harris/packd',
'Strict-Transport-Security': `max-age=${cacheExpiration}; includeSubDomains; preload`,
};

exports.onBadRequest = function (res) {
res.status( 200 );
};

exports.onError = function (res) {
// error will be propagated in the logs
res.status( 200 );
};
}

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "packd",
"version": "2.6.5",
"version": "2.6.6",
"description": "Simple alternative to browserify-cdn",
"scripts": {
"start": "node server",
Expand Down
2 changes: 0 additions & 2 deletions server/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,6 @@ app.get( '/', ( req, res ) => {

app.use( servePackage );

// TODO 404

app.listen( port, () => {
logger.log( `started at ${new Date().toUTCString()}` );
console.log( 'listening on localhost:' + port );
Expand Down
17 changes: 5 additions & 12 deletions server/serve-package.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ const cache = require( './cache.js' );
const etag = require('etag');
const sha1 = require('sha1');

const { sendBadRequest, sendError } = require( './utils/responses.js' );
const { root, registry, additionalBundleResHeaders } = require( '../config.js' );

function stringify ( query ) {
Expand All @@ -23,9 +24,7 @@ module.exports = function servePackage ( req, res, next ) {

if ( !match ) {
// TODO make this prettier
res.status( 400 );
res.end( 'Invalid module ID' );
return;
return sendBadRequest(res, 'Invalid module ID' );
}

const user = match[1];
Expand All @@ -50,20 +49,15 @@ module.exports = function servePackage ( req, res, next ) {
if ( !meta.versions ) {
logger.error( `[${qualified}] invalid module` );

res.status( 400 );
res.end( 'invalid module' );

return;
return sendBadRequest(res, 'invalid module' );
}

const version = findVersion( meta, tag );

if ( !semver.valid( version ) ) {
logger.error( `[${qualified}] invalid tag` );

res.status( 400 );
res.end( 'invalid tag' );
return;
return sendBadRequest(res, 'invalid tag' );
}

if ( version !== tag ) {
Expand Down Expand Up @@ -92,11 +86,10 @@ module.exports = function servePackage ( req, res, next ) {
})
.catch( err => {
logger.error( `[${qualified}] ${err.message}`, err.stack );
res.status( 500 );
const page = sander.readFileSync( `${root}/server/templates/500.html`, { encoding: 'utf-8' })
.replace( '__ERROR__', err.message );

res.end( page );
sendError(res, page);
});
};

Expand Down
21 changes: 21 additions & 0 deletions server/utils/responses.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
const { onBadRequest, onError } = require( '../../config.js' );

module.exports.sendBadRequest = function sendBadRequest (res, msg) {
res.status( 400 );

if (typeof onBadRequest === 'function') {
onBadRequest(res);
}

res.end( msg );
};

module.exports.sendError = function sendError (res, msg) {
res.status( 500 );

if (typeof onError === 'function') {
onError(res);
}

res.end( msg );
};

0 comments on commit 9b68a00

Please sign in to comment.