[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: README.md
# RC9 <!-- automd:badges color=yellow codecov bundlejs --> [](https://npmjs.com/package/rc9) [](https://npmjs.com/package/rc9) [](https://bundlejs.com/?q=rc9) [](https://codecov.io/gh/unjs/rc9) <!-- /automd --> Read/Write RC configs couldn't be easier! ## Install Install dependencies: <!-- automd:pm-i --> ```sh # ✨ Auto-detect npx nypm install rc9 # npm npm install rc9 # yarn yarn add rc9 # pnpm pnpm install rc9 # bun bun install rc9 ``` <!-- /automd --> Import utils: <!-- automd:jsimport cjs src="./src/index.ts"--> **ESM** (Node.js, Bun) ```js import { defaults, parse, parseFile, read, readUser, serialize, write, writeUser, update, updateUser, } from "rc9"; ``` **CommonJS** (Legacy Node.js) ```js const { defaults, parse, parseFile, read, readUser, serialize, write, writeUser, update, updateUser, } = require("rc9"); ``` <!-- /automd --> ## Usage `.conf`: ```ini db.username=username db.password=multi word password db.enabled=true ``` **Update config:** ```ts update({ 'db.enabled': false }) // or update(..., { name: '.conf' }) ``` Push to an array: ```ts update({ 'modules[]': 'test' }) ``` **Read/Write config:** ```ts const config = read() // or read('.conf') // config = { // db: { // username: 'username', // password: 'multi word password', // enabled: true // } // } config.enabled = false write(config) // or write(config, '.conf') ``` **User Config:** It is common to keep config in user home directory (MacOS: `/Users/{name}`, Linux: `/home/{name}`, Windows: `C:\users\{name}`) you can use `readUser`/`writeuser`/`updateUser` shortcuts to quickly do this: ```js writeUser({ token: 123 }, '.zoorc') // Will be saved in {home}/.zoorc const conf = readUser('.zoorc') // { token: 123 } ``` ## Unflatten RC uses [flat](https://www.npmjs.com/package/flat) to automatically flat/unflat when writing and reading rcfile. It means that you can use `.` for keys to define objects. Some examples: - `hello.world = true` <=> `{ hello: { world: true }` - `test.0 = A` <=> `tags: [ 'A' ]` **Note:** If you use keys that can override like `x=` and `x.y=`, you can disable this feature by passing `flat: true` option. **Tip:** You can use keys ending with `[]` to push to an array like `test[]=A` ## Native Values RC uses [destr](https://www.npmjs.com/package/destr) to convert values into native javascript values. So reading `count=123` results `{ count: 123 }` (instead of `{ count: "123" }`) if you want to preserve strings as is, can use `count="123"`. ## Exports ```ts 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:** ```ts type RC = Record<string, any>; interface RCOptions { name?: string; dir?: string; flat?: boolean; } ``` **Defaults:** ```ini { name: '.conf', dir: process.cwd(), flat: false } ``` ### Why RC9? Be the first one to guess 🐇 <!-- Hint: do research about rc files history --> ## License <!-- automd:contributors license=MIT --> Published under the [MIT](https://github.com/unjs/rc9/blob/main/LICENSE) license. Made by [community](https://github.com/unjs/rc9/graphs/contributors) 💛 <br><br> <a href="https://github.com/unjs/rc9/graphs/contributors"> <img src="https://contrib.rocks/image?repo=unjs/rc9" /> </a> <!-- /automd -->
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium331.web-hosting.com
Server IP: 184.94.213.169
PHP Version: 8.1.34
Server Software: LiteSpeed
System: Linux premium331.web-hosting.com 4.18.0-553.80.1.lve.el8.x86_64 #1 SMP Wed Oct 22 19:29:36 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.82 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: livedhms
User ID (UID): 1344
Group ID (GID): 1349
Script Owner UID: 1344
Current Dir Owner: 1344