From 994d343d0b927291426ed333d0da16879db13323 Mon Sep 17 00:00:00 2001 From: recursivefunk Date: Wed, 8 Apr 2026 17:16:43 -0400 Subject: [PATCH] Fix float parsing bug --- package.json | 2 +- src/index.js | 11 +++-------- test/test.env | 1 + test/test.js | 12 ++++++++++++ 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 6dbd00a..eda0125 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "good-env", - "version": "7.6.1", + "version": "7.6.2", "description": "Better environment variable handling for Twelve-Factor node apps", "main": "src/index.js", "scripts": { diff --git a/src/index.js b/src/index.js index 011cec7..99a0901 100644 --- a/src/index.js +++ b/src/index.js @@ -331,14 +331,9 @@ module.exports = Object */ getNumber (key, defaultVal) { const value = this.get(key, defaultVal); - const intVal = parseInt(value, 10); - const valIsInt = Number.isInteger(intVal); - - if (value === defaultVal) { - return value; - } else if (valIsInt) { - return intVal; - } + if (value === defaultVal) return value; + const num = parseFloat(value); + if (!isNaN(num)) return num; }, /** diff --git a/test/test.env b/test/test.env index bf38f33..07eca01 100644 --- a/test/test.env +++ b/test/test.env @@ -1,6 +1,7 @@ FOO=bar BANG=boop INT_NUM=10 +FLOAT_NUM=3.14 MY_LIST=foo ,bar,beep MY_TRUE_KEY=true MY_FALSE_KEY=false diff --git a/test/test.js b/test/test.js index 35ea77a..43ec26e 100644 --- a/test/test.js +++ b/test/test.js @@ -255,6 +255,18 @@ test('returns integers', (t) => { t.end(); }); +test('returns floats', (t) => { + let result = env.getNumber('FLOAT_NUM'); + t.equals(result, 3.14); + result = null; + result = env.num('FLOAT_NUM'); + t.equals(result, 3.14); + result = null; + result = env.num(['INTT', 'FLOAT_NUM']); + t.equals(result, 3.14); + t.end(); +}); + test('returns undefined for non-exequalsting number', (t) => { const result = env.getNumber('INT_NOT_HERE'); t.equals(undefined, result);