UNPKG

@cryptopuppie/useatomicassets

Version:

Custom SWR hooks for Atomicassets api data fetching.

297 lines (276 loc) 9.07 kB
// react_shim.js import React from "react"; // src/component/provider.tsx import { createContext, useContext } from "react"; var UseAtomicContext = createContext({}); var UseAtomicAssetsProvider = ({ children, endpoint }) => { return /* @__PURE__ */ React.createElement(UseAtomicContext.Provider, { value: { endpoint } }, children); }; var useAtomicContext = () => { return useContext(UseAtomicContext); }; var provider_default = UseAtomicAssetsProvider; // src/hooks/useAtomicGetter.ts import useSWR from "swr"; import urljoin2 from "url-join"; // src/lib/fetcher.ts import fetch from "cross-fetch"; import urljoin from "url-join"; // src/lib/error.ts var FetchError = class extends Error { constructor(message, status) { super(message); this.status = status; } }; var error_default = FetchError; // src/lib/params.ts var parseParams = (params) => { return Object.keys(params).map((key) => { return encodeURIComponent(key) + "=" + encodeURIComponent(params[key]); }).join("&"); }; var params_default = parseParams; // src/lib/fetcher.ts var fetcher = async (url, params) => { let finalUrl = url; if (params != null) { finalUrl = urljoin(url, params != null ? "?" + params_default(params) : ""); } const res = await fetch(finalUrl); const data = await res.json(); if (!res.ok) { throw new error_default(data.message, res.status); } return data.data; }; var fetcher_default = fetcher; // src/hooks/useAtomicGetter.ts var useAtomicGetter = (props) => { let { uri, params, endpoint } = props ?? { uri: "" }; const { endpoint: contextEndpoint } = useAtomicContext(); endpoint = (endpoint != null ? endpoint : contextEndpoint) ?? ""; const { data, error } = useSWR(props != null ? [urljoin2(endpoint, uri), params] : null, fetcher_default); let isError = false; if (error != null) { isError = true; } return { data, isError, error }; }; var useAtomicGetter_default = useAtomicGetter; // src/hooks/useGetAccount.ts var useGetAccount = (account, props, options) => { const { endpoint, initialData } = options ?? {}; return useAtomicGetter_default(account != null ? { uri: `/atomicassets/v1/accounts/${account}`, params: props ?? void 0, endpoint, initialData } : null); }; var useGetAccount_default = useGetAccount; // src/hooks/useGetAccounts.ts var useGetAccounts = (props, options) => { const { endpoint, initialData } = options ?? {}; return useAtomicGetter_default(props != null ? { uri: "/atomicassets/v1/accounts", params: props, endpoint, initialData } : null); }; var useGetAccounts_default = useGetAccounts; // src/hooks/useGetAssetID.ts var useGetAssetID = (assetId, options) => { const { endpoint, initialData } = options ?? {}; return useAtomicGetter_default(assetId != null ? { uri: `/atomciassets/v1/assets/${assetId}`, endpoint, initialData } : null); }; var useGetAssetID_default = useGetAssetID; // src/lib/data.ts function buildDataOptions(data) { const dataFields = {}; for (const row of data) { const dataType = row.type ?? "data"; if (typeof row.value === "number") { dataFields[dataType + ":number." + row.key] = String(row.value); } else if (typeof row.value === "boolean") { dataFields[dataType + ":bool." + row.key] = row.value ? "true" : "false"; } else { dataFields[dataType + "." + row.key] = row.value; } } return Object.assign({}, dataFields); } // src/hooks/useGetAssets.ts var useGetAssets = (props, dataOptions, options) => { const { endpoint, initialData } = options ?? {}; let dOptions = {}; if (dataOptions != null) { dOptions = buildDataOptions(dataOptions); } return useAtomicGetter_default(props != null ? { uri: "/atomicassets/v1/assets", params: { ...props, ...dOptions }, endpoint, initialData } : null); }; var useGetAssets_default = useGetAssets; // src/hooks/useGetCollectionName.ts var useGetCollectionName = (collectionName, options) => { const { endpoint, initialData } = options ?? {}; return useAtomicGetter_default(collectionName != null ? { uri: `/atomicassets/v1/collections/${collectionName}`, endpoint, initialData } : null); }; var useGetCollectionName_default = useGetCollectionName; // src/hooks/useGetCollections.ts var useGetCollections = (props, options) => { const { endpoint, initialData } = options ?? {}; return useAtomicGetter_default(props != null ? { uri: "/atomicassets/v1/collections", params: props, endpoint, initialData } : null); }; var useGetCollections_default = useGetCollections; // src/hooks/useGetSchemaName.ts var useGetSchemaName = (props, options) => { const { endpoint, initialData } = options ?? {}; return useAtomicGetter_default(props != null ? { uri: `/atomicassets/v1/schemas/${props.collectionName}/${props.schemaName}`, endpoint, initialData } : null); }; var useGetSchemaName_default = useGetSchemaName; // src/hooks/useGetSchemas.ts var useGetSchemas = (props, options) => { const { endpoint, initialData } = options ?? {}; return useAtomicGetter_default(props != null ? { uri: "/atomicassets/v1/schemas", params: props, endpoint, initialData } : null); }; var useGetSchemas_default = useGetSchemas; // src/hooks/useGetTemplateID.ts var useGetTemplateID = (props, options) => { const { endpoint, initialData } = options ?? {}; return useAtomicGetter_default(props != null ? { uri: `/atomicassets/v1/templates/${props.collectionName}/${props.templateID}`, endpoint, initialData } : null); }; var useGetTemplateID_default = useGetTemplateID; // src/hooks/useGetTemplates.ts var useGetTemplates = (props, options) => { const { endpoint, initialData } = options ?? {}; return useAtomicGetter_default(props != null ? { uri: "/atomicassets/v1/templates", params: props, endpoint, initialData } : null); }; var useGetTemplates_default = useGetTemplates; // src/hooks/useMarketGetSales.ts var useMarketGetSales = (props, dataOptions, options) => { const { endpoint, initialData } = options ?? {}; let dOptions = {}; if (dataOptions != null) { dOptions = buildDataOptions(dataOptions); } return useAtomicGetter_default(props != null ? { uri: "/atomicmarket/v1/sales", params: { ...props, ...dOptions }, endpoint, initialData } : null); }; var useMarketGetSales_default = useMarketGetSales; // src/typings/atomicassets-js/Enums.ts var OfferState = /* @__PURE__ */ ((OfferState2) => { OfferState2[OfferState2["Pending"] = 0] = "Pending"; OfferState2[OfferState2["Invalid"] = 1] = "Invalid"; OfferState2[OfferState2["Unknown"] = 2] = "Unknown"; OfferState2[OfferState2["Accepted"] = 3] = "Accepted"; OfferState2[OfferState2["Declined"] = 4] = "Declined"; OfferState2[OfferState2["Canceled"] = 5] = "Canceled"; return OfferState2; })(OfferState || {}); var OrderParam = /* @__PURE__ */ ((OrderParam2) => { OrderParam2["Asc"] = "asc"; OrderParam2["Desc"] = "desc"; return OrderParam2; })(OrderParam || {}); var AssetsSort = /* @__PURE__ */ ((AssetsSort2) => { AssetsSort2["AssetId"] = "asset_id"; AssetsSort2["Updated"] = "updated"; AssetsSort2["Transferred"] = "transferred"; AssetsSort2["Minted"] = "minted"; AssetsSort2["TemplateMint"] = "template_mint"; AssetsSort2["Name"] = "name"; return AssetsSort2; })(AssetsSort || {}); var CollectionsSort = /* @__PURE__ */ ((CollectionsSort2) => { CollectionsSort2["Created"] = "created"; CollectionsSort2["CollectionName"] = "collection_name"; return CollectionsSort2; })(CollectionsSort || {}); var OffersSort = /* @__PURE__ */ ((OffersSort2) => { OffersSort2["Created"] = "created"; OffersSort2["Updated"] = "updated"; return OffersSort2; })(OffersSort || {}); var SchemasSort = /* @__PURE__ */ ((SchemasSort2) => { SchemasSort2["Created"] = "created"; SchemasSort2["SchemaName"] = "schema_name"; return SchemasSort2; })(SchemasSort || {}); var TemplatesSort = /* @__PURE__ */ ((TemplatesSort2) => { TemplatesSort2["Created"] = "created"; TemplatesSort2["Name"] = "name"; return TemplatesSort2; })(TemplatesSort || {}); var TransfersSort = /* @__PURE__ */ ((TransfersSort2) => { TransfersSort2["Created"] = "created"; return TransfersSort2; })(TransfersSort || {}); export { AssetsSort, CollectionsSort, OfferState, OffersSort, OrderParam, SchemasSort, TemplatesSort, TransfersSort, provider_default as UseAtomicAssetsProvider, useAtomicGetter_default as useAtomicGetter, useGetAccount_default as useGetAccount, useGetAccounts_default as useGetAccounts, useGetAssetID_default as useGetAssetID, useGetAssets_default as useGetAssets, useGetCollectionName_default as useGetCollectionName, useGetCollections_default as useGetCollections, useGetSchemaName_default as useGetSchemaName, useGetSchemas_default as useGetSchemas, useGetTemplateID_default as useGetTemplateID, useGetTemplates_default as useGetTemplates, useMarketGetSales_default as useMarketGetSales };