verdaccio
Version:
A lightweight private npm proxy registry
64 lines (63 loc) • 2.4 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
const require_lib_config = require("./config.cjs");
const require_lib_logger_index = require("./logger/index.cjs");
const require_lib_storage = require("./storage.cjs");
const require_lib_utils = require("./utils.cjs");
let lodash_es = require("lodash-es");
lodash_es = require_runtime.__toESM(lodash_es);
let _verdaccio_node_api = require("@verdaccio/node-api");
let _verdaccio_server = require("@verdaccio/server");
//#region src/lib/run-server.ts
/**
* Build the Express app from a raw config by reusing @verdaccio/server's
* composition (defineAPI), but inject 7.x's Storage so legacy callback storage
* plugins keep working. Exposed for tests that need the app without a listener.
*/
async function endPointAPI(configHash) {
const appConfig = new require_lib_config.default(lodash_es.cloneDeep(configHash));
const storage = new require_lib_storage.Storage(appConfig, require_lib_logger_index.logger);
await storage.init(appConfig);
return (0, _verdaccio_server.defineAPI)(appConfig, storage, { version: require_lib_utils.getPackageVersion() });
}
/**
* Server factory passed to @verdaccio/node-api / @verdaccio/cli: maps the
* deprecated `logs` config key then builds the app with 7.x's legacy-aware
* Storage (via {@link endPointAPI}).
*/
async function startServer(config) {
await require_lib_utils.initLogger(config);
return endPointAPI(config);
}
/**
* Exposes a server factory to be instantiated programmatically.
*
```ts
const app = await runServer(); // default configuration
const app = await runServer('./config/config.yaml');
const app = await runServer({ configuration });
app.listen(4000, (event) => {
// do something
});
```
* @param config
*/
async function runServer(config) {
return (0, _verdaccio_node_api.runServer)(config, startServer);
}
/**
* Start the server on the port defined (or the port defined in the config file)
* @param config
* @param port
* @param version
* @param pkgName
*/
async function initServer(config, port, version, pkgName) {
return (0, _verdaccio_node_api.initServer)(config, port, version, pkgName, startServer);
}
//#endregion
exports.endPointAPI = endPointAPI;
exports.initServer = initServer;
exports.runServer = runServer;
exports.startServer = startServer;
//# sourceMappingURL=run-server.cjs.map