diff options
Diffstat (limited to 'lib/plugins/findInstalled.js')
-rw-r--r-- | lib/plugins/findInstalled.js | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/lib/plugins/findInstalled.js b/lib/plugins/findInstalled.js index dca3cbf..06cc6c4 100644 --- a/lib/plugins/findInstalled.js +++ b/lib/plugins/findInstalled.js @@ -8,21 +8,21 @@ var Plugin = require('../models/plugin'); var PREFIX = require('../constants/pluginPrefix'); /** - Validate if a package name is a GitBook plugin - - @return {Boolean} -*/ + * Validate if a package name is a GitBook plugin + * + * @return {Boolean} + */ function validateId(name) { return name && name.indexOf(PREFIX) === 0; } /** - List all packages installed inside a folder - - @param {String} folder - @return {OrderedMap<String:Plugin>} -*/ + * List all packages installed inside a folder + * + * @param {String} folder + * @return {OrderedMap<String:Plugin>} + */ function findInstalled(folder) { var options = { dev: false, @@ -31,7 +31,7 @@ function findInstalled(folder) { }; var results = Immutable.OrderedMap(); - function onPackage(pkg, isRoot) { + function onPackage(pkg, parent) { if (!pkg.name) return; var name = pkg.name; @@ -43,18 +43,19 @@ function findInstalled(folder) { var pluginName = name.slice(PREFIX.length); if (!validateId(name)){ - if (!isRoot) return; + if (parent) return; } else { results = results.set(pluginName, Plugin({ name: pluginName, version: version, path: pkgPath, - depth: depth + depth: depth, + parent: parent })); } Immutable.Map(dependencies).forEach(function(dep) { - onPackage(dep); + onPackage(dep, pluginName); }); } @@ -77,7 +78,7 @@ function findInstalled(folder) { var module_folder = path.join(node_modules, module); return Promise.nfcall(readInstalled, module_folder, options) .then(function(data) { - onPackage(data, true); + onPackage(data); }); }); }) |