Skip to content

hapipal/confidence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Feb 21, 2022
e3ce6cb · Feb 21, 2022
Mar 24, 2021
Feb 21, 2022
Feb 21, 2022
Sep 18, 2020
Nov 20, 2018
Jan 31, 2021
Jan 31, 2021
May 16, 2019
May 16, 2019
Jan 31, 2021
Jan 31, 2021
Feb 21, 2022

Repository files navigation

confidence

Dynamic, declarative configurations

Build Status Coverage Status

Lead Maintainer: Sunny Bhanot

Installation

npm install @hapipal/confidence

Usage

See also the API Reference

Confidence is intended for use with nodejs v12+ (see v4 for lower support).

Confidence is a configuration document format, an API, and a foundation for A/B testing. The configuration format is designed to work with any existing JSON-based configuration, serving values based on object path ('/a/b/c' translates to a.b.c). In addition, Confidence defines special $-prefixed keys used to filter values for a given criteria.

Example

Below is an example configuring a hapi server using a dynamic Confidence configuration.

const Hapi = require('@hapi/hapi');
const Confidence = require('@hapipal/confidence');

const store = new Confidence.Store({
    server: {
        host: 'localhost',
        port: {
            $param: 'PORT',
            $coerce: 'number',
            $default: 3000
        },
        debug: {
            $filter: 'NODE_ENV',
            $default: {
                log: ['error'],
                request: ['error']
            },
            production: {
                request: ['implementation']
            }
        }
    }
});

const config = store.get('/', process.env);

const server = Hapi.server(config);

Extras

Confidence originated in the hapijs organization, and was adopted by hapi pal in April 2019.

Logo

confidence Logo