From bc74e381ad42942f0f547ece7fa8f086f14bd7fb Mon Sep 17 00:00:00 2001 From: Shahed Nasser Date: Thu, 22 Aug 2024 13:51:36 +0300 Subject: [PATCH] feat(utils): use dotenv-expand to allow variables within env (#8720) --- packages/core/utils/package.json | 1 + packages/core/utils/src/common/load-env.ts | 3 ++- yarn.lock | 12 +++++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index 815e4e9a7a..c49198b049 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -38,6 +38,7 @@ "awilix": "^8.0.1", "bignumber.js": "^9.1.2", "dotenv": "^16.4.5", + "dotenv-expand": "^11.0.6", "json-2-csv": "^5.5.4", "jsonwebtoken": "^9.0.2", "knex": "2.4.2", diff --git a/packages/core/utils/src/common/load-env.ts b/packages/core/utils/src/common/load-env.ts index 7e191405f2..a6724362cf 100644 --- a/packages/core/utils/src/common/load-env.ts +++ b/packages/core/utils/src/common/load-env.ts @@ -1,4 +1,5 @@ import dotenv from "dotenv" +import { expand } from "dotenv-expand" import { join } from "path" const KNOWN_ENVIRONMENTS = ["staging", "production", "test"] @@ -19,6 +20,6 @@ export function loadEnv(environment: string, envDir: string) { ? `.env.${environment}` : ".env" try { - dotenv.config({ path: join(envDir, fileToLoad) }) + expand(dotenv.config({ path: join(envDir, fileToLoad) })) } catch {} } diff --git a/yarn.lock b/yarn.lock index 359b23938d..3f7a4f0b5c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5416,6 +5416,7 @@ __metadata: bignumber.js: ^9.1.2 cross-env: ^5.2.1 dotenv: ^16.4.5 + dotenv-expand: ^11.0.6 expect-type: ^0.19.0 express: ^4.18.2 jest: ^29.7.0 @@ -16566,6 +16567,15 @@ __metadata: languageName: node linkType: hard +"dotenv-expand@npm:^11.0.6": + version: 11.0.6 + resolution: "dotenv-expand@npm:11.0.6" + dependencies: + dotenv: ^16.4.4 + checksum: e22891ec72cb926d46d9a26290ef77f9cc9ddcba92d2f83d5e6f3a803d1590887be68e25b559415d080053000441b6f63f5b36093a565bb8c5c994b992ae49f2 + languageName: node + linkType: hard + "dotenv@npm:16.3.1": version: 16.3.1 resolution: "dotenv@npm:16.3.1" @@ -16573,7 +16583,7 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^16.0.0, dotenv@npm:^16.0.3, dotenv@npm:^16.4.5": +"dotenv@npm:^16.0.0, dotenv@npm:^16.0.3, dotenv@npm:^16.4.4, dotenv@npm:^16.4.5": version: 16.4.5 resolution: "dotenv@npm:16.4.5" checksum: 48d92870076832af0418b13acd6e5a5a3e83bb00df690d9812e94b24aff62b88ade955ac99a05501305b8dc8f1b0ee7638b18493deb6fe93d680e5220936292f