UNPKG

honkit

Version:

HonKit is building beautiful books using Markdown.

50 lines (48 loc) 1.72 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const is_1 = __importDefault(require("is")); const immutable_1 = __importDefault(require("immutable")); const promise_1 = __importDefault(require("../../utils/promise")); const api_1 = __importDefault(require("../../api")); /** Prepare plugins resources, add all output corresponding type resources @param {Output} @return {Promise<Output>} */ function prepareResources(output) { const plugins = output.getPlugins(); const options = output.getOptions(); const type = options.get("prefix"); let state = output.getState(); const context = api_1.default.encodeGlobal(output); let result = immutable_1.default.Map(); return promise_1.default.forEach(plugins, (plugin) => { const pluginResources = plugin.getResources(type); return (0, promise_1.default)() .then(() => { // Apply resources if is a function if (is_1.default.fn(pluginResources)) { return (0, promise_1.default)().then(pluginResources.bind(context)); } else { return pluginResources; } }) .then((resources) => { result = result.set(plugin.getName(), immutable_1.default.Map(resources)); }); }).then(() => { // Set output resources state = state.merge({ resources: result }); output = output.merge({ state: state }); return output; }); } exports.default = prepareResources;