From 5b144894da18367af3635ff7a1489cabfb8159f6 Mon Sep 17 00:00:00 2001 From: Rob Knight Date: Sun, 15 Sep 2024 16:49:17 +0200 Subject: [PATCH] Remove use of lodash/chain --- .../screens/FrogScreens/ManageFeedsSection.tsx | 6 ++++-- .../screens/FrogScreens/ManageFrogsSection.tsx | 6 ++++-- apps/passport-client/src/util.ts | 10 +++++----- .../src/database/queries/frogcrypto.ts | 11 +++++------ 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/apps/passport-client/components/screens/FrogScreens/ManageFeedsSection.tsx b/apps/passport-client/components/screens/FrogScreens/ManageFeedsSection.tsx index b1788e80e8..b260b8c622 100644 --- a/apps/passport-client/components/screens/FrogScreens/ManageFeedsSection.tsx +++ b/apps/passport-client/components/screens/FrogScreens/ManageFeedsSection.tsx @@ -8,7 +8,6 @@ import { import { ErrorMessage, Separator } from "@pcd/passport-ui"; import { SerializedPCD } from "@pcd/pcd-types"; import { getErrorMessage } from "@pcd/util"; -import chain from "lodash/chain"; import upperFirst from "lodash/upperFirst"; import prettyMilliseconds from "pretty-ms"; import { useEffect, useMemo, useState } from "react"; @@ -293,7 +292,10 @@ export function DataTable({ })); const keys = data.length > 0 - ? chain(data).map(Object.keys).flatten().uniq().value() + ? data + .map(Object.keys) + .flat() + .filter((key, index, self) => self.indexOf(key) === index) : []; return ( diff --git a/apps/passport-client/components/screens/FrogScreens/ManageFrogsSection.tsx b/apps/passport-client/components/screens/FrogScreens/ManageFrogsSection.tsx index 73af09fc3b..d259bc7053 100644 --- a/apps/passport-client/components/screens/FrogScreens/ManageFrogsSection.tsx +++ b/apps/passport-client/components/screens/FrogScreens/ManageFrogsSection.tsx @@ -7,7 +7,6 @@ import { import { ErrorMessage, Separator } from "@pcd/passport-ui"; import { SerializedPCD } from "@pcd/pcd-types"; import { getErrorMessage } from "@pcd/util"; -import chain from "lodash/chain"; import { Dispatch, SetStateAction, useEffect, useState } from "react"; // react-table-lite does not have types // eslint-disable-next-line @typescript-eslint/ban-ts-comment @@ -277,7 +276,10 @@ export function DataTable({ }): JSX.Element { const keys = data.length > 0 - ? chain(data).map(Object.keys).flatten().uniq().value() + ? data + .map(Object.keys) + .flat() + .filter((key, index, self) => self.indexOf(key) === index) : []; const dataWithChecked = data.map((row) => ({ diff --git a/apps/passport-client/src/util.ts b/apps/passport-client/src/util.ts index cf2ccfac7c..b0270fc620 100644 --- a/apps/passport-client/src/util.ts +++ b/apps/passport-client/src/util.ts @@ -5,7 +5,6 @@ import { } from "@pcd/passport-interface"; import { splitPath } from "@pcd/pcd-collection"; import { sleep } from "@pcd/util"; -import chain from "lodash/chain"; import { v4 as uuid } from "uuid"; import { Dispatcher } from "./dispatch"; @@ -78,10 +77,11 @@ function getVerifyUrlPrefixes(): string[] { // Given an input string, check if there exists a ticket verify URL within it. // If so, return the last occurance of a verify URL. If not, return null. export function getLastValidVerifyUrl(inputString: string): string | null { - const lastValidUrlStartIdx = chain(getVerifyUrlPrefixes()) - .map((verifyUrlPrefix) => inputString.lastIndexOf(verifyUrlPrefix)) - .max() - .value(); + const lastValidUrlStartIdx = Math.max( + ...getVerifyUrlPrefixes().map((verifyUrlPrefix) => + inputString.lastIndexOf(verifyUrlPrefix) + ) + ); if (lastValidUrlStartIdx !== -1) { return inputString.slice(lastValidUrlStartIdx); } diff --git a/apps/passport-server/src/database/queries/frogcrypto.ts b/apps/passport-server/src/database/queries/frogcrypto.ts index db12aef497..5168989de0 100644 --- a/apps/passport-server/src/database/queries/frogcrypto.ts +++ b/apps/passport-server/src/database/queries/frogcrypto.ts @@ -10,8 +10,8 @@ import { FrogCryptoScore } from "@pcd/passport-interface"; import { PCDPermissionType } from "@pcd/pcd-collection"; -import chain from "lodash/chain"; import omit from "lodash/omit"; +import unzip from "lodash/unzip"; import { Client } from "pg"; import { Pool } from "postgres-pool"; import { parseFrogEnum } from "../../util/frogcrypto"; @@ -191,12 +191,11 @@ export async function sampleFrogData( pool: Pool, biomes: FrogCryptoFeedBiomeConfigs ): Promise { - const [biomeKeys, scalingFactors] = chain(biomes) - .toPairs() + const biomePairs = Object.entries(biomes); + const filteredPairs = biomePairs .map(([biome, config]) => [biome, config?.dropWeightScaler]) - .filter(([, scalingFactor]) => !!scalingFactor) - .unzip() - .value(); + .filter(([, scalingFactor]) => !!scalingFactor); + const [biomeKeys, scalingFactors] = unzip(filteredPairs); const result = await sqlQuery( pool,