verdaccio
Version:
A lightweight private npm proxy registry
1 lines • 2.96 kB
Source Map (JSON)
{"version":3,"file":"run-server.cjs","names":["AppConfig","_","Storage","logger","defineAPI","getPackageVersion","initLogger","runServerNode","initServerNode"],"sources":["../../../src/lib/run-server.ts"],"sourcesContent":["import * as _ from 'lodash-es';\n\nimport { initServer as initServerNode, runServer as runServerNode } from '@verdaccio/node-api';\nimport { defineAPI } from '@verdaccio/server';\nimport { ConfigYaml, Config as IConfig } from '@verdaccio/types';\n\nimport AppConfig from './config';\nimport { logger } from './logger';\nimport Storage from './storage';\nimport { getPackageVersion, initLogger } from './utils';\n\n/**\n * Build the Express app from a raw config by reusing @verdaccio/server's\n * composition (defineAPI), but inject 7.x's Storage so legacy callback storage\n * plugins keep working. Exposed for tests that need the app without a listener.\n */\nexport async function endPointAPI(configHash: ConfigYaml): Promise<any> {\n const appConfig: IConfig = new AppConfig(_.cloneDeep(configHash));\n const storage = new Storage(appConfig, logger);\n await storage.init(appConfig);\n return defineAPI(appConfig, storage as any, { version: getPackageVersion() });\n}\n\n/**\n * Server factory passed to @verdaccio/node-api / @verdaccio/cli: maps the\n * deprecated `logs` config key then builds the app with 7.x's legacy-aware\n * Storage (via {@link endPointAPI}).\n */\nexport async function startServer(config: ConfigYaml): Promise<any> {\n await initLogger(config);\n return endPointAPI(config);\n}\n\n/**\n * Exposes a server factory to be instantiated programmatically.\n *\n ```ts\n const app = await runServer(); // default configuration\n const app = await runServer('./config/config.yaml');\n const app = await runServer({ configuration });\n app.listen(4000, (event) => {\n // do something\n });\n ```\n * @param config\n */\nexport async function runServer(config?: string | ConfigYaml): Promise<any> {\n return runServerNode(config, startServer);\n}\n\n/**\n * Start the server on the port defined (or the port defined in the config file)\n * @param config\n * @param port\n * @param version\n * @param pkgName\n */\nexport async function initServer(\n config: ConfigYaml,\n port: string | void,\n version: string,\n pkgName: string\n): Promise<void> {\n return initServerNode(config, port, version, pkgName, startServer);\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAgBA,eAAsB,YAAY,YAAsC;CACtE,MAAM,YAAqB,IAAIA,mBAAAA,QAAUC,UAAE,UAAU,UAAU,CAAC;CAChE,MAAM,UAAU,IAAIC,oBAAAA,QAAQ,WAAWC,yBAAAA,MAAM;CAC7C,MAAM,QAAQ,KAAK,SAAS;CAC5B,QAAA,GAAOC,kBAAAA,UAAAA,CAAU,WAAW,SAAgB,EAAE,SAASC,kBAAAA,kBAAkB,EAAE,CAAC;AAC9E;;;;;;AAOA,eAAsB,YAAY,QAAkC;CAClE,MAAMC,kBAAAA,WAAW,MAAM;CACvB,OAAO,YAAY,MAAM;AAC3B;;;;;;;;;;;;;;AAeA,eAAsB,UAAU,QAA4C;CAC1E,QAAA,GAAOC,oBAAAA,UAAAA,CAAc,QAAQ,WAAW;AAC1C;;;;;;;;AASA,eAAsB,WACpB,QACA,MACA,SACA,SACe;CACf,QAAA,GAAOC,oBAAAA,WAAAA,CAAe,QAAQ,MAAM,SAAS,SAAS,WAAW;AACnE"}