New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@labdigital/enviconf

Package Overview
Dependencies
Maintainers
0
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@labdigital/enviconf

A simple library to parse environment variables

  • 0.7.0
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
1K
increased by7.84%
Maintainers
0
Weekly downloads
 
Created
Source

@labdigital/enviconf

A simple configuration library that loads configuration from environment variables and provides a simple interface to access them.

Inspired by https://github.com/caarlos0/env

Example

Without decorators


import { BaseConfig, EnviConfig, envfield } from "@labdigital/enviconf";

class SampleConfig extends BaseConfig {
	/** The port number to listen on */
	readonly HTTP_PORT: number = 4000

	config(): EnviConfig {
		return {
			HTTP_PORT: envfield.number({
				// optional, defaults to false. Sets empty value if no env variable is set
				optional: true,

				// optional, defaults to false. Unsets the env variable after reading
				unset: true,

				// optional, env variable to read the value from, defaults to the property name
				envName: "MY_HTTP_PORT",

				// optional, defaults to undefined. Allows setting a custom validator, should
				// throw an error if the value is invalid
				validator:  (value: number) => value > 0,
			}),
		}
	}
}
const config = SampleConfig.load()

config.HTTP_PORT === 4000

With decorators


import { BaseConfig, envprop } from "@labdigital/enviconf";

class SampleConfig extends BaseConfig {
  @envprop.string()
  public readonly MY_STRING_VARIABLE: string = "default value";

  @envprop.number()
  public readonly MY_NUMBER_VARIABLE: number = 123;

  // Read JSON values
  @envprop.object()
  public readonly MY_OBJECT_VALUE: object = { foo: "bar" };

  @envprop.number({
    // optional, defaults to false. Sets empty value if no env variable is set
    optional: true,

    // optional, defaults to false. Unsets the env variable after reading
    unset: true,

    // optional, env variable to read the value from, defaults to the property name
    envName: "MY_OTHER_ENV_VARIABLE",

    // optional, defaults to ", ". Allows setting a custom separator for array values
    envSeparator: ", ",

    // optional, defaults to undefined. Allows setting a custom validator, should
    // throw an error if the value is invalid
    validator:  (value: number) => value > 0,
  })
  public readonly ALL_OPTIONS: number = 123;
}

const config = SampleConfig.load({
  // optional, path to the .env values, defaults to ".env"
  path: ".env",

  // optional, indicates if a .env file should be read, defaults to true
  loadEnv: true,

  // optional, if set, will be used as prefix for all env variables while
  // falling back to the original name if the prefixed variable is not set
  envPrefix: "MY_APP_",
})

FAQs

Package last updated on 11 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc