Skip to content

Commit f613bed

Browse files
committed
Refactor
1 parent f3a1e24 commit f613bed

File tree

5 files changed

+35
-34
lines changed

5 files changed

+35
-34
lines changed

src/cli.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { parseArgv } from './helpers/parse'
22
import { deployEnv } from './utils/vercel-env'
33

4-
const { deploymentEnv, varNameList } = parseArgv(process.argv)
5-
if (!varNameList) deployEnv(deploymentEnv)
6-
else deployEnv(deploymentEnv, varNameList)
4+
const { deploymentEnv, varNameArr } = parseArgv(process.argv)
5+
if (!varNameArr) deployEnv(deploymentEnv)
6+
else deployEnv(deploymentEnv, varNameArr)

src/helpers/parse.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ export const parseArgv = (argv: typeof process.argv) => {
66
argv[2] === 'preview' ||
77
argv[2] === 'development'
88
) {
9-
const [deploymentEnv,...varNameList]: Argv = [argv[2],...argv.slice(3)]
9+
const [deploymentEnv,...varNameArr]: Argv = [argv[2],...argv.slice(3)]
1010

11-
return { deploymentEnv, varNameList: varNameList.length ? varNameList : null }
11+
return { deploymentEnv, varNameArr: varNameArr.length ? varNameArr : null }
1212
}
1313
else {
1414
console.log( 'Usage: deploy-env [production | preview | development] [ENV_VAR]...' )

src/types/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
export type DeploymentEnv = 'production' | 'preview' | 'development'
22
export type Argv = [DeploymentEnv,...string[]]
3-
export type EnvVarMap = Record<string, string>
3+
export type EnvMap = Record<string, string>

src/utils/get-env.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
import { exists } from '../helpers/helpers'
22
import { GetEnvVars } from 'env-cmd'
3-
import type { DeploymentEnv, EnvVarMap } from '../types/types'
3+
import type { DeploymentEnv, EnvMap } from '../types/types'
44

5-
export const getEnvVarMap = async (deploymentEnv: DeploymentEnv, varNameList?: string[]) => {
6-
let envVarMap: EnvVarMap
5+
export const getEnvMap = async (deploymentEnv: DeploymentEnv, varNameArr?: string[]) => {
6+
let envMap: EnvMap
77

88
if (await exists(`.env.${deploymentEnv}`)) {
9-
envVarMap = await GetEnvVars({ envFile: { filePath: `.env.${deploymentEnv}` } })
9+
envMap = await GetEnvVars({ envFile: { filePath: `.env.${deploymentEnv}` } })
1010
}
1111
else if (await exists('.env')) {
12-
envVarMap = await GetEnvVars({ envFile: { filePath: '.env' } })
12+
envMap = await GetEnvVars({ envFile: { filePath: '.env' } })
1313
}
1414
else {
15-
envVarMap = await GetEnvVars({ rc: { environments: [deploymentEnv] } })
15+
envMap = await GetEnvVars({ rc: { environments: [deploymentEnv] } })
1616
}
1717

18-
if (varNameList) {
19-
const filteredEnvVarMap: EnvVarMap = {}
20-
for (const varName of varNameList) filteredEnvVarMap[varName] = envVarMap[varName]
21-
return filteredEnvVarMap
18+
if (varNameArr) {
19+
const filteredEnvMap: EnvMap = {}
20+
for (const varName of varNameArr) filteredEnvMap[varName] = envMap[varName]
21+
return filteredEnvMap
2222
}
2323

24-
return envVarMap
24+
return envMap
2525
}

src/utils/vercel-env.ts

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,39 @@
11
import { exec, limit } from '../helpers/helpers'
22
import { printStdout } from '../helpers/print'
3-
import { getEnvVarMap } from './get-env'
4-
import type { DeploymentEnv, EnvVarMap } from '../types/types'
3+
import { getEnvMap } from './get-env'
4+
import type { DeploymentEnv, EnvMap } from '../types/types'
55

6-
const removeEnv = async (deploymentEnv: DeploymentEnv, envVarMap: EnvVarMap) => {
7-
const stdoutList: Promise<void>[] = []
8-
for (const varName in envVarMap) {
9-
stdoutList.push(
6+
const removeEnv = async (deploymentEnv: DeploymentEnv, envMap: EnvMap) => {
7+
const stdoutArr: Promise<void>[] = []
8+
9+
for (const varName in envMap) {
10+
stdoutArr.push(
1011
limit(() => exec( `vercel env rm ${varName} ${deploymentEnv} -y` ).then(printStdout))
1112
)
1213
}
1314

14-
await Promise.all(stdoutList)
15+
await Promise.all(stdoutArr)
1516
}
1617

17-
const addEnv = async (deploymentEnv: DeploymentEnv, envVarMap: EnvVarMap) => {
18+
const addEnv = async (deploymentEnv: DeploymentEnv, envMap: EnvMap) => {
1819
// new syntax: https://github.com/vercel/vercel/pull/5413 released in v21 https://github.com/vercel/vercel/releases/tag/vercel%4021.0.0
1920
// ref: https://github.com/vercel/vercel/blob/vercel%4021.0.0/packages/now-cli/src/types.ts#L206
2021
const varType = 'secret'
21-
const stdoutList: Promise<void>[] = []
22+
const stdoutArr: Promise<void>[] = []
2223

23-
for (const varName in envVarMap) {
24-
const varValue = envVarMap[varName]
25-
stdoutList.push(
24+
for (const varName in envMap) {
25+
const varValue = envMap[varName]
26+
stdoutArr.push(
2627
limit(() => exec( `printf %s "${varValue}" | vercel env add ${varType} ${varName} ${deploymentEnv}` ).then(printStdout))
2728
)
2829
}
2930

30-
await Promise.all(stdoutList)
31+
await Promise.all(stdoutArr)
3132
}
3233

33-
export const deployEnv = async (deploymentEnv: DeploymentEnv, varNameList?: string[]) => {
34-
const envVarMap = await getEnvVarMap(deploymentEnv, varNameList)
34+
export const deployEnv = async (deploymentEnv: DeploymentEnv, varNameArr?: string[]) => {
35+
const envMap = await getEnvMap(deploymentEnv, varNameArr)
3536

36-
await removeEnv(deploymentEnv, envVarMap)
37-
await addEnv(deploymentEnv, envVarMap)
37+
await removeEnv(deploymentEnv, envMap)
38+
await addEnv(deploymentEnv, envMap)
3839
}

0 commit comments

Comments
 (0)