diff options
Diffstat (limited to 'lib/plugins/findInstalled.js')
-rw-r--r-- | lib/plugins/findInstalled.js | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/lib/plugins/findInstalled.js b/lib/plugins/findInstalled.js index 5e13c79..2259230 100644 --- a/lib/plugins/findInstalled.js +++ b/lib/plugins/findInstalled.js @@ -1,7 +1,9 @@ var readInstalled = require('read-installed'); var Immutable = require('immutable'); +var path = require('path'); var Promise = require('../utils/promise'); +var fs = require('../utils/fs'); var Plugin = require('../models/plugin'); var PREFIX = require('../constants/pluginPrefix'); @@ -56,9 +58,28 @@ function findInstalled(folder) { }); } - return Promise.nfcall(readInstalled, folder, options) - .then(function(data) { - onPackage(data, true); + // Search for gitbook-plugins in node_modules folder + var node_modules = path.join(folder, 'node_modules'); + + // List all folders in node_modules + return fs.readdir(node_modules) + .then(function(modules) { + return Promise.serie(modules, function(module) { + // Not a gitbook-plugin + if (!validateId(module)) { + return Promise(); + } + + // Read gitbook-plugin package details + var module_folder = path.join(node_modules, module); + return Promise.nfcall(readInstalled, module_folder, options) + .then(function(data) { + onPackage(data, true); + }); + }); + }) + .then(function() { + // Return installed plugins return results; }); } |