import thrift = require("thrift");
var program = require("commander");
import ThriftTest = require("./gen-nodejs/ThriftTest");
import test_handler = require("./test_handler");

program
  .option("--port <port>", "Set thrift server port", 9090)
  .option("--promise", "test with promise style functions")
  .option("--protocol", '"Set thrift protocol (binary) [protocol]"')
  .parse(process.argv);

var port: number = program.port;

var options: thrift.ServerOptions = {
  transport: thrift.TBufferedTransport,
  protocol: thrift.TBinaryProtocol,
};

var server: thrift.Server;
if (program.promise) {
  server = thrift.createServer(
    ThriftTest.Processor,
    new test_handler.AsyncThriftTestHandler(),
    options,
  );
} else {
  server = thrift.createServer(
    ThriftTest.Processor,
    new test_handler.SyncThriftTestHandler(),
    options,
  );
}
server.listen(port);
