From 33daad697df414c3c4839719cbb96218f2e705b9 Mon Sep 17 00:00:00 2001 From: Jaco Date: Sat, 22 Jan 2022 08:49:58 +0100 Subject: [PATCH] Endpoint sort fix (#6864) --- packages/apps-config/src/endpoints/util.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/apps-config/src/endpoints/util.ts b/packages/apps-config/src/endpoints/util.ts index cd6a2755a6..791db93b97 100644 --- a/packages/apps-config/src/endpoints/util.ts +++ b/packages/apps-config/src/endpoints/util.ts @@ -8,8 +8,12 @@ interface SortOption { isUnreachable?: boolean; } +function sortNoop (): number { + return 0; +} + function sortLinks (a: SortOption, b: SortOption): number { - return a.isUnreachable !== b.isUnreachable + return !!a.isUnreachable !== !!b.isUnreachable ? a.isUnreachable ? 1 : -1 @@ -67,7 +71,8 @@ function expandEndpoint (t: TFunction, { dnslink, genesisHash, homepage, info, i const last = result[result.length - 1]; const options: LinkOption[] = []; - (withSort ? linked.sort(sortLinks) : linked) + linked + .sort(withSort ? sortLinks : sortNoop) .filter(({ paraId }) => paraId) .forEach((o) => options.push(...expandEndpoint(t, o, firstOnly, withSort)) @@ -81,7 +86,8 @@ function expandEndpoint (t: TFunction, { dnslink, genesisHash, homepage, info, i } export function expandEndpoints (t: TFunction, input: EndpointOption[], firstOnly: boolean, withSort: boolean): LinkOption[] { - return (withSort ? input.sort(sortLinks) : input).reduce((result, input) => - result.concat(expandEndpoint(t, input, firstOnly, withSort)), [] - ); + return input + .sort(withSort ? sortLinks : sortNoop) + .reduce((all: LinkOption[], e) => + all.concat(expandEndpoint(t, e, firstOnly, withSort)), []); }