Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cupcakearmy/memiens
YAML Settings
https://github.com/cupcakearmy/memiens
configuration settings settings-storage yaml
Last synced: 18 days ago
JSON representation
YAML Settings
- Host: GitHub
- URL: https://github.com/cupcakearmy/memiens
- Owner: cupcakearmy
- License: mit
- Created: 2019-03-09T13:23:07.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-03-15T11:40:46.000Z (almost 3 years ago)
- Last Synced: 2024-10-16T08:41:21.157Z (4 months ago)
- Topics: configuration, settings, settings-storage, yaml
- Language: JavaScript
- Size: 32.2 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Memiens ðŸ§
YAML Settings utility. Nested getter with optional default value and a setter.
**Typescript typings included**
## Quickstart 🚀
```
npm i -s memiens
``````typescript
import Memiens from 'memiens'// Initialize by giving a location for the config file.
const MySettings = new Memiens('./config.yml')// This will throw an error if `someconfigvalue` is not found in the yaml
const A = MySettings.get('someconfigvalue')// This will not throw an error if `B` is not found
const B = MySettings.get('B', 'this value is returned and written to the yaml if the config entry does not exist')// This will look for nested values inside the yaml
const C = MySettings.get('my.nested.config.value')// Write something
MySettings.set('password', 'this is a secret')
// Nested
MySettings.set('config.db.user', 'my_db_user')
MySettings.set('config.db.port', 1234)
```## API 📒
### `.get(setting, default [optional])`
###### Behavior
Settings can be simple or nested properties.
If a default value is not provided it will throw an error in case the value is not set. Otherwise the default value will be written into the yaml and returned to the user.###### Examples
```yaml
# test.ymldb:
user: myUser
password: $ecr3t
port: 1234simple: a string
``````typescript
import Memiens from 'memiens'
const Settings = new Memiens('./test.yml')const simple = Settings.get('simple') // 'a string'
const db = Settings.get('db') // {user: 'myUser', ...}
const user = Settings.get('db.user') // 'myUser'Settings.get('db').user === Settings.get('db.user') // true
Settings.get('notfound') // throws Error
Settings.get('notfound', 404) // Sets 'notfound' to 404 and returns 404
```### `.set(setting, value)`
###### Behavior
Settings can be simple or nested properties.
Values can be `string`, `number`, `boolean` or a nested object of those###### Examples
```typescript
import Memiens from 'memiens'
const Settings = new Memiens('./result.yml')const config = {
a: true,
db: {
user: 'myUser',
password: '$ecr3t',
port: 1234,
}
}Settings.set('a', config.a)
Settings.set('db', config.db)
``````yaml
# result.ymla: true
db:
user: myUser
password: $ecr3t
port: 1234
```