all files / dotenv-parser/lib/ dotenv-lib.js

100% Statements 10/10
100% Branches 2/2
100% Functions 3/3
100% Lines 10/10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47                              17×                 16×               114× 100×         100×      
'use strict';
 
const
    fs = require('fs'),
    defaults = {
        file: ".env",
        encoding: "utf8"
    };
 
module.exports = {setProcessEnv, setSettings, readEnvFile};
 
/**
 * Set settings Object before env parse.
 *
 * @param {Object} options
 * @returns {Object} settings
 */
function setSettings (options) {
    return Object.assign({}, defaults, options);
}
 
/**
 * Read env file and return array of rows.
 *
 * @param {Object} settings
 * @returns {Array} env rows
 */
function readEnvFile (settings) {
    return fs.readFileSync(settings.file, {encoding: settings.encoding}).split('\n');
}
 
/**
 * Add envs to global process.env array
 *
 * @param {Array} row
 */
function setProcessEnv (row) {
    if (row) {
        let
            env = row.match(/^([\w\.\-]+)=(.*)$/i),
            key = env[1],
            val = env[2];
 
        process.env[key.toUpperCase()] = val;
    }
}