Skip to content

Commit

Permalink
Start using env-var library to parse environment config
Browse files Browse the repository at this point in the history
Relates-to: #319
  • Loading branch information
mattwynne committed Nov 24, 2020
1 parent 1490a3b commit 7c9d392
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 10 deletions.
1 change: 1 addition & 0 deletions packages/config/package.json
Expand Up @@ -26,6 +26,7 @@
},
"homepage": "https://github.com/smartbear/git-en-boite#readme",
"dependencies": {
"env-var": "^7.0.0",
"ioredis": "^4.19.2"
},
"devDependencies": {
Expand Down
20 changes: 10 additions & 10 deletions packages/config/src/config.ts
@@ -1,4 +1,5 @@
import path from 'path'
import * as getEnv from 'env-var'

const appRoot = path.resolve(__dirname, '../../..')

Expand All @@ -18,10 +19,9 @@ export type LoggerOptions = {
readableBy: 'humans' | 'machines' | 'nobody'
}

const createGitConfig = (env: { GIT_ROOT?: string }): GitOptions => {
if (!env.GIT_ROOT) throw new Error('Please set GIT_ROOT')
const createGitConfig = (env: { get: (key: string) => getEnv.IOptionalVariable }): GitOptions => {
return {
root: env.GIT_ROOT,
root: env.get('GIT_ROOT').required().asString(),
queueName: 'main',
}
}
Expand All @@ -35,9 +35,8 @@ const createVersionConfig = (env: { npm_package_version?: string }, fs: any): st
return `${env.npm_package_version}.${fs.readFileSync(buildNumPath)}`
}

const createRedisConfig = (env: { REDIS_URL?: string }): string => {
if (!env.REDIS_URL) throw new Error('Please set REDIS_URL')
return env.REDIS_URL
const createRedisConfig = (env: { get: (key: string) => getEnv.IOptionalVariable }): string => {
return env.get('REDIS_URL').required().asString()
}

const createLoggerConfig = (env: { NODE_ENV?: string }): LoggerOptions => {
Expand All @@ -51,12 +50,13 @@ type Environment = {
npm_package_version?: string
}

export const createConfig = (env: Environment = process.env, fs = require('fs')): Config => {
if (!env.NODE_ENV) throw new Error('Please set NODE_ENV')
export const createConfig = (rawEnv: Environment = process.env, fs = require('fs')): Config => {
const env = getEnv.from(rawEnv)
if (!rawEnv.NODE_ENV) throw new Error('Please set NODE_ENV')
return {
git: createGitConfig(env),
version: createVersionConfig(env, fs),
version: createVersionConfig(rawEnv, fs),
redis: createRedisConfig(env),
logger: createLoggerConfig(env),
logger: createLoggerConfig(rawEnv),
}
}
5 changes: 5 additions & 0 deletions yarn.lock
Expand Up @@ -2109,6 +2109,11 @@ enquirer@^2.3.5:
dependencies:
ansi-colors "^3.2.1"

env-var@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/env-var/-/env-var-7.0.0.tgz#db3e4733ec419d8fa3bc49b67a4d2ff8cbb14294"
integrity sha512-XnoXQhg98QpSQqpBjySM3VjXGVrIvisgFbFURxAxOymarLzlcdvy6Y3qlnvZFaAp5j99qwSbRwqbrZtug/0x9w==

error-ex@^1.2.0, error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
Expand Down

0 comments on commit 7c9d392

Please sign in to comment.