pubsub-server/server/index.js

39 lines
1.0 KiB
JavaScript

import {default as createLogger, getLevel} from "../logger/index.js";
import yargs from "yargs/yargs";
import { startServer } from "../grpc/index.js";
import pubsub from "./pubsub.js";
const argv = yargs(process.argv.slice(2))
.option("port", {
alias: "p",
demandOption: true,
default: 50051,
describe: "Listen on this port for incoming client connections",
type: "number",
})
.option("bind", {
alias: "b",
demandOption: true,
default: "0.0.0.0",
describe: "Which IP to bind to",
type: "string",
})
.option("verbose", {
alias: "v",
default: 2,
describe: "Verbosity level, 0 to 6, 0=error, 1=warn, 2=info, 3+=debug",
type: "number",
})
.help()
.alias("help", "h").argv;
const logger = createLogger({level: getLevel(argv.verbose), postfix: "server"})
const address = `${argv.bind}:${argv.port}`;
const server = startServer(address, pubsub({ logger }), logger);
process.on('SIGINT', () => {
logger.info("Shutting down due to SIGINT")
server.forceShutdown()
});