db-migrate
Advanced tools
Comparing version 0.11.5 to 0.11.6
@@ -0,1 +1,24 @@ | ||
## [0.11.6](https://github.com/db-migrate/node-db-migrate/compare/v0.11.5...v0.11.6) (2019-06-08) | ||
### Bug Fixes | ||
* **cwd:** addition of cwd missed function definition ([fae85cf](https://github.com/db-migrate/node-db-migrate/commit/fae85cf)) | ||
* **plugin:** allow no package.json ([f27dce0](https://github.com/db-migrate/node-db-migrate/commit/f27dce0)) | ||
* **plugin:** handle non existent dependencies and improve UX ([006ef5e](https://github.com/db-migrate/node-db-migrate/commit/006ef5e)), closes [#628](https://github.com/db-migrate/node-db-migrate/issues/628) | ||
* **plugin:** respect options cwd ([#618](https://github.com/db-migrate/node-db-migrate/issues/618)) ([3dae762](https://github.com/db-migrate/node-db-migrate/commit/3dae762)) | ||
<a name="0.11.5"></a> | ||
## [0.11.5](https://github.com/db-migrate/node-db-migrate/compare/v0.11.4...v0.11.5) (2019-01-06) | ||
### Bug Fixes | ||
* **db:** set exit code as 1 only on error ([3148cc9](https://github.com/db-migrate/node-db-migrate/commit/3148cc9)) | ||
* Added warning on plugin loading failure ([fcffd62](https://github.com/db-migrate/node-db-migrate/commit/fcffd62)) | ||
* **lgtm:** fix errors ([4cd5558](https://github.com/db-migrate/node-db-migrate/commit/4cd5558)) | ||
<a name="0.11.3"></a> | ||
@@ -2,0 +25,0 @@ ## [0.11.3](https://github.com/db-migrate/node-db-migrate/compare/v0.11.2...v0.11.3) (2018-09-08) |
44
index.js
@@ -8,9 +8,26 @@ require('pkginfo')(module, 'version'); // jshint ignore:line | ||
function loadPluginList () { | ||
var plugins = JSON.parse( | ||
fs.readFileSync(path.join(process.cwd(), 'package.json'), 'utf-8') | ||
); | ||
function loadPluginList (options) { | ||
try { | ||
fs.accessSync(path.join(options.cwd, 'package.json'), fs.constants.R_OK); | ||
} catch (err) { | ||
throw new Error( | ||
'There was no package.json found in the current working dir!', | ||
options.cwd | ||
); | ||
} | ||
try { | ||
var plugins = JSON.parse( | ||
fs.readFileSync(path.join(options.cwd, 'package.json'), 'utf-8') | ||
); | ||
} catch (err) { | ||
throw new Error('Error parsing package.json', err); | ||
} | ||
var targets = []; | ||
plugins = Object.assign(plugins.dependencies, plugins.devDependencies); | ||
plugins = Object.assign( | ||
plugins.dependencies || {}, | ||
plugins.devDependencies || {} | ||
); | ||
@@ -24,4 +41,4 @@ for (var plugin in plugins) { | ||
function loadPlugins () { | ||
var plugins = loadPluginList(); | ||
function loadPlugins (options) { | ||
var plugins = loadPluginList(options); | ||
var i = 0; | ||
@@ -32,3 +49,3 @@ var length = plugins.length; | ||
for (; i < length; ++i) { | ||
var plugin = require(path.join(process.cwd(), 'node_modules', plugins[i])); | ||
var plugin = require(path.join(options.cwd, 'node_modules', plugins[i])); | ||
@@ -52,3 +69,7 @@ if ( | ||
module.exports.getInstance = function (isModule, options, callback) { | ||
module.exports.getInstance = function ( | ||
isModule, | ||
options = { cwd: process.cwd() }, | ||
callback | ||
) { | ||
delete require.cache[require.resolve('./api.js')]; | ||
@@ -60,5 +81,6 @@ delete require.cache[require.resolve('optimist')]; | ||
try { | ||
if (!options || !options.noPlugins) plugins = loadPlugins(); | ||
if (!options || !options.noPlugins) plugins = loadPlugins(options); | ||
} catch (ex) { | ||
log.warn(ex); | ||
log.verbose('No plugin could be loaded!'); | ||
log.verbose(ex); | ||
} | ||
@@ -65,0 +87,0 @@ |
@@ -34,3 +34,3 @@ { | ||
], | ||
"version": "0.11.5", | ||
"version": "0.11.6", | ||
"engines": { | ||
@@ -37,0 +37,0 @@ "node": ">=0.6.0" |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
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
141837
3526