configorium v0.0.3
🔍🌍 Discover the perfect JavaScript environment with Configorium! This powerful package offers lightning-fast detection of the current environment with incredible accuracy. 🕵️♂️ Easily tailor your code to the right environment and avoid compatibility issues with the advanced detection capabilities of Configorium. 💪🏼 Take your development to the next level and ensure optimal performance with Configorium!
📦 Installation
Install:
# nyxi
nyxi configorium
# pnpm
pnpm add configorium
# npm
npm install configorium
# yarn
yarn add configorium
Import Configorium into your Node.js project:
// CommonJS
const { read, update, write } = require('configorium')
// ESM
import { read, update, write } from 'configorium'
💡 Usage
Read/Write config couldn't be easier with Configorium! See the examples below:
.conf:
db.username=db username
db.password=db pass
db.enabled=true
Update config:
update({ 'db.enabled': true })
Push to an array:
update({ 'modules[]': 'test' })
Read/Write config:
const config = read()
config.enabled = false
write(config)
User Config:
It is common to keep config in the user's home directory (MacOS: /Users/{name}
, Linux: /home/{name}
, Windows: C:\users\{name}
). Use the following shortcuts for quick access:
writeUser({ token: 123 }, '.zoorc') // Will be saved in {home}/.zoorc
const conf = readUser('.zoorc') // { token: 123 }
🔄 Unflatten
Configorium uses flat to automatically flat/unflat when writing and reading rcfile. It allows you to define nested objects using .
keys. For example:
hello.world = true
<=>{ hello: { world: true }
test.0 = A
<=>tags: [ 'A' ]
Note: If you want to disable this feature for keys that can override, pass the flat: true
option.
🌟 Native Values
Configorium uses nyxjason to convert values into native JavaScript values. Reading count=123
results in { count: 123 }
(instead of { count: "123" }
). To preserve strings as is, you can use quotes like count="123"
.
🚀 Exports
const defaults: RCOptions
function parse(contents: string, options?: RCOptions): RC
function parseFile(path: string, options?: RCOptions): RC
function read(options?: RCOptions | string): RC
function readUser(options?: RCOptions | string): RC
function serialize(config: RC): string
function write(config: RC, options?: RCOptions | string): void
function writeUser(config: RC, options?: RCOptions | string): void
function update(config: RC, options?: RCOptions | string): RC
function updateUser(config: RC, options?: RCOptions | string): RC
Types:
type RC = Record<string, any>
interface RCOptions {
name?: string
dir?: string
flat?: boolean
}
Defaults:
{
name: '.conf',
dir: process.cwd(),
flat: false
}
Why Configorium?
Be the first one to guess 🐇
📜 License
MIT 💞