From 64e4b9e300308cc732e7ba5129cc8df38fdc9cbc Mon Sep 17 00:00:00 2001 From: HSnils Date: Sat, 25 Sep 2021 19:36:22 +0200 Subject: [PATCH 1/2] test(generate): add test for overriding using process.env --- test/commands/generate.test.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/commands/generate.test.ts b/test/commands/generate.test.ts index aa9b51c..7a2bef3 100644 --- a/test/commands/generate.test.ts +++ b/test/commands/generate.test.ts @@ -129,4 +129,29 @@ describe('iwa generate', () => { expect(result2).toBe(expected2); }); + + it('should overide iwarc value using process.env', async () => { + const overrideValue = 'OVERRIDE_VALUE'; + process.env.KEY = overrideValue; + await GenerateCommand.run(['./test/index.html', '-c', iwarcFile, '-e', 'production']); + + const result = fs.readFileSync(entryFilePath, { + encoding: 'utf-8', + }); + + const expected = html` + + + + + + + + + + + `; + + expect(result).toBe(expected); + }); }); From c0cde64e9882441a49fdd1340517db4526b8cd8a Mon Sep 17 00:00:00 2001 From: HSnils Date: Sat, 25 Sep 2021 19:37:46 +0200 Subject: [PATCH 2/2] feat(generate): remove use of lodash.pick --- package.json | 1 - src/commands/generate.ts | 5 ++--- src/helpers.ts | 7 +++++++ test/commands/generate.test.ts | 2 +- yarn.lock | 5 ----- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 3c57a3e..98e9824 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,6 @@ "chalk": "^4.1.0", "common-tags": "^1.8.0", "cosmiconfig": "^7.0.0", - "lodash.pick": "^4.4.0", "staged-git-files": "^1.2.0", "tslib": "^2.1.0" }, diff --git a/src/commands/generate.ts b/src/commands/generate.ts index 3515155..12a214f 100644 --- a/src/commands/generate.ts +++ b/src/commands/generate.ts @@ -1,12 +1,11 @@ import fs from 'fs'; import path from 'path'; -import pick from 'lodash.pick'; import chalk from 'chalk'; import { cosmiconfig } from 'cosmiconfig'; import { Command, flags as flagTypes } from '@oclif/command'; -import { replaceIWA } from '../helpers'; +import { replaceIWA, getOverridesFromProcessEnv } from '../helpers'; const explorer = cosmiconfig('iwa'); @@ -48,7 +47,7 @@ class GenerateCommand extends Command { const cosmicDefaultData = cosmic.config.env.all || {}; const cosmicData = cosmic.config.env[env]; - const processOverrideData = pick(process.env, Object.keys(cosmicData)); + const processOverrideData = getOverridesFromProcessEnv(cosmicData); const iwaConfig = { ...cosmicDefaultData, ...cosmicData, diff --git a/src/helpers.ts b/src/helpers.ts index f15a0b5..c74ef08 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -16,3 +16,10 @@ export function hasIWAConfig(input: string) { return match && match[0] !== ''; } + +export function getOverridesFromProcessEnv(cosmicData: { [key: string]: string }) { + return Object.keys(cosmicData) + .filter((key: string) => process.env[key]) + .map((key: string) => ({ [key]: process.env[key] })) + .reduce((prev, curr) => ({ ...prev, ...curr }), {}); +} diff --git a/test/commands/generate.test.ts b/test/commands/generate.test.ts index 7a2bef3..3117bff 100644 --- a/test/commands/generate.test.ts +++ b/test/commands/generate.test.ts @@ -134,7 +134,7 @@ describe('iwa generate', () => { const overrideValue = 'OVERRIDE_VALUE'; process.env.KEY = overrideValue; await GenerateCommand.run(['./test/index.html', '-c', iwarcFile, '-e', 'production']); - + const result = fs.readFileSync(entryFilePath, { encoding: 'utf-8', }); diff --git a/yarn.lock b/yarn.lock index 7fecb01..d253d2e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3965,11 +3965,6 @@ lodash.kebabcase@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= -lodash.pick@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23"