Skip to main content

Configurator

@versionzero/configurator
https://github.com/argh/configurator

Introduction

A schema-based configuration management library for Node.js applications 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 solely 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.

(Configurator's command-line processing is still highly expressive, but is constructed automatically by introspecting the configuration schema's structure and custom metadata!)

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 22.22.0+
  • ESM Modules only

License

Copyright 2026 Version Zero | github.com/argh

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this library except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.