Aktueller Stand
This commit is contained in:
201
backend/node_modules/rc9/README.md
generated
vendored
Normal file
201
backend/node_modules/rc9/README.md
generated
vendored
Normal file
@@ -0,0 +1,201 @@
|
||||
# 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 -->
|
||||
Reference in New Issue
Block a user