@verdaccio/web
Version:
web ui middleware
51 lines (49 loc) • 2.32 kB
JavaScript
"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