@aut-labs/sdk
Version:
The TS/JS SDK package aims to make it easy for frontends/backends to integrate with Aut Smart Contracts
38 lines • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.httpUrlToIpfsCID = exports.isValidUrl = void 0;
const isValidUrl = (uri) => {
let url = null;
try {
url = new URL(uri);
}
catch (_) {
return false;
}
return (url.protocol === "ipfs:" ||
url.protocol === "http:" ||
url.protocol === "https:");
};
exports.isValidUrl = isValidUrl;
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
function replaceAll(str, find, replace) {
return str.replace(new RegExp(escapeRegExp(find), "g"), replace);
}
function httpUrlToIpfsCID(url) {
if (!url) {
return url;
}
if (url.includes("https://")) {
const notHttpsUrl = `${replaceAll(url, "https://", "")}`;
const [_, __, cid, name] = notHttpsUrl.split("/");
if (name) {
return `ipfs://${cid}/${name}`;
}
return `ipfs://${cid}`;
}
return url;
}
exports.httpUrlToIpfsCID = httpUrlToIpfsCID;
//# sourceMappingURL=storage.api.js.map