@microsoft.azure/autorest.testserver
Version:
Autorest test server.
57 lines • 2.5 kB
JavaScript
;
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