async function start()

in cli.ts [21:65]


async function start(cmd: 'start', options: any) {
  console.log(chalk.rgb(175, 188, 207)(figlet.textSync('Mongoku')) + '\n');

  if (cmd !== "start") {
    return program.help();
  }

  const pm2 = options.pm2;
  const forever = options.forever;
  const entryPath = path.join(__dirname, 'server.js');

  if (pm2 && forever) {
    console.log("Cannot launch with both PM2 and Forever. You need to chose one.");
    console.log("Use 'mongoku --help' for more info");
    process.exit(1);
  }

  if (pm2) {
    // Start for pm2
    child_process.exec(`pm2 start --name mongoku ${entryPath}`, (err, stdout, stderr) => {
      if (err) {
        console.log("Error while launching with pm2: ", err);
      } else {
        console.log(stdout, stderr);
        console.log("[Mongoku] Launched with PM2.\nAvailable at http://localhost:3100/");
      }
    });
    return;
  }

  if (forever) {
    // Start for forever
    child_process.exec(`forever --uid mongoku start -a ${entryPath}`, (err, stdout, stderr) => {
      if (err) {
        console.log("Error while launching with forever: ", err);
      } else {
        console.log(stdout, stderr);
        console.log("[Mongoku] Launched with forever.\nAvailable at http://localhost:3100/");
      }
    });
    return;
  }

  await server.start();
}