@cryptopuppie/useatomicassets
Version:
Custom SWR hooks for Atomicassets api data fetching.
297 lines (276 loc) • 9.07 kB
JavaScript
// 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
};