Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

confme

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

confme - npm Package Compare versions

Comparing version 0.0.4 to 0.0.5

2

package.json
{
"name": "confme",
"version": "0.0.4",
"version": "0.0.5",
"description": "Opinionated config library that allows you to have complex config and behaves according to 12-factors apps rules ",

@@ -5,0 +5,0 @@ "main": "src/confme.js",

## confme
Opinionated config library that allows you to have complex config and behaves according to 12-factors apps rules.
Opinionated config library that allows you to have complex config and behaves according to "Twelve Factor App" rules.
- It is build on top of "dotenv-defaults"
- Uses LIVR (with extra rules) for config schema validation.
- Follows the ideas of 12 factors app
- It is build on top of ["dotenv-defaults"](https://www.npmjs.com/package/dotenv-defaults)
- Uses [LIVR](https://www.npmjs.com/package/livr) ([with extra rules](https://www.npmjs.com/package/livr-extra-rules)) for config schema validation.
- Follows the ideas of ["Twelve Factor App"](https://12factor.net/config)
### How does it work?
"confme" loads your config and replaces placeholders with environment variables. For environemnt loading it uses "dotenv-defaults", so you can create ".env.defaults" file to set default values of environment variables. If you have placeholders for non set environment variables then "confme" will throw an error.
"confme" loads your config and replaces placeholders with environment variables. For environemnt loading it uses ["dotenv-defaults"](https://www.npmjs.com/package/dotenv-defaults), so you can create ".env.defaults" file to set default values of environment variables. If you have placeholders for non set environment variables then "confme" will throw an error.
You can pass a path to a JSON file with LIVR rules as a second argument. In this case, it will use LIVR (with extra rules) to validate the config.
You can pass a path to a JSON file with [LIVR](https://www.npmjs.com/package/livr) rules as a second argument. In this case, it will use [LIVR](https://www.npmjs.com/package/livr) ([with extra rules](https://www.npmjs.com/package/livr-extra-rules)) to validate the config.
### Usage examples
**Load config**
```javascript

@@ -20,2 +24,4 @@ const confme = require("confme");

**Load config with validation**
```javascript

@@ -30,2 +36,49 @@ const confme = require("confme");

Full example in [examples folder](./examples)
**Example config**
Placeholders are optional
```json
{
"listenPort": "{{PORT}}",
"apiPath": "https://{{DOMAIN}}:{{PORT}}/api/v1",
"staticUrl": "https://{{DOMAIN}}:{{PORT}}/static",
"mainPage": "https://{{DOMAIN}}:{{PORT}}",
"mail": {
"from": "MyApp",
"transport": "SMTP",
"auth": {
"user": "{{SMTP_USER}}",
"pass": "{{SMTP_PASS}}"
}
}
}
```
**Example LIVR schema**
See [LIVR](https://www.npmjs.com/package/livr) for details.
```json
{
"listenPort": ["required", "positive_integer"],
"apiPath": ["required", "url"],
"staticUrl": ["required", "url"],
"mainPage": ["required", "url"],
"mail": ["required", {"nested_object": {
"from": ["required", "string"],
"transport": ["required", {"one_of": ["SMTP", "SENDMAIL"] }],
"auth": {"nested_object": {
"user": ["required", "string"],
"pass": ["required", "string"]
}}
}}]
}
```
**Full example in [examples folder](./examples).**
Try it with
- `node app.js`
- `DOMAIN=myapp.com PORT=80 node app.js`
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc