@contextjs/configuration-json
TypeScript icon, indicating that this package has built-in type declarations

0.5.1-alpha.1 • Public • Published

@contextjs/configuration-json

Tests npm License

JSON-based configuration provider for ContextJS applications.

✨ Features

  • Plug-and-play JSON configuration support
  • Supports environment-specific configuration files
  • Fully integrated with @contextjs/configuration
  • Simple fluent API for loading files

📦 Installation

npm i @contextjs/configuration-json

🚀 Quick Start

import { Application } from "@contextjs/system";
import "@contextjs/configuration";
import "@contextjs/configuration-json";

const app = new Application();

app.useConfiguration(options => {
    options.useJsonConfiguration(json => {
        json.useFile("appsettings.json");
        json.useFile("appsettings.development.json", "development");
    });
});

const port = await app.configuration.getValueAsync("App:Port");

🧩 Extensions

/**
 * Extends ConfigurationOptions with support for JSON-based configuration.
 */
declare module "@contextjs/configuration" {
    export interface ConfigurationOptions {
        /**
         * Adds a JSON configuration provider to the application.
         *
         * @param options A callback to configure JSON file sources.
         * @returns The current ConfigurationOptions instance.
         */
        useJsonConfiguration(options: (configurationOptions: JsonConfigurationOptions) => void): ConfigurationOptions;
    }
}

🔧 JsonConfigurationOptions

/**
 * Provides options for configuring JSON-based configuration sources.
 */
export declare class JsonConfigurationOptions {
    /**
     * Registers a JSON file as a configuration source.
     *
     * @param file The path to the configuration file.
     * @returns The current JsonConfigurationOptions instance.
     */
    public useFile(file: string): JsonConfigurationOptions;

    /**
     * Registers a JSON file for a specific environment.
     *
     * @param file The path to the configuration file.
     * @param environmentName The target environment name (e.g., "development").
     * @returns The current JsonConfigurationOptions instance.
     */
    public useFile(file: string, environmentName: string): JsonConfigurationOptions;
}

Package Sidebar

Install

npm i @contextjs/configuration-json

Weekly Downloads

63

Version

0.5.1-alpha.1

License

MIT

Unpacked Size

8.63 kB

Total Files

9

Last publish

Collaborators

  • ~contextjs