0.1.4 • Published 3 years ago

config-validation v0.1.4

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

Config validator

Npm package

A library created with the objective to facilitate creating configs that are stored in JSON files. It's uses a schema defined by the user, that the loaded json file needs to have otherside the loading of the file will fail as an "Config error".

Important

In the moment this library is in pre-release, so be careful when to use it. There can be lots of bugs or some problems that needs to be fixed.

Reason

An alternative of Convict written in Typescript, the primary reason of this library is the need of dynamically updating the configuration file in some of my projects (yeah, it has it's owns risk but I need to do it :/ and take care of all possible errors)

How to use

Setup an configuration file anywhere in your machine (be certain that the application can read the file), and use it's path in configurator

Example:

import { configurator } from "config-validation";
import path from 'path';

const Configurator = configurator({
	databaseUrl: {
		description: 'Database url',
		type: 'string',
		required: true,
	},
	insert_invertal: {
		description: 'Bach insert interval used for buffer cleaning',
		type: 'number',
		required: true,
	},
	server: {
		port: {
			description: 'The server port',
			type: 'number',
			default: 3333,
		}
	}
});

// Load configs from the file config.json
Configurator.load(path.join(__dirname, 'config.json'));

console.log(Configurator.get('databaseUrl'));

// Update the config value
Configurator.set('databaseUrl', 'Another url')

console.log(Configurator.get('databaseUrl'));

// Write the config changes to the file
Configurator.updateConfigFile();

Todo

  • Ability to the user add new types
  • Method that permit changing an config
  • Updating the configuration file
  • Sub-configs
  • Fix set and get to work with Sub-configs
  • Implementing unit test's

Inspiration

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.1

3 years ago

0.0.2

6 years ago