1.1.2 • Published 2 years ago

@masterarthur/config v1.1.2

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

@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

ParamTypeDescription
pathstringkey of value
defaultValuestringdefault value env variable
castFunctionfunction that casts string value of env variable to type we need
validateFunctionFunction that validates casted value and if it returns false config function will throw error
autocastbooleanby default true, if it's true config function will automaticly cast value of env variable to number/boolean/null/undefined

makeConfig arguments

ParamTypeDescription
filenamePathLikePath to configuration file
parserFunction or AsyncFunctionby default parses .env and .json files, in case you need parse custom file type you need pass your own parser
1.1.1

2 years ago

1.1.0

2 years ago

1.1.2

2 years ago

1.0.0

2 years ago