Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/rmrk-team/rmrk-js
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuripetusko committed Apr 22, 2024
2 parents f52a1a5 + d7bf850 commit cefaf95
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 25 deletions.
19 changes: 14 additions & 5 deletions packages/ipfs-utils/src/lib/fetch-ipfs-metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,19 @@ import { isBase64Metadata } from './is-base-64-metadata.js';

type Options = {
shouldSanitizeIpfsUrls?: boolean;
ipfsGatewayUrl?: string
ipfsGatewayUrl?: string;
};

export const fetchIpfsMetadata = async (
metadataUri?: string | null,
options?: Options
options?: Options,
): Promise<Metadata | null> => {
const { shouldSanitizeIpfsUrls = true, ipfsGatewayUrl = DEFAULT_IPFS_GATEWAY_URLS[DEFAULT_IPFS_GATEWAY_KEYS.pinata] } = options || {};
const {
shouldSanitizeIpfsUrls = true,
ipfsGatewayUrl = DEFAULT_IPFS_GATEWAY_URLS[
DEFAULT_IPFS_GATEWAY_KEYS.pinata
],
} = options || {};
if (metadataUri && isBase64Metadata(metadataUri)) {
return JSON.parse(getBase64Value(metadataUri)); // TODO: validation
}
Expand All @@ -35,8 +40,12 @@ export const fetchIpfsMetadata = async (
if (provider) {
return {
...restMetadata,
mediaUri: shouldSanitizeIpfsUrls ? sanitizeIpfsUrl((metadata as Metadata)?.mediaUri || '', provider) : (metadata as Metadata)?.mediaUri,
thumbnailUri: shouldSanitizeIpfsUrls ? sanitizeIpfsUrl(thumbnail || '', provider) : thumbnail,
mediaUri: shouldSanitizeIpfsUrls
? sanitizeIpfsUrl((metadata as Metadata)?.mediaUri || '', provider)
: (metadata as Metadata)?.mediaUri,
thumbnailUri: shouldSanitizeIpfsUrls
? sanitizeIpfsUrl(thumbnail || '', provider)
: thumbnail,
externalUri: (metadata as Metadata).externalUri || external_url,
};
}
Expand Down
18 changes: 8 additions & 10 deletions packages/rmrk-hooks/src/lib/hooks/use-fetch-ipfs-metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { useRMRKConfig } from '../RMRKContextProvider.js';

type Props = { metadataUri: string | undefined; ipfsGatewayUrl?: string };

type Options = { enabled?: boolean, shouldSanitizeIpfsUrls?: boolean; };
type Options = { enabled?: boolean; shouldSanitizeIpfsUrls?: boolean };

/**
* Fetches IPFS metadata and returns the result using React Query's `useQuery` hook.
Expand All @@ -28,15 +28,13 @@ export const useFetchIpfsMetadata = (
return useQuery({
queryKey: ['fetchIpfsMetadata', metadataUri],
queryFn: () => {
return fetchIpfsMetadata(
metadataUri,
{
ipfsGatewayUrl: ipfsGatewayUrl ||
rmrkConfig?.ipfsGateway ||
DEFAULT_IPFS_GATEWAY_URLS[DEFAULT_IPFS_GATEWAY_KEYS.cloudflare],
shouldSanitizeIpfsUrls
}
);
return fetchIpfsMetadata(metadataUri, {
ipfsGatewayUrl:
ipfsGatewayUrl ||
rmrkConfig?.ipfsGateway ||
DEFAULT_IPFS_GATEWAY_URLS[DEFAULT_IPFS_GATEWAY_KEYS.cloudflare],
shouldSanitizeIpfsUrls,
});
},
enabled,
});
Expand Down
18 changes: 8 additions & 10 deletions packages/rmrk-hooks/src/lib/hooks/use-fetch-ipfs-metadatas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ type Props = {
ipfsGatewayUrl?: string;
};

type Options = { enabled?: boolean, shouldSanitizeIpfsUrls?: boolean; };
type Options = { enabled?: boolean; shouldSanitizeIpfsUrls?: boolean };

/**
* A custom hook that fetches IPFS metadata for the given URIs.
Expand All @@ -38,15 +38,13 @@ export const useFetchIpfsMetadatas = (
queries: (metadataUris || []).map((metadataUri) => ({
queryKey: ['fetchIpfsMetadata', metadataUri],
queryFn: () =>
fetchIpfsMetadata(
metadataUri,
{
ipfsGatewayUrl: ipfsGatewayUrl ||
rmrkConfig?.ipfsGateway ||
DEFAULT_IPFS_GATEWAY_URLS[DEFAULT_IPFS_GATEWAY_KEYS.cloudflare],
shouldSanitizeIpfsUrls
}
),
fetchIpfsMetadata(metadataUri, {
ipfsGatewayUrl:
ipfsGatewayUrl ||
rmrkConfig?.ipfsGateway ||
DEFAULT_IPFS_GATEWAY_URLS[DEFAULT_IPFS_GATEWAY_KEYS.cloudflare],
shouldSanitizeIpfsUrls,
}),
enabled,
})),
});
Expand Down

0 comments on commit cefaf95

Please sign in to comment.