"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const listDepsForBook_1 = __importDefault(require("./listDepsForBook")); const loadPlugin_1 = require("./loadPlugin"); const PluginResolver_1 = require("./PluginResolver"); /** * Load all plugins in a book * * @param {Book} * @return {Promise} */ function loadForBook(book) { const logger = book.getLogger(); // List the dependencies are defined in book.js /** * @type {List} */ const requirements = (0, listDepsForBook_1.default)(book); const pluginResolver = new PluginResolver_1.PluginResolver(); const installedPlugins = requirements.map((dep) => { const name = dep.getName(); return dep.merge({ path: pluginResolver.resolvePluginPackageName(name) }); }); // Log state logger.info.ln(`${installedPlugins.size} plugins are installed`); if (requirements.size !== installedPlugins.length) { logger.info.ln(`${requirements.size} explicitly listed`); } return Promise.all(installedPlugins.map((plugin) => { return (0, loadPlugin_1.loadPlugin)(book, plugin); })); } exports.default = loadForBook;