From b34932cc8ce801afb6c4aed2174b5d5891908229 Mon Sep 17 00:00:00 2001 From: maxime Date: Sun, 26 May 2024 17:21:04 +0200 Subject: [PATCH] fix: fixed invalid ssm order --- packages/api/src/libs/ssm.ts | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/packages/api/src/libs/ssm.ts b/packages/api/src/libs/ssm.ts index c9e4b473..a33adbca 100644 --- a/packages/api/src/libs/ssm.ts +++ b/packages/api/src/libs/ssm.ts @@ -26,9 +26,27 @@ export const getParameterValue = ( export const getParametersValue = (options: { Names: ParameterName[] WithDecryption: boolean -}) => - ssm - .send(new GetParametersCommand(options)) - .then( - (value) => value.Parameters?.map((parameter) => parameter.Value) ?? [] - ) +}) => { + /** + * parameters are not necessary in the same order when we get them + * so we will reorder them + */ + const orderMap = options.Names.reduce( + (acc, value, index) => { + acc[value as string] = index + + return acc + }, + {} as Record + ) + + return ssm.send(new GetParametersCommand(options)).then( + (value) => + value.Parameters?.slice() + .sort( + (a, b) => + (orderMap[a.Name ?? ``] ?? 1) - (orderMap[b.Name ?? ``] ?? 1) + ) + .map((parameter) => parameter.Value) ?? [] + ) +}