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 };