Merge pull request #1 from 1stvamp/offline-only

Add ENABLE_NPM_FAILOVER config with offline only mode
This commit is contained in:
2016-05-05 19:04:15 +05:30
3 changed files with 21 additions and 5 deletions
+6
View File
@@ -42,3 +42,9 @@ I believe all the above said tools will be available in a typical UNIX machine.
# Configurations
Please check config.js. All config values can be over-written by `environment-variables`
# Using npm-offline-registry as a completely isolated registry
If you set the ``ENABLE_NPM_FAILOVER`` config value to ``false`` then npm-offlin-registry will not attempt to
contact the upstream NPM registry for unknown packages and instead return a 404 response, meaning you can use
it as an alternative to the NPM registry behind a firewall / isolated from the internet.
+13 -4
View File
@@ -4,6 +4,7 @@ var utils = require( __dirname + '/./utils');
var NPM_PATH = config.NPM_PATH;
var REGISTRY_NAME = config.REGISTRY_NAME;
var ENABLE_NPM_FAILOVER = config.ENABLE_NPM_FAILOVER;
var fetchAndCacheMetadata = utils.fetchAndCacheMetadata;
@@ -36,8 +37,12 @@ app.get( '/:package', function( req, res, next ){
return fileExists( cacheFile )
.tap( function( isExists ){
if( !isExists ){
res._log.cacheHit = '---';
return fetchAndCacheMetadata( packageName, cacheFile );
if ( ENABLE_NPM_FAILOVER ) {
res._log.cacheHit = '---';
return fetchAndCacheMetadata( packageName, cacheFile );
} else {
return res.status( 404 ).json( {} );
}
}
})
.then( function( ){
@@ -60,8 +65,12 @@ app.get( '/:package/-/:tarball', function( req, res, next ){
fileExists( packagePath )
.tap( function( isExists ){
if( !isExists ){
res._log.cacheHit = '---';
return fetchAndCacheTarball( packageName, version, packagePath );
if ( ENABLE_NPM_FAILOVER ) {
res._log.cacheHit = '---';
return fetchAndCacheTarball( packageName, version, packagePath );
} else {
return res.status( 404 ).json( {} );
}
}
})
.then( function(){
+2 -1
View File
@@ -2,7 +2,8 @@
var defaultConfig = {
NPM_PATH : process.env.HOME + '/.npm',
REGISTRY_NAME : 'registry.npmjs.org',
PORT: 8234
PORT: 8234,
ENABLE_NPM_FAILOVER: true
};
var config = {};