@masterarthur/config
TypeScript icon, indicating that this package has built-in type declarations

1.1.2 • Public • Published

@masterarthur/config

Lightweight zero-dependecy Javascript library for easy configuration for nodejs apps

Instalation

npm i @masterarthur/config

Usage examples

import { config } from "@masterarthur/config";
import mongoose from "mongoose";

const connectionString = config("MONGODB_URL");

await mongoose.connect(connectionString);
import { makeConfig } from "@masterarthur/config";
import express from "express";

const config = await makeConfig(".env");
const app = express();
// process.env.APP_PORT = "3000"
const port = config("APP_PORT"); // 3000

app.get("/", (req, res) => {
  res.send("Hello World!");
});

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`);
});

Also you can use require

const { config } = require("@masterarthur/config");
const data = config({
  path: "PAYLOAD",
  defaultValue: "{}",
  cast: JSON.parse,
  validate: (value) => !Array.isArray(value),
  autocast: false,
});

By default config function uses process.env to get data and you are able to use it two ways:

  • Inline

    function config<T>(
      path: string,
      defaultValue?: string,
      cast?: (value: string) => T,
      validate?: ValidateFunction,
      autocast?: boolean
    ): T;
  • Using object to pass arguments in any order

    function config<T>(params: {
      path: string;
      defaultValue?: string;
      cast?: (value: string) => T;
      validate?: ValidateFunction;
      autocast?: boolean;
    }): T;

Arguments

Param Type Description
path string key of value
defaultValue string default value env variable
cast Function function that casts string value of env variable to type we need
validate Function Function that validates casted value and if it returns false config function will throw error
autocast boolean by default true, if it's true config function will automaticly cast value of env variable to number/boolean/null/undefined

makeConfig arguments

Param Type Description
filename PathLike Path to configuration file
parser Function or AsyncFunction by default parses .env and .json files, in case you need parse custom file type you need pass your own parser

Package Sidebar

Install

npm i @masterarthur/config

Weekly Downloads

0

Version

1.1.2

License

ISC

Unpacked Size

9.2 kB

Total Files

10

Last publish

Collaborators

  • masterarthur