@kya-os/mcp-i
Version:
The TypeScript MCP framework with identity features built-in
59 lines (58 loc) • 2.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const server_1 = require("../../utils/server");
const stateless_streamable_http_1 = require("./stateless-streamable-http");
// @ts-expect-error: injected by compiler
const httpConfig = HTTP_CONFIG;
// @ts-expect-error: injected by compiler
const corsConfig = HTTP_CORS_CONFIG;
// middleware
// @ts-expect-error: injected by compiler
const middleware = INJECTED_MIDDLEWARE;
// oauth config
// @ts-expect-error: injected by compiler
const oauthConfigRaw = OAUTH_CONFIG;
const oauthConfig = (oauthConfigRaw && typeof oauthConfigRaw === 'string'
? JSON.parse(oauthConfigRaw)
: oauthConfigRaw);
async function main() {
const options = {
port: httpConfig?.port,
host: httpConfig?.host,
debug: httpConfig?.debug,
bodySizeLimit: httpConfig?.bodySizeLimit?.toString(),
endpoint: httpConfig?.endpoint,
};
const corsOptions = {
origin: corsConfig.origin,
methods: corsConfig.methods,
allowedHeaders: corsConfig.allowedHeaders,
exposedHeaders: corsConfig.exposedHeaders,
credentials: corsConfig.credentials,
maxAge: corsConfig.maxAge,
};
let middlewareFn = undefined;
if (middleware) {
const middlewareModule = await middleware();
if (middlewareModule && middlewareModule.default) {
const defaultExport = middlewareModule.default;
if (Array.isArray(defaultExport)) {
// Handle array of middlewares
middlewareFn = defaultExport.filter((mw) => typeof mw === "function");
}
else if (typeof defaultExport === "function") {
// Handle single middleware
middlewareFn = [defaultExport];
}
else {
throw new Error("Middleware module does not export a valid RequestHandler or array of RequestHandlers");
}
}
else {
throw new Error("Middleware module does not export a default middleware");
}
}
const transport = new stateless_streamable_http_1.StatelessStreamableHTTPTransport(server_1.createServer, options, corsOptions, oauthConfig, middlewareFn);
transport.start();
}
main();