summaryrefslogtreecommitdiffstats
path: root/lib/plugins/findInstalled.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/plugins/findInstalled.js')
-rw-r--r--lib/plugins/findInstalled.js29
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);
});
});
})