Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/metonym/didone
Minimalist dotenv-like parser for the browser
https://github.com/metonym/didone
Last synced: about 1 month ago
JSON representation
Minimalist dotenv-like parser for the browser
- Host: GitHub
- URL: https://github.com/metonym/didone
- Owner: metonym
- License: mit
- Created: 2024-01-13T17:37:10.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2024-02-14T19:56:38.000Z (9 months ago)
- Last Synced: 2024-09-17T07:58:03.628Z (2 months ago)
- Language: TypeScript
- Homepage:
- Size: 34.2 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# didone
> Minimalist dotenv-like parser for the browser.
> Pronounced "dee-doh-neh".
This zero-dependency library is a minimalist dotenv-like parser. It intentionally does not perform validation and is simply designed to extract key-value pairs from a given string. The `parse` function returns an array of objects with the following properties:
- `key`: The key of the variable.
- `value`: The value of the variable. Multiline values are supported.
- `duplicate`: Whether the key is duplicated or not.```dotenv
DB_HOST=localhost
DB_PORT="5432"
DB_USER=myuser
DB_USER=myuser2 # Duplicate keys are parsed but marked as duplicates
```**Output**
```json
[
{
"duplicate": false,
"key": "DB_HOST",
"value": "localhost"
},
{
"duplicate": false,
"key": "DB_PORT",
"value": "5432"
},
{
"duplicate": false,
"key": "DB_USER",
"value": "myuser"
},
{
"duplicate": true,
"key": "DB_USER",
"value": "myuser2"
}
]
```If the provided text does not contain any key-value pairs, an empty array is returned.
## Install
```sh
npm i didone
```## Usage
### `parse`
```js
import { parse } from "didone";const values = parse(
`
DB_HOST=localhost
DB_PORT="5432" # Quoted values
DB_USER=myuser
`
);
```### `serialize`
```js
import { serialize } from "didone";const text = serialize([
{
duplicate: false,
key: "FOO",
value: "bar",
},
]);console.log(text); // "FOO=bar"
```#### Options
Set `removeDuplicates` to `true` to remove duplicate keys.
```js
serialize(values, {
removeDuplicates: true,
});
```## Changelog
[CHANGELOG.md](CHANGELOG.md)
## License
[MIT](LICENSE)