npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@injex/env-plugin

v4.0.0-alpha.2

Published

<img src="https://img.shields.io/npm/v/@injex/env-plugin?style=for-the-badge" />

Downloads

51

Readme

Env Plugin

The Env Plugin defines and manages multiple environment variables based on the process.env.NODE_ENV variable, with a fallback to default variables option.

The plugin adds the relevant environment object to the runtime container so you can inject it into any module as a dependency.

This is NOT a runtime specific plugin and can be used on all Injex's runtimes.

Installation

You can install the Env Plugin via NPM

npm install --save @injex/env-plugin

or Yarn

yarn add @injex/env-plugin

Initialization

Creating the plugin and passing it to the runtime container config object

import { Injex } from "@injex/node";
import { EnvPlugin } from "@injex/env-plugin";

Injex.create({
    rootDirs: [__dirname],
    plugins: [
        new EnvPlugin({
            name: 'env',
            current: "production",
            defaults: {
                myVar: 123
            },
            environments: {
                development: {
                    logLevel: "verbose"
                },
                production: {
                    logLevel: "silence"
                }
            }
        })
    ]
});

Configurations

You can pass the following configurations to the EnvPlugin.

name

The environment object name, as it will be used in the runtime container for later injection.

  • Type: string
  • Default: env
  • Required: false

current

Enforce an environment by its name.

  • Type: string
  • Default: process.env.NODE_ENV
  • Required: false

defaults

An object with default values to be used as a fallback to the selected environment.

  • Type: object
  • Default: {}
  • Required: false

environments

An object contains the environments and their variables.

For example:

const plugin = new EnvPlugin({
    ...
    environments: {
        development: {
            arg1: 1,
            arg2: 2
        },
        production: {
            arg1: 3,
            arg2: 4
        },
        test: {
            arg1: 5,
            arg2: 6
        }
    }
});
  • Type: object
  • Default: {}
  • Required: false

Usage

To inject the environment object created by the plugin into other modules using the @inject() decorator.

@define()
@singleton()
export class MyService {
    @inject() private env;

    @init()
    public initialize() {
        console.log(this.env.logLovel); // "silence"
        console.log(this.env.myVar); // 123
    }
}