UNPKG

@ledgerhq/live-common

Version:
92 lines 3.46 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSortParam = void 0; exports.isAvailableForTrading = isAvailableForTrading; exports.filterMarketPerformersByAvailability = filterMarketPerformersByAvailability; exports.getChangePercentage = getChangePercentage; exports.getRange = getRange; const types_1 = require("./types"); // Export all types from types.ts __exportStar(require("./types"), exports); // Export fixtures for testing __exportStar(require("./fixtures"), exports); /** * Check if a currency is available for trading (buy/sell/swap) */ function isAvailableForTrading(id, ledgerIds, isCurrencyAvailable, currenciesForSwapAllSet) { const canBuy = isCurrencyAvailable(id, "onRamp"); const canSwap = currenciesForSwapAllSet.has(id); const canBuyOrSwapViaLedgerIds = ledgerIds.some(lrId => isCurrencyAvailable(lrId, "onRamp") || currenciesForSwapAllSet.has(lrId)); return canBuy || canSwap || canBuyOrSwapViaLedgerIds; } /** * Filter market performers by availability for trading, with fallback to original list */ function filterMarketPerformersByAvailability(data, isCurrencyAvailable, currenciesForSwapAllSet, limit) { const availableItems = data.filter(item => isAvailableForTrading(item.id, item.ledgerIds, isCurrencyAvailable, currenciesForSwapAllSet)); // Fallback to original list if no items match if (availableItems.length === 0) { return data.slice(0, limit); } return availableItems.slice(0, limit); } function getChangePercentage(data, range) { switch (range) { case "day": return data.priceChangePercentage24h ?? 0; case "week": return data.priceChangePercentage7d ?? 0; case "month": return data.priceChangePercentage30d ?? 0; case "year": case "all": default: return data.priceChangePercentage1y ?? 0; } } function getRange(range) { switch (range) { case "day": case "24h": return "1d"; case "7d": case "week": return "1w"; case "30d": case "month": return "1m"; case "1y": case "year": case "all": return "1y"; } } const getSortParam = (order, range) => { switch (order) { default: case types_1.Order.MarketCapDesc: return "market-cap-rank"; case types_1.Order.MarketCapAsc: return "market-cap-rank-desc"; case types_1.Order.topLosers: return `negative-price-change-${getRange(range)}`; case types_1.Order.topGainers: return `positive-price-change-${getRange(range)}`; } }; exports.getSortParam = getSortParam; //# sourceMappingURL=index.js.map