js-ini-parser
Version:
A simple ini parser that save comments and spaces
135 lines (91 loc) ⢠2.63 kB
Markdown
<div align="center">
A ***simple parser*** for **ini** files. Preserve comments and support global section.
[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[](https://codecov.io/gh/thegostisdead/js-ini-parser)

</div>
š§ This project is under development.
- [Installation](
- [Usage](
- [Contributing](
Install package:
```sh
npm install js-ini-parser
yarn add js-ini-parser
pnpm install js-ini-parser
```
Import:
```js
// ESM
import { parseIni } from "js-ini-parser";
// CommonJS
const { parseIni } = require("js-ini-parser");
```
- parseIni(text, options)
- stringifyIni(object, options)
```js
import { parseIni } from "js-ini-parser";
const ini = `
[]
; this is a comment
host =
port = 8080
`;
const options = {
allowGlobalSection: true,
globalSectionName: 'global'
}
const parsed = parseIni(ini, options);
console.log(parsed);
```
```ts
import * as fs from "node:fs/promises";
import { parseIni } from "js-ini-parser";
const options = {
allowGlobalSection: true,
globalSectionName: 'global'
}
const fileContent = await fs.readFile("./config.ini", "utf-8");
const parsed = parseIni(fileContent, options);
```
```ts
import { parse, stringify } from "js-ini-parser";
const ini = `
[]
; this is a comment
host =
port = 8080
`;
const options = {
allowGlobalSection: true,
globalSectionName: 'global'
}
const parsed = parseIni(ini, options);
// edit object
parsed.server.host = 'localhost'
// convert to text
const text = stringifyIni(parsed, {})
```
- Clone this repository
- Install dependencies using `pnpm install`
- Run interactive tests using `pnpm dev`
Published under [MIT License](./LICENSE).
<!-- Badges -->
[]: https://npmjs.com/package/js-ini-parser
[]: https://npmjs.com/package/js-ini-parser
[]: https://img.shields.io/npm/v/js-ini-parser?style=flat-square
[]: https://img.shields.io/npm/dm/js-ini-parser?style=flat-square