From c23a4bf75d0eb2669fe91831c5d0ac69f62b1216 Mon Sep 17 00:00:00 2001 From: Andrew Bastin Date: Tue, 17 Aug 2021 14:39:22 +0530 Subject: [PATCH] feat: aggregated environment variable stream --- newstore/environments.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/newstore/environments.ts b/newstore/environments.ts index 0004147fe..ebb26f50a 100644 --- a/newstore/environments.ts +++ b/newstore/environments.ts @@ -259,6 +259,29 @@ export const currentEnvironment$ = combineLatest([ }) ) +/** + * Stream returning all the environment variables accessible in + * the current state (Global + The Selected Environment). + * NOTE: The source environment attribute will be "global" for Global Env as source. + */ +export const aggregateEnvs$ = combineLatest([ + currentEnvironment$, + globalEnv$, +]).pipe( + map(([selectedEnv, globalVars]) => { + const results: { key: string; value: string; sourceEnv: string }[] = [] + + selectedEnv.variables.forEach(({ key, value }) => + results.push({ key, value, sourceEnv: selectedEnv.name }) + ) + globalVars.forEach(({ key, value }) => + results.push({ key, value, sourceEnv: "global" }) + ) + + return results + }) +) + export function getCurrentEnvironment(): Environment { if (environmentsStore.value.currentEnvironmentIndex === -1) { return {