flecks/website/docs/environment.mdx
2024-01-04 18:40:22 -06:00

53 lines
1.1 KiB
Plaintext

---
title: Environment Variables
description: Configure your application with environment variables.
---
# Environment Variables
flecks has first-class support for configuring your application through environment variables.
## Example
`@flecks/core` defines a configuration key `id`. We've already seen how it can be configured like
so:
```yml
'@flecks/core':
id: 'foobar'
```
When running your application in different execution environments (say, production) you may want to
override configuration such as this. This is done by like so:
### Syntax
```javascript
`FLECKS_ENV__${Flecks.environmentalize(fleck)}__${key}`
```
:::tip
As an example, `@flecks/core`'s `id` key is set using the following variable:
```bash
FLECKS_ENV__flecks_core__id=foobar
```
<details>
<summary>`Flecks.environmentalize` implementation</summary>
```javascript
static environmentalize(path) {
return path
// - `@flecks/core` -> `flecks_core`
.replace(/[^a-zA-Z0-9]/g, '_')
.replace(/_*(.*)_*/, '$1');
}
```
</details>
Note that the fleck path and key are still case-sensitive. This is because they are
user-defined.
:::