config.ts 1.0 KB

12345678910111213141516171819202122232425262728
  1. /**
  2. * Copyright (c) 2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. *
  4. * @author David Sehnal <david.sehnal@gmail.com>
  5. */
  6. import * as argparse from 'argparse';
  7. export interface Config {
  8. working_folder: string,
  9. port?: string | number,
  10. api_prefix: string,
  11. max_states: number
  12. }
  13. export function getConfig() {
  14. const cmdParser = new argparse.ArgumentParser({
  15. addHelp: true
  16. });
  17. cmdParser.addArgument(['--working-folder'], { help: 'Working forlder path.', required: true });
  18. cmdParser.addArgument(['--port'], { help: 'Server port. Altenatively use ENV variable PORT.', type: 'int', required: false });
  19. cmdParser.addArgument(['--api-prefix'], { help: 'Server API prefix.', defaultValue: '', required: false });
  20. cmdParser.addArgument(['--max-states'], { help: 'Maxinum number of states that could be saved.', defaultValue: 40, type: 'int', required: false });
  21. const config = cmdParser.parseArgs() as Config;
  22. if (!config.port) config.port = process.env.port || 1339;
  23. return config;
  24. }