Joachim Van Herwegen c216efd62f
feat: Allow for custom CLI and variable options
* feat: (AppRunner) Mechanism to configure cli args and derive componentsjs vars from them implemented

* fix: (AppRunner) tidying

* fix: (AppRunner) tidying up

* fix: (AppRunner) runCli method made sync

* fix; (VarResolver) refactored to multiple files, and other stylistic fixes.

* chore: (AppRunner) Uses builder pattern for yargs base arguments setup to enable better typescript inference

* fix(AppRunner): refactoring AppRunner and VarResolver

* fix(AppRunner): refactoring AppRunner promise handling

* fix(AppRunner): verror dependency removal

* fix: Simplify CLI error handling

* feat: Use same config for both CLI and app instantiation

* fix: Update typings and imports

* feat: Split VariableResolver behaviour to 2 classes

* feat: Move default value behaviour from CLI to ValueComputers

* test: Add unit tests for new CLI classes

* feat: Integrate new CLI configuration with all default configurations

* feat: Add createApp function to AppRunner

* docs: Update comments in CLI-related classes

* fix: Various fixes and refactors

Co-authored-by: damooo <damodara@protonmail.com>
2022-02-11 10:00:12 +01:00

1.8 KiB

App

Options related to the server startup.

Base

This is the entry point to the main server setup.

  • default: The main application. This should only be changed/replaced if you want to start from a different kind of class.

Init

Contains a list of initializer that need to be run when starting the server.

  • default: The default setup. The ParallelHandler can be used to add custom Initializers.
  • initialize-root: Makes sure the root container has the necessary resources to function properly. This is only relevant if setup is disabled but root container access is still required.
  • initialize-prefilled-root: Similar to initialize-root but adds some introductory resources to the root container.

Setup

Handles the setup page the first time the server is started.

  • disabled: Disables the setup page. Root container access will be impossible unless handled by the Init config above. Registration and pod creation is still possible if that feature is enabled.
  • optional: Setup is available at /setup but the server can already be used. Everyone can access the setup page so make sure to complete that as soon as possible.
  • required: All requests will be redirected to the setup page until setup is completed.

Variables

Handles parsing CLI parameters and assigning values to Components.js variables. Some parts of the configuration contains variables that can be set as arguments on the command-line. That way, you don't have to edit the configuration files for small changes, such as starting the server with a different hostname. Here, you can customize the mapping from CLI arguments into values for those variables.

  • default: Assigns CLI parameters for all variables defined in /config/util/variables/default.json