honkit
Version:
HonKit is building beautiful books using Markdown.
42 lines (41 loc) • 1.64 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const immutable_1 = __importDefault(require("immutable"));
const path_1 = __importDefault(require("path"));
const location_1 = __importDefault(require("../utils/location"));
const pluginResources_1 = __importDefault(require("../constants/pluginResources"));
/**
List all resources from a list of plugins
@return {Map<String:List<{url, path}>}
*/
function listResources(plugins, resources) {
return plugins.reduce((result, plugin) => {
const npmId = plugin.getNpmID();
const pluginResources = resources.get(plugin.getName());
pluginResources_1.default.forEach((resourceType) => {
let assets = pluginResources.get(resourceType);
if (!assets)
return;
let list = result.get(resourceType) || immutable_1.default.List();
assets = assets.map((assetFile) => {
if (location_1.default.isExternal(assetFile)) {
return {
url: assetFile
};
}
else {
return {
path: location_1.default.normalize(path_1.default.join(npmId, assetFile))
};
}
});
list = list.concat(assets);
result = result.set(resourceType, list);
});
return result;
}, immutable_1.default.Map());
}
exports.default = listResources;