private-registry-mock
Version:
Simple mocked server and package of an npm private registry.
22 lines (21 loc) • 769 B
JavaScript
import polka from "polka";
import createHttpTerminator from "lil-http-terminator";
import { responseHelpers } from "./middlewares/response-helpers.js";
import { auth } from "./middlewares/auth.js";
import { packageMock } from "./middlewares/package.js";
const softEncode = (pkg) => encodeURIComponent(pkg).replace(/^%40/, "@");
export const configureServer = async (options) => {
const packageRoute = `/${softEncode(options.package.name)}`;
const app = polka()
.use(responseHelpers)
.use((_req, res, next) => {
res.ctx = options;
void next();
})
.get("/", (_req, res) => {
res.ok("Connected!");
})
.use(packageRoute, auth, packageMock)
.listen(options.port, options.hostname);
return createHttpTerminator({ server: app.server }).terminate;
};