From 7daad4feec33e84b85087a79d56f5843d57c88cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Thu, 6 Nov 2025 16:57:08 +0100 Subject: [PATCH] pl-fe: this should be processed compile time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- .../utils/manifest-map-compiletime.ts | 16 ++++++++++++++++ .../crypto-donate/utils/manifest-map.ts | 18 +++++++++--------- 2 files changed, 25 insertions(+), 9 deletions(-) create mode 100644 packages/pl-fe/src/features/crypto-donate/utils/manifest-map-compiletime.ts diff --git a/packages/pl-fe/src/features/crypto-donate/utils/manifest-map-compiletime.ts b/packages/pl-fe/src/features/crypto-donate/utils/manifest-map-compiletime.ts new file mode 100644 index 000000000..ff3686620 --- /dev/null +++ b/packages/pl-fe/src/features/crypto-donate/utils/manifest-map-compiletime.ts @@ -0,0 +1,16 @@ +// Converts cryptocurrency-icon's manifest file from a list to a map. +// See: https://github.com/spothq/cryptocurrency-icons/blob/master/manifest.json + +import { createRequire } from 'node:module'; + +const require = createRequire(import.meta.url); +const manifest = require('cryptocurrency-icons/manifest.json'); + +const manifestMap = manifest.reduce((acc: Record, entry: typeof manifest[0]) => { + acc[entry.symbol.toLowerCase()] = entry; + return acc; +}, {}); + +export default () => ({ + data: manifestMap, +}); diff --git a/packages/pl-fe/src/features/crypto-donate/utils/manifest-map.ts b/packages/pl-fe/src/features/crypto-donate/utils/manifest-map.ts index ff767d412..d544bde5b 100644 --- a/packages/pl-fe/src/features/crypto-donate/utils/manifest-map.ts +++ b/packages/pl-fe/src/features/crypto-donate/utils/manifest-map.ts @@ -1,11 +1,11 @@ -// Converts cryptocurrency-icon's manifest file from a list to a map. -// See: https://github.com/spothq/cryptocurrency-icons/blob/master/manifest.json +interface ManifestMap { + [s: string]: { + symbol: string; + name: string; + color: string; + }; +} -import manifest from 'cryptocurrency-icons/manifest.json'; +export default import.meta.compileTime('./manifest-map-compiletime.ts'); -const manifestMap = manifest.reduce((acc: Record, entry) => { - acc[entry.symbol.toLowerCase()] = entry; - return acc; -}, {}); - -export { manifestMap as default }; +export type { ManifestMap };