ifnode
Advanced tools
Comparing version 1.9.0 to 1.9.1
@@ -12,3 +12,3 @@ 'use strict'; | ||
var pathWithoutExtension = require('./helper/pathWithoutExtension'); | ||
var tryCatch = require('./helper/tryCatch'); | ||
var requireWithSkippingOfMissedModuleError = require('./helper/requireWithSkippingOfMissedModuleError'); | ||
@@ -469,5 +469,3 @@ var debug = require('debug')('ifnode:application'); // eslint-disable-line | ||
Module = tryCatch(function() { | ||
return require(module_name); | ||
}); | ||
Module = requireWithSkippingOfMissedModuleError(module_name); | ||
@@ -480,5 +478,9 @@ if(Module) { | ||
Module = tryCatch(function() { | ||
return self.extension(module_name); | ||
}); | ||
try { | ||
Module = this.extension(module_name); | ||
} catch (error) { | ||
if (!/Cannot\sfind\sextension/.test(error.message)) { | ||
throw error; | ||
} | ||
} | ||
@@ -485,0 +487,0 @@ if(Module) { |
'use strict'; | ||
var Path = require('path'); | ||
var requireWithSkippingOfMissedModuleError = require('./../helper/requireWithSkippingOfMissedModuleError'); | ||
var Log = require('./../Log'); | ||
@@ -23,14 +24,11 @@ | ||
var extension_path = Path.resolve(this._start_load_point, id); | ||
var extension = requireWithSkippingOfMissedModuleError(extension_path); | ||
try { | ||
return require(extension_path); | ||
} catch(error) { | ||
if(error.message.indexOf(extension_path) === -1) { | ||
throw error; | ||
} else { | ||
Log.error('extensions', 'Cannot find extension by [' + id + '].'); | ||
} | ||
if(!extension) { | ||
Log.error('extensions', 'Cannot find extension by [' + id + '].'); | ||
} | ||
return extension; | ||
}; | ||
module.exports = Extension; |
@@ -294,3 +294,4 @@ 'use strict'; | ||
var config = require(options.config_path); | ||
var cloneDeep = require('lodash/cloneDeep'); | ||
var config = cloneDeep(require(options.config_path)); | ||
// var config = Object.create(ConfigPrototype); | ||
@@ -297,0 +298,0 @@ |
{ | ||
"name": "ifnode", | ||
"version": "1.9.0", | ||
"version": "1.9.1", | ||
"description": "Node.js MVC Framework", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
'use strict'; | ||
var assert = require('assert'); | ||
var Path = require('path'); | ||
@@ -98,7 +99,19 @@ var Should = require('should'); | ||
(function() { | ||
try { | ||
app.register('non-exists-plugin'); | ||
}).should.throw(); | ||
} catch (error) { | ||
assert.ok(/Cannot\sfind\snode\smodule\sor\sextension/.test(error.message)); | ||
} | ||
}); | ||
it('should throw original error', function() { | ||
var app = require('../examples/extensions/app'); | ||
try { | ||
app.register('with-syntax-error'); | ||
} catch (error) { | ||
assert.ok(error instanceof SyntaxError); | ||
} | ||
}); | ||
it('load by extension name', function(done) { | ||
@@ -105,0 +118,0 @@ var app = IFNode({ |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
160160
167
4732
15