# Module: configuration

Contains all of the configuration system commands.

Author:
  - Seth Hollingsead
Copyright:
  - Copyright © 2022-… by Seth Hollingsead. All rights reserved
Source:
  - commandsBlob/commands/configuration.js, line 1

### Requires

- module:dataBroker
- module:ruleBroker
- module:themeBroker
- module:configurator
- module:loggers
- module:data
- @haystacks/constants
- path

### Methods

#### (inner) changeConfigurationSetting(inputData, inputMetaData) → {array.<boolean, (string|integer|boolean|object|array)>}

Persists a change to a user specified configuration setting. This enables the user to enable or disable console log flags to use for run-time debugging. This is useful also for automating changes to how and what is logged during execution. Further it is useful for when a test fails, it can be automatically re-run with a more detailed log.

##### Parameters:

Name | Type | Description
--- | --- | ---
`inputData` | array.<string> | An array that contains the fully qualified path to the configuration setting that should be changed and the data that should be assigned to it. inputData[0] = changeConfigurationSetting inputData[1] = fully.Qualified.Configuration.Path inputData[2] = value to assign to the configuration setting property
`inputMetaData` | string | Not used for this command.

Author:
  - Seth Hollingsead
Source:
  - commandsBlob/commands/configuration.js, line 56

##### Returns:

An array with a boolean True or False value to indicate if the application should exit or not exit, followed by the command output.

Type
  array.<boolean, (string|integer|boolean|object|array)>

#### (inner) changeDebugConfigurationTheme(inputData, inputMetaData) → {array.<boolean, (string|integer|boolean|object|array)>}

Swaps out all of the debug settings with a different theme.

##### Parameters:

Name | Type | Description
--- | --- | ---
`inputData` | string | An array that contains the name of the theme the user would like to switch to. inputData[0] = changeDebugConfigurationTheme inputData[1] = The name of the theme that the user would like to switch to.
`inputMetaData` | string | Not used for this command.

Author:
  - Seth Hollingsead
Source:
  - commandsBlob/commands/configuration.js, line 144

##### Returns:

An array with a boolean True or False value to indicate if the application should exit or not exit, followed by the command output.

Type
  array.<boolean, (string|integer|boolean|object|array)>

#### (inner) listConfigurationThemes(inputData, inputMetaData) → {array.<boolean, (string|integer|boolean|object|array)>}

Lists all of the debug configuration themes currently installed in the resources/themes folder.

##### Parameters:

Name | Type | Description
--- | --- | ---
`inputData` | string | Not used for this command.
`inputMetaData` | string | Not used for this command.

Author:
  - Seth Hollingsead
Source:
  - commandsBlob/commands/configuration.js, line 115

##### Returns:

An array with a boolean True or False value to indicate if the application should exit or not exit, followed by the command output.

Type
  array.<boolean, (string|integer|boolean|object|array)>

#### (inner) saveConfiguration(inputData, inputMetaData) → {array.<boolean, (string|integer|boolean|object|array)>}

Saves out all of the configuration data to a JSON file so custom user settings can be persisted between sessions.

##### Parameters:

Name | Type | Description
--- | --- | ---
`inputData` | string | Not used for this command.
`inputMetaData` | string | Not used for this command.

Author:
  - Seth Hollingsead
Source:
  - commandsBlob/commands/configuration.js, line 34

##### Returns:

An array with a boolean True or False value to indicate if the application should exit or not exit, followed by the command output.

Type
  array.<boolean, (string|integer|boolean|object|array)>