# dotless-conf

> Simple dotless config handling for your app or module

Latest version **1.0.0** (published 2018-04-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install dotless-conf
pnpm add dotless-conf
yarn add dotless-conf
bun add dotless-conf
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2018-04-16 |
| First published | 2016-09-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 5 |
| Unpacked size | 8.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Dawson Botsford |
| Maintainers | dawsonbotsford |
| Keywords | config, store, app, storage, conf, configuration, settings, preferences, json, data, persist, persistent, save, load, read, write |

## Links

- npm: https://www.npmjs.com/package/dotless-conf
- Repository: https://github.com/dawsonbotsford/conf
- Homepage: https://github.com/dawsonbotsford/conf#readme
- Issues: https://github.com/dawsonbotsford/conf/issues
- npm.io page: https://npm.io/package/dotless-conf

## Dependencies (5)

- [mkdirp](https://npm.io/package/mkdirp.md) ^0.5.1
- [pkg-up](https://npm.io/package/pkg-up.md) ^2.0.0
- [make-dir](https://npm.io/package/make-dir.md) ^1.2.0
- [env-paths](https://npm.io/package/env-paths.md) ^0.3.0
- [write-file-atomic](https://npm.io/package/write-file-atomic.md) ^2.3.0

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 1.0.0 (latest) — 2018-04-16
- 0.0.0 — 2016-09-05

## README

# dotless-conf [![Build Status: Linux and macOS](https://travis-ci.org/dawsbot/dotless-conf.svg?branch=master)](https://travis-ci.org/dawsbot/dotless-conf)

> Hard fork of sindresorhus's "conf" in order to remove dot props

> Simple config handling for your app or module

All you have to care about is what to persist. This module will handle all the dull details like where and how.

## Install

```
$ npm install --save dotless-conf
```


## Usage

```js
const Conf = require('dotless-conf');
const config = new Conf();

config.set('unicorn', '🦄');
console.log(config.get('unicorn'));
//=> '🦄'

// use dot-notation to access nested properties
config.set('foo.bar', true);
console.log(config.get('foo'));
//=> {bar: true}

config.delete('unicorn');
console.log(config.get('unicorn'));
//=> undefined
```

## Why diverge from conf?

When reading and writing an object to a file, you don't always want to support nested object properties

```js
// with "conf"
// use dot-notation to access nested properties
config.set('foo.bar', true);
console.log(config.get('foo'));
//=> {bar: true}

// with "dotless-conf"
config.set('foo.bar', true);
console.log(config.get('foo'));
//=> undefined
console.log(config.get('foo.bar'));
//=> true
```

## API

### Conf([options])

Returns a new instance.

### options

#### defaults

Type: `Object`

Default config.

#### configName

Type: `string`<br>
Default: `config`

Name of the config file (without extension).

Useful if you need multiple config files for your app or module. For example, different config files between two major versions.

#### projectName

Type: `string`<br>
Default: The `name` field in your package.json

You only need to specify this if you don't have a package.json file in your project.

#### cwd

Type: `string`<br>
Default: System default [user config directory](https://github.com/dawsonbotsford/env-paths#pathsconfig)

**You most likely don't need this.**

Overrides `projectName`.

The only use-case I can think of is having the config located in the app directory or on some external storage.

### Instance

The instance is [`iterable`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Iteration_protocols) so you can use it directly in a [`for…of`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for...of) loop.

#### .set(key, value)

Set an item.

#### .set(object)

Set multiple items at once.

#### .get(key)

Get an item.

#### .has(key)

Check if an item exists.

#### .delete(key)

Delete an item.

#### .clear()

Delete all items.

#### .size

Get the item count.

#### .store

Get all the config as an object or replace the current config with an object:

```js
conf.store = {
	hello: 'world'
};
```

#### .path

Get the path to the config file.

## Related

- [conf](https://github.com/sindresorhus/conf)

## License

MIT © [Dawson Botsford](https://dawsonbotsford.com)

---
_Source: https://npm.io/package/dotless-conf · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
