Skip to main content

Introduction

Configurator is a schema-oriented NodeJS configuration management library that exposes a rich API for customization and extension.

Developers have control over the entire configuration pipeline, from input to output.

Philosophy

Unlike command-line oriented libraries that focus on expressive argument parsing, Configurator takes a data-first approach, and focuses on the "correctness" of the configured data that will be consumed by your application and its subsystems.

The idea is that if the configuration system offers a strong contract for validating inputs against well-defined configurable fields, then the output can be trusted, and treated more like a data model. The final populated configuration should be exactly what was expected, no more, no less.

Architecture

The architecture is straightforward, and was driven by two principles:

  1. Sources of configuration data should be self-contained and composable.
  2. Data should pass through an extensible type-checking and validation system.

Configurator Architecture

Requirements

  • NodeJS 20.9.0+
  • ESM Modules only