From cf5617cfd6c3d3d783373925e0b9ba4e27a7f041 Mon Sep 17 00:00:00 2001 From: Khalifa Idris <9752838+unclekhalifa@users.noreply.github.com> Date: Wed, 5 Jun 2024 13:43:40 +0100 Subject: [PATCH 1/3] Add fix to support passing in JSON as string via command line arguments --- packages/gcp-cloud-run/package.json | 2 +- .../src/utils/get-valid-secrets.ts | 30 +++++++++++++------ .../src/utils/get-valid-secrets.ts | 30 +++++++++++++------ 3 files changed, 43 insertions(+), 19 deletions(-) diff --git a/packages/gcp-cloud-run/package.json b/packages/gcp-cloud-run/package.json index 5201743d..416bd0c3 100644 --- a/packages/gcp-cloud-run/package.json +++ b/packages/gcp-cloud-run/package.json @@ -1,6 +1,6 @@ { "name": "@nx-extend/gcp-cloud-run", - "version": "10.1.1", + "version": "10.1.2", "homepage": "https://github.com/TriPSs/nx-extend/blob/master/packages/gcp-cloud-run/README.md", "bugs": { "url": "https://github.com/tripss/nx-extend/issues" diff --git a/packages/gcp-cloud-run/src/utils/get-valid-secrets.ts b/packages/gcp-cloud-run/src/utils/get-valid-secrets.ts index 97000dd2..5432e814 100644 --- a/packages/gcp-cloud-run/src/utils/get-valid-secrets.ts +++ b/packages/gcp-cloud-run/src/utils/get-valid-secrets.ts @@ -1,21 +1,33 @@ import { logger } from '@nx/devkit' -export function getValidSecrets(secrets?: string[] | Record): string[] { +export function getValidSecrets( + secrets?: string | string[] | Record +): string[] { if (!secrets) { return [] } + if (typeof secrets === 'string') { + secrets = JSON.parse(secrets) + } + if (!Array.isArray(secrets)) { - secrets = Object.keys(secrets).map((secret) => `${secret}=${secrets[secret]}`) + secrets = Object.keys(secrets).map( + (secret) => `${secret}=${secrets[secret]}` + ) } - return secrets.map((secret) => { - if (secret.includes('=') && secret.includes(':')) { - return secret - } + return secrets + .map((secret) => { + if (secret.includes('=') && secret.includes(':')) { + return secret + } - logger.warn(`"${secret}" is not a valid secret! It should be in the following format "ENV_VAR_NAME=SECRET:VERSION"`) + logger.warn( + `"${secret}" is not a valid secret! It should be in the following format "ENV_VAR_NAME=SECRET:VERSION"` + ) - return false - }).filter(Boolean) as string[] + return false + }) + .filter(Boolean) as string[] } diff --git a/packages/gcp-functions/src/utils/get-valid-secrets.ts b/packages/gcp-functions/src/utils/get-valid-secrets.ts index 97000dd2..5432e814 100644 --- a/packages/gcp-functions/src/utils/get-valid-secrets.ts +++ b/packages/gcp-functions/src/utils/get-valid-secrets.ts @@ -1,21 +1,33 @@ import { logger } from '@nx/devkit' -export function getValidSecrets(secrets?: string[] | Record): string[] { +export function getValidSecrets( + secrets?: string | string[] | Record +): string[] { if (!secrets) { return [] } + if (typeof secrets === 'string') { + secrets = JSON.parse(secrets) + } + if (!Array.isArray(secrets)) { - secrets = Object.keys(secrets).map((secret) => `${secret}=${secrets[secret]}`) + secrets = Object.keys(secrets).map( + (secret) => `${secret}=${secrets[secret]}` + ) } - return secrets.map((secret) => { - if (secret.includes('=') && secret.includes(':')) { - return secret - } + return secrets + .map((secret) => { + if (secret.includes('=') && secret.includes(':')) { + return secret + } - logger.warn(`"${secret}" is not a valid secret! It should be in the following format "ENV_VAR_NAME=SECRET:VERSION"`) + logger.warn( + `"${secret}" is not a valid secret! It should be in the following format "ENV_VAR_NAME=SECRET:VERSION"` + ) - return false - }).filter(Boolean) as string[] + return false + }) + .filter(Boolean) as string[] } From a1f676aa5f4414eaf87e048f89f8c132d89d05d7 Mon Sep 17 00:00:00 2001 From: Khalifa Idris <9752838+unclekhalifa@users.noreply.github.com> Date: Wed, 5 Jun 2024 13:55:45 +0100 Subject: [PATCH 2/3] Add try/catch --- .../src/utils/get-valid-secrets.ts | 6 +++- .../src/utils/get-valid-secrets.ts | 34 ++++++++----------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/gcp-cloud-run/src/utils/get-valid-secrets.ts b/packages/gcp-cloud-run/src/utils/get-valid-secrets.ts index 5432e814..1e6d559f 100644 --- a/packages/gcp-cloud-run/src/utils/get-valid-secrets.ts +++ b/packages/gcp-cloud-run/src/utils/get-valid-secrets.ts @@ -8,7 +8,11 @@ export function getValidSecrets( } if (typeof secrets === 'string') { - secrets = JSON.parse(secrets) + try { + secrets = JSON.parse(secrets) + } catch { + throw new Error('Invalid JSON passed to secrets argument') + } } if (!Array.isArray(secrets)) { diff --git a/packages/gcp-functions/src/utils/get-valid-secrets.ts b/packages/gcp-functions/src/utils/get-valid-secrets.ts index 5432e814..56b23fa6 100644 --- a/packages/gcp-functions/src/utils/get-valid-secrets.ts +++ b/packages/gcp-functions/src/utils/get-valid-secrets.ts @@ -1,33 +1,29 @@ import { logger } from '@nx/devkit' -export function getValidSecrets( - secrets?: string | string[] | Record -): string[] { +export function getValidSecrets(secrets?: string | string[] | Record): string[] { if (!secrets) { return [] } if (typeof secrets === 'string') { - secrets = JSON.parse(secrets) + try { + secrets = JSON.parse(secrets) + } catch { + throw new Error('Invalid JSON passed to secrets argument') + } } - if (!Array.isArray(secrets)) { - secrets = Object.keys(secrets).map( - (secret) => `${secret}=${secrets[secret]}` - ) + if (!Array.isArray(secrets)) { + secrets = Object.keys(secrets).map((secret) => `${secret}=${secrets[secret]}`) } - return secrets - .map((secret) => { - if (secret.includes('=') && secret.includes(':')) { - return secret - } + return secrets.map((secret) => { + if (secret.includes('=') && secret.includes(':')) { + return secret + } - logger.warn( - `"${secret}" is not a valid secret! It should be in the following format "ENV_VAR_NAME=SECRET:VERSION"` - ) + logger.warn(`"${secret}" is not a valid secret! It should be in the following format "ENV_VAR_NAME=SECRET:VERSION"`) - return false - }) - .filter(Boolean) as string[] + return false + }).filter(Boolean) as string[] } From 1ba4ef83039f2185540370120379aafe80e3f416 Mon Sep 17 00:00:00 2001 From: Khalifa Idris <9752838+unclekhalifa@users.noreply.github.com> Date: Wed, 5 Jun 2024 13:57:06 +0100 Subject: [PATCH 3/3] Bump gcp-functions version --- packages/gcp-functions/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/gcp-functions/package.json b/packages/gcp-functions/package.json index 8510df65..2462465a 100644 --- a/packages/gcp-functions/package.json +++ b/packages/gcp-functions/package.json @@ -1,6 +1,6 @@ { "name": "@nx-extend/gcp-functions", - "version": "13.1.4", + "version": "13.1.5", "homepage": "https://github.com/TriPSs/nx-extend/blob/master/packages/gcp-functions/README.md", "bugs": { "url": "https://github.com/tripss/nx-extend/issues"