mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-12 05:48:57 +00:00
35 lines
849 B
JavaScript
35 lines
849 B
JavaScript
var Immutable = require('immutable');
|
|
|
|
var Promise = require('../utils/promise');
|
|
var timing = require('../utils/timing');
|
|
var findInstalled = require('./findInstalled');
|
|
var locateRootFolder = require('./locateRootFolder');
|
|
|
|
/**
|
|
* List all plugins installed in a book
|
|
*
|
|
* @param {Book}
|
|
* @return {Promise<OrderedMap<String:Plugin>>}
|
|
*/
|
|
function findForBook(book) {
|
|
return timing.measure(
|
|
'plugins.findForBook',
|
|
|
|
Promise.all([
|
|
findInstalled(locateRootFolder()),
|
|
findInstalled(book.getRoot())
|
|
])
|
|
|
|
// Merge all plugins
|
|
.then(function(results) {
|
|
return Immutable.List(results)
|
|
.reduce(function(out, result) {
|
|
return out.merge(result);
|
|
}, Immutable.OrderedMap());
|
|
})
|
|
);
|
|
}
|
|
|
|
|
|
module.exports = findForBook;
|