@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
52 lines • 2.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useGetCurrencyDataQuery = exports.useGetMarketPerformersQuery = exports.marketApi = void 0;
const react_1 = require("@reduxjs/toolkit/query/react");
const live_env_1 = require("@ledgerhq/live-env");
const utils_1 = require("../utils");
const timers_1 = require("../utils/timers");
const types_1 = require("./types");
const currencyFormatter_1 = require("../utils/currencyFormatter");
exports.marketApi = (0, react_1.createApi)({
reducerPath: "marketApi",
baseQuery: (0, react_1.fetchBaseQuery)({
baseUrl: (0, live_env_1.getEnv)("LEDGER_COUNTERVALUES_API"),
}),
tagTypes: [types_1.MarketDataTags.Performers, types_1.MarketDataTags.CurrencyData],
endpoints: build => ({
getMarketPerformers: build.query({
query: ({ counterCurrency, range, limit = 5, top = 50, sort, supported }) => {
const sortParam = `${sort === "asc" ? "positive" : "negative"}-price-change-${(0, utils_1.getRange)(range)}`;
return {
url: "/v3/markets",
params: {
to: counterCurrency,
limit,
top,
sort: sortParam,
supported,
},
};
},
providesTags: [types_1.MarketDataTags.Performers],
transformResponse: (response) => response.map(currencyFormatter_1.formatPerformer),
keepUnusedDataFor: timers_1.REFETCH_TIME_ONE_MINUTE / 1000,
}),
getCurrencyData: build.query({
query: ({ id, counterCurrency }) => ({
url: "/v3/markets",
params: {
to: counterCurrency,
ids: id,
pageSize: 1,
limit: 1,
},
}),
providesTags: [types_1.MarketDataTags.CurrencyData],
transformResponse: (response) => response?.[0] ? (0, currencyFormatter_1.format)(response[0]) : undefined,
keepUnusedDataFor: (timers_1.REFETCH_TIME_ONE_MINUTE * timers_1.BASIC_REFETCH) / 1000,
}),
}),
});
exports.useGetMarketPerformersQuery = exports.marketApi.useGetMarketPerformersQuery, exports.useGetCurrencyDataQuery = exports.marketApi.useGetCurrencyDataQuery;
//# sourceMappingURL=marketApi.js.map