openapi-connect
Version:
Base for microservices around OpenAPI/Swagger
63 lines • 3.13 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDefaultMetricsWriters = exports.middleware = exports.handlers = exports.getOptions = exports.HttpError = exports.send = void 0;
const fs = require("fs");
const yaml = require("js-yaml");
const url = require("url");
const swagger_1 = require("./helpers/swagger");
const errorHandling_1 = require("./middleware/errorHandling");
const health = require("./middleware/health");
const health_1 = require("./middleware/health");
const logging = require("./middleware/logging");
const oauth_1 = require("./middleware/oauth");
const options_1 = require("./options");
Object.defineProperty(exports, "getOptions", { enumerable: true, get: function () { return options_1.getOptions; } });
const server_1 = require("./server");
require("./types");
__exportStar(require("@targetprocess/swagger-tools"), exports);
var response_1 = require("./helpers/response");
Object.defineProperty(exports, "send", { enumerable: true, get: function () { return response_1.send; } });
var HttpError_1 = require("./HttpError");
Object.defineProperty(exports, "HttpError", { enumerable: true, get: function () { return HttpError_1.HttpError; } });
exports.handlers = Object.freeze({
errorHandling: errorHandling_1.default,
errorLogging: logging.errorLogging,
requestLogging: logging.requestLogging,
health: health_1.default,
oauth: oauth_1.default
});
exports.middleware = Object.freeze({
health
});
var metricsWriters_1 = require("./helpers/metricsWriters");
Object.defineProperty(exports, "getDefaultMetricsWriters", { enumerable: true, get: function () { return metricsWriters_1.getDefaultMetricsWriters; } });
exports.default = (specPath, optionsOverrides) => {
const options = (0, options_1.getOptions)(optionsOverrides);
const { port, basePath } = options;
const logger = options.logger;
const spec = fs.readFileSync(specPath, 'utf8');
const swaggerDoc = (0, swagger_1.default)(yaml.safeLoad(spec), options);
const server = (0, server_1.default)(swaggerDoc, options);
server.listen(port, () => {
logger.info(`Your server is listening on port ${port} (http://localhost:${port}${basePath})`);
if (options.swaggerUI.enable) {
logger.info(`Swagger-UI is available on ${url.resolve(url.resolve(`http://localhost:${port}`, basePath), 'docs')}`);
}
});
return server;
};
//# sourceMappingURL=index.js.map