Socket
Socket
Sign inDemoInstall

config-kit

Package Overview
Dependencies
21
Maintainers
2
Versions
20
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    config-kit

A universal, layered configuration system


Version published
Weekly downloads
528
increased by16.04%
Maintainers
2
Created
Weekly downloads
 

Readme

Source

config-kit

A universal, layered configuration system.

NPM Version NPM Downloads

Features

  • Layered data architecture
  • Schema validation using joi
  • Support for .json, .js, and .xml data stores
  • Default values
  • Environment variable precedence
  • Define custom layers
  • Extensible data store interface
  • Support for array type values
  • Apply parent directory owner when running as sudo

Installation

npm install config-kit --save

Usage

import Config from 'config-kit';

const config = await new Config().init();

await config.set('foo.bar', true);

console.log(config.get('foo')); // { "bar": true }

await config.load('/path/to/myconfig.json');

await config.set('foo.baz', 'pow');

await config.save();

Migrating from v1

v2 introduces major breaking API changes. This package was refactored to be a ES module. This means .js config and schema files also need to be ES modules. Since you can't synchronously import ES modules, there was no choice but to make nearly every API async.

When creating a new Config instance, simply prepend with await and call init() with the constructor options:

v1
const cfg = new Config({ /* opts */ });
v2
const cfg = await new Config().init({ /* opts */ });

The following functions are now async: load(), pop(), push(), save(), set(), shift(), unshift().

v1
cfg.load({ file: '/path/to/file' });
cfg.set('foo', 'bar');
cfg.push('baz', 'wiz');
cfg.save();
v2
await cfg.load({ file: '/path/to/file' });
await cfg.set('foo', 'bar');
await cfg.push('baz', 'wiz');
await cfg.save();

License

This project is open source under the Apache Public License v2 and is developed by Axway, Inc and the community. Please read the LICENSE file included in this distribution for more information.

Keywords

FAQs

Last updated on 20 May 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc