@verdaccio/server-fastify
Version:
fastify server api implementation
91 lines (88 loc) • 3.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _debug = _interopRequireDefault(require("debug"));
var _fastify = _interopRequireDefault(require("fastify"));
var _config = require("@verdaccio/config");
var _logger = require("@verdaccio/logger");
var _distTags = _interopRequireDefault(require("./endpoints/dist-tags"));
var _manifest = _interopRequireDefault(require("./endpoints/manifest"));
var _ping = _interopRequireDefault(require("./endpoints/ping"));
var _search = _interopRequireDefault(require("./endpoints/search"));
var _tarball = _interopRequireDefault(require("./endpoints/tarball"));
var _user = _interopRequireDefault(require("./endpoints/user"));
var _whoami = _interopRequireDefault(require("./endpoints/whoami"));
var _auth = _interopRequireDefault(require("./plugins/auth"));
var _config2 = _interopRequireDefault(require("./plugins/config"));
var _coreUtils = _interopRequireDefault(require("./plugins/coreUtils"));
var _storage = _interopRequireDefault(require("./plugins/storage"));
var _login = _interopRequireDefault(require("./routes/web/api/login"));
var _readme = _interopRequireDefault(require("./routes/web/api/readme"));
var _sidebar = _interopRequireDefault(require("./routes/web/api/sidebar"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const debug = (0, _debug.default)('verdaccio:fastify');
var PREFIX = /*#__PURE__*/function (PREFIX) {
PREFIX["WEB"] = "/-/verdaccio";
PREFIX["USER"] = "/-/user";
return PREFIX;
}(PREFIX || {});
async function startServer(config) {
// eslint-disable-next-line prettier/prettier
const configInstance = new _config.Config({
...config
});
debug('start fastify server');
// TODO: custom logger type and logger accepted by fastify does not match
const fastifyInstance = (0, _fastify.default)({
logger: _logger.logger
});
fastifyInstance.addHook('onRequest', (request, reply, done) => {
request.userRemote = (0, _config.createAnonymousRemoteUser)();
done();
});
fastifyInstance.register(_coreUtils.default);
fastifyInstance.register(_config2.default, {
config
});
fastifyInstance.register(_storage.default, {
config: configInstance
});
fastifyInstance.register(_auth.default, {
config: configInstance
});
// api
fastifyInstance.register((instance, opts, done) => {
instance.register(_ping.default);
instance.register(_user.default, {
prefix: PREFIX.USER
});
instance.register(_search.default);
instance.register(_whoami.default);
instance.register(_manifest.default);
instance.register(_tarball.default);
instance.register(_distTags.default);
instance.register(_readme.default, {
prefix: PREFIX.WEB
});
instance.register(_sidebar.default, {
prefix: PREFIX.WEB
});
instance.register(_login.default, {
prefix: PREFIX.WEB
});
done();
});
// web
fastifyInstance.register((instance, opts, done) => {
instance.register(_ping.default, {
prefix: '/web'
});
done();
});
return fastifyInstance;
}
var _default = startServer;
exports.default = _default;
//# sourceMappingURL=server.js.map