1.1.3 • Published 3 years ago

@multitool-js/configmanager v1.1.3

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

Multitool JS / Config Manager

ConfigManager allows to easily manage application configurations.

The configManager tool reads the following configuration files (in the given order) and merges the configurations:

  • default.json - Default configurations.
  • production.json - Production configurations, enabled only with NODE_ENV = production.
  • development.json - Development configurations, enabled only with NODE_ENV != production.
  • local.json - Local configurations.
  • custom-environment-variables.json - Env variables overrides, loads the value of the environment variable as the config value.
    E.g. { "varaible": "ENV_VARIABLE_NAME" }.
    Additionally the env variable name can be prefixed with the following terms to forcefully cast/parse the value:

    • JSON: parses the value, if the value is not parsable the whole string is applied: { "varaible": "JSON:ENV_VARIABLE_NAME" }: | "ENV_VARIABLE_NAME" value | "varaible" value | | ------------------------- | ------------------ | | 'some_string' | "some_string" | | '{"some":"json"}' | { some: "json" } |

    • JSON_ONLY: parses the value, if the value is not parsable is ignored: { "varaible": "JSON_ONLY:ENV_VARIABLE_NAME" }: | "ENV_VARIABLE_NAME" value | "varaible" value | | ------------------------- | ------------------ | | 'some_string' | | | '{"some":"json"}' | { some: "json" } |

    • MERGE: like JSON but merges the value with current value (if present).

    • BOOLEAN: reads the strings 'true', '1', 'false', '0' and sets the corresponding boolean value.

    • NUMBER: casts the value as number. If the value is not a valid number the string is kept instead.

    • NUMBER_NAN: casts the value as number. If the value is not a valid number the property is set to NaN.

    • NUMBER_ONLY: casts the value as number. If the value is not a valid number is ignored.

How to use

const configManager = require('@multitool-js/configManager');
methoddescription
getRetrives a property from the configuration.
hasChecks if a property is defined in the configuration.
setSets a property value in the configuration.
reloadReloads all the configuration values (loses unsaved values).
saveSaves the configuration file (includes values set during runtime).
saveSyncSynchronously saves the configuration file (includes values set during runtime).
removeRemoves the currently saved configuration.
removeSyncSynchronously removes the currently saved configuration.

Built-in CLI

The ConfigManager tool also comes with a small CLI utility npx multitool-config to help you handle the config files: | command | description | | ------------------------------------------------- | ------------------------------------------------------------------------------------- | | init | creates "config" folder and files | | enable \ | creates/enables \ file | | disable \ | disables \ file | | remove \ | removes \ file | | add-property (ap) \ | adds a new property to the config files. Asks the value for each enabled config file. | | remove-property (rp) \ \ | removes a property from the config files. |


1.1.1

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.0.5

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.0

4 years ago