UNPKG

@verdaccio/web

Version:
51 lines (49 loc) 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; exports.loadTheme = loadTheme; var _express = _interopRequireDefault(require("express")); var _lodash = _interopRequireDefault(require("lodash")); var _loaders = require("@verdaccio/loaders"); var _logger = require("@verdaccio/logger"); var _middleware = require("@verdaccio/middleware"); var _api = _interopRequireDefault(require("./api")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function loadTheme(config) { if (_lodash.default.isNil(config.theme) === false) { var _config$serverSetting, _config$serverSetting2; const plugin = await (0, _loaders.asyncLoadPlugin)(config.theme, { config, logger: _logger.logger }, // TODO: add types { staticPath: string; manifest: unknown; manifestFiles: unknown } function (plugin) { /** * - `staticPath`: is the same data returned in Verdaccio 5. - `manifest`: A webpack manifest object. - `manifestFiles`: A object with one property `js` and the array (order matters) of the manifest id to be loaded in the template dynamically. */ return plugin.staticPath && plugin.manifest && plugin.manifestFiles; }, (_config$serverSetting = config === null || config === void 0 ? void 0 : (_config$serverSetting2 = config.serverSettings) === null || _config$serverSetting2 === void 0 ? void 0 : _config$serverSetting2.pluginPrefix) !== null && _config$serverSetting !== void 0 ? _config$serverSetting : 'verdaccio-theme'); if (plugin.length > 1) { _logger.logger.warn('multiple ui themes are not supported , only the first plugin is used used'); } return _lodash.default.head(plugin); } } var _default = async (config, auth, storage) => { const pluginOptions = (await loadTheme(config)) || require('@verdaccio/ui-theme')(config.web); // eslint-disable-next-line new-cap const router = _express.default.Router(); // load application router.use((0, _middleware.webMiddleware)(config, { tokenMiddleware: auth.webUIJWTmiddleware(), webEndpointsApi: (0, _api.default)(auth, storage, config) }, pluginOptions)); return router; }; exports.default = _default; //# sourceMappingURL=middleware.js.map