UNPKG

@microsoft.azure/autorest.testserver

Version:
57 lines 2.5 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MockApiServer = void 0; const body_parser_1 = __importDefault(require("body-parser")); const express_1 = __importDefault(require("express")); const morgan_1 = __importDefault(require("morgan")); const logger_1 = require("../logger"); const utils_1 = require("../utils"); const errorHandler = (err, _req, res, _next) => { logger_1.logger.error("Error", err); const errResponse = err.toJSON ? err.toJSON() : err instanceof Error ? { name: err.name, message: err.message, stack: err.stack } : err; res.status(err.status || 500); res.contentType("application/json").send(errResponse).end(); }; const rawBodySaver = (req, res, buf, encoding) => { if (buf && buf.length) { req.rawBody = (0, utils_1.cleanupBody)(buf.toString(encoding || "utf8")); } }; const loggerstream = { write: (message) => logger_1.logger.info(message), }; class MockApiServer { constructor(config) { this.config = config; this.app = (0, express_1.default)(); this.app.use((0, morgan_1.default)("dev", { stream: loggerstream })); this.app.use(body_parser_1.default.json({ verify: rawBodySaver, strict: false })); this.app.use(body_parser_1.default.urlencoded({ verify: rawBodySaver, extended: true })); this.app.use(body_parser_1.default.text({ type: "*/xml", verify: rawBodySaver })); this.app.use(body_parser_1.default.text({ type: "*/pdf", verify: rawBodySaver })); this.app.use(body_parser_1.default.text({ type: "text/plain" })); this.app.use(body_parser_1.default.raw({ type: "application/octet-stream", limit: "10mb" })); } use(route, ...handlers) { this.app.use(route, ...handlers); } start() { this.app.use(errorHandler); const server = this.app.listen(this.config.port, () => { logger_1.logger.info(`Started server on ${getAddress(server)}`); }); } } exports.MockApiServer = MockApiServer; const getAddress = (server) => { const address = server === null || server === void 0 ? void 0 : server.address(); return typeof address === "string" ? "pipe " + address : "port " + (address === null || address === void 0 ? void 0 : address.port); }; //# sourceMappingURL=server.js.map