@clipwhisperer/common
Version:
ClipWhisperer Common - Shared library providing core utilities, database schemas, authentication, bucket management, and common functionality across all ClipWhisperer microservices
50 lines (49 loc) • 1.84 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.startServer = void 0;
const dotenv_1 = require("dotenv");
(0, dotenv_1.config)();
const vault_js_1 = require("./vault.js");
const util_js_1 = require("./util.js");
// Conditional vault import to avoid configuration errors
let vault = null;
try {
// Use require for conditional import
vault = (0, vault_js_1.createVaultClient)();
}
catch (error) {
// Vault not configured, continue without it
console.warn("Vault not configured, continuing without vault support");
}
(0, util_js_1.setOptionsProvider)(async () => ({ vault }));
const express_1 = __importDefault(require("express"));
const express_zod_api_1 = require("express-zod-api");
const logger_js_1 = require("../middleware/logger/logger.js");
const cookie_parser_1 = __importDefault(require("cookie-parser"));
const routing = (params) => {
return params.routes;
};
const startServer = async (params) => {
// Configure express-zod-api
const config = (0, express_zod_api_1.createConfig)({
http: {
listen: params.port,
},
cors: true,
logger: logger_js_1.logger,
startupLogo: false,
beforeRouting: ({ app }) => {
app.use((0, cookie_parser_1.default)());
app.use(express_1.default.json());
app.use(logger_js_1.loggerMiddleware);
},
});
// Create and start the server
const { app, servers } = await (0, express_zod_api_1.createServer)(config, routing(params));
logger_js_1.logger.info(`App running on port ${params.port}`);
return { app, servers, logger: logger_js_1.logger };
};
exports.startServer = startServer;