Skip to content

erodozer/rxconf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rx-conf

rx-conf improves upon the standard pattern of providing configuration to node.js applications through reactivity. By introducing the concept of observable configuration from numerous sources, services are capable of updating functionality of a live system without requiring service downtime and restarts.

Install

npm install rx-conf

Usage

An example app.js file which demonstrates establishing the configuration, and starting your service after config is ready.

const { RxConf, ValueProvider } = require('@rxconf/rxconf');
const { configProxy } = require('@rxconf/rxconf/utils');
const { ConsulProvider } = require('@rxconf/consul');
const express = require('express');

// schema validation
const Ajv = require('ajv'); // schema validation
const validator = new Ajv().compile(require('./config.schema.json'));

// initialize and wait for config to be ready
var rxconfig = await new RxConf()
    .addProvider(new ValueProvider({
        port: 8080,
    }))
    .addProvider(new ConsulProvider('/config/my-service.json'))
    .registerValidator(validator)
    .build();

// using just the first config, initialize the service
rxconfig.take(1).subscribe(
    (config) => {
        const {
            port,
        } = config;
        const app = express();
        app.listen(port);
    }
)

About

Reactive configuration in nodejs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published