|
Download backend/node_modules/rc9/README.md from blackmistcode/polysignal_hackaton: direct link, hf CLI and curl.
- Browser
- Download file 4.07 kB
-
https://huggingface.co/blackmistcode/polysignal_hackaton/resolve/main/backend/node_modules/rc9/README.md
- Command line
-
hf download hf://blackmistcode/polysignal_hackaton/backend/node_modules/rc9/README.md
-
curl -L -o README.md https://huggingface.co/blackmistcode/polysignal_hackaton/resolve/main/backend/node_modules/rc9/README.md
4.07 kB
| # 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 --> | |