All files / src fetch-data-packages.ts

44.44% Statements 4/9
0% Branches 0/2
0% Functions 0/2
37.5% Lines 3/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 283x 3x               3x                                    
import { RedstoneCommon, RedstoneTypes } from "@redstone-finance/utils";
import { resolveDataServiceUrls } from "./data-services-urls";
 
/** Fetches data-packages from gateway */
type FetchDataPackagesArgs = {
  dataServiceId: string;
  gatewayUrls?: string[];
};
 
export const fetchDataPackages = async ({
  dataServiceId,
  gatewayUrls,
}: FetchDataPackagesArgs): Promise<RedstoneTypes.DataPackageFromGatewayResponse> => {
  const resolvedGatewayUrls =
    gatewayUrls ?? resolveDataServiceUrls(dataServiceId);
 
  const urls = resolvedGatewayUrls.map(
    (baseUrl) => `${baseUrl}/data-packages/latest/${dataServiceId}`
  );
 
  const responseFromGateway =
    await RedstoneCommon.fetchWithFallbacks<RedstoneTypes.DataPackageFromGatewayResponse>(
      { urls }
    );
 
  return responseFromGateway.data;
};