‚̧Nominal Pizza Masticator
    Wondering what‚Äôs next for npm?Check out our public roadmap! ¬Ľ

    dotenv-manipulator
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.1¬†‚Äʬ†Public¬†‚Äʬ†Published

    Build Status Known Vulnerabilities DeepScan grade NPM download count CodeFactor Discord badge

    Introduction

    dotenv-Manipulator :

    • Loads environment variables from a .env file to process.env
    • Adds, updates, or removes variables from both your .env file and process.env at runtime
    • Has no dependency (you don't need the dotenv package)

    Installation

    npm i dotenv-manipulator

    Import/require

    const Manipulator = require('dotenv-manipulator')
    // or
    import Manipulator from 'dotenv-manipulator'

    Setup and start

    Manipulator constructor has 3 optional arguments:

    new Manipulator(envPath, throwable, encoding)
    • Path to .env, default is process.cwd().
    • If set to true functions throw errors whenever there's an incorrect input.
    • Specify file encoding, default is utf8.
    // basic setup
    const Manipulator = require('dotenv-manipulator')
    const dotenvM = new Manipulator()
    // complete setup
    const Manipulator = require('dotenv-manipulator')
    const dotenvM = new Manipulator('/path/to/project', false, 'utf-8')
    // undefined = default value
    const Manipulator = require('dotenv-manipulator')
    const dotenvM = new Manipulator(undefined, true, 'latin1')

    Manipulate

    Add

    Add object keys and values to .env file and process.env

    const obj = { REMOTE: '95.81.123.228', PORT: 3000 }
    dotenvM.add(obj)
    console.log(process.env.REMOTE) //=> '95.81.123.228'
    console.log(process.PORT) //=> '3000'

    .env file :

    PORT=3000
    REMOTE=95.81.123.228

    Update

    To update a variable use

    dotenvM.add(obj, true)

    Example

    Before

    • console.log(process.env.REMOTE)¬†//=>¬†'95.81.123.228'
    • ¬†PORT=300
       REMOTE=95.81.123.228

    Then

    dotenvM.add({ REMOTE : '38.10.10.25' }, true)

    After

    • console.log(process.env.REMOTE)¬†//=>¬†'38.10.10.25'
    • PORT=300
      REMOTE=38.10.10.25

    Remove

    Remove variable(s) from .env file and process.env

    dotenvM.remove(input)

    Inputs are keys from an object, an array or a string :
    here's three way to achieve the same result.

     
    // #1
    dotenvM.remove('REMOTE')
    dotenvM.remove('PORT')
     
    // #2
    dotenvM.remove(['REMOTE', 'PORT'])
     
    // #3
    dotenvM.remove({ REMOTE: 'value that dotenvM wont read', PORT: 'no.. really it doesnt care' })

    Try catch and DEBUG

    Here's two example :

    // DEBUGGING
    dotenvM.throwable = false
     
    let debug = dotenvM.add(['wrong', 'type', 'of', 'data'])
    let debug_1 = dotenvM.add({ GOOOD: 'type', OF: 'data' })
    console.log(debug.message)
    //=> [ADD_ERROR]: object must be [object Object] but received [object Array]
    console.log(debug_1)
    //=> undefined
    // TRY CATCH
    dotenvM.throwable = true
     
    try {
      dotenvM.add(['wrong', 'type', 'of', 'data'])
    } catch(e) {
      console.log(e.message)
      //=> [ADD_ERROR]: object must be [object Object] but received [object Array]
    }

    API

    Full documentation available here

    Install

    npm i dotenv-manipulator

    DownloadsWeekly Downloads

    75

    Version

    3.0.1

    License

    MIT

    Unpacked Size

    52.3 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar