dcl-catalyst-client
Version:
A client to query and perform changes on Decentraland's catalyst servers
55 lines • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCatalystClient = void 0;
const ContentClient_1 = require("./ContentClient");
const LambdasClient_1 = require("./LambdasClient");
const Helper_1 = require("./utils/Helper");
function createCatalystClient(options) {
const catalystUrl = (0, Helper_1.sanitizeUrl)(options.url);
const { fetcher } = options;
let contentClient = undefined;
let lambdasClient = undefined;
let about = undefined;
async function fetchAbout() {
const result = await fetcher.fetch(catalystUrl + '/about');
const response = await result.json();
if (!response) {
throw new Error('Invalid about response');
}
about = response;
return response;
}
async function getContentClient() {
if (contentClient) {
return contentClient;
}
if (!about) {
about = await fetchAbout();
}
contentClient = (0, ContentClient_1.createContentClient)({
url: about.content.publicUrl,
fetcher
});
return contentClient;
}
async function getLambdasClient() {
if (lambdasClient) {
return lambdasClient;
}
if (!about) {
about = await fetchAbout();
}
lambdasClient = (0, LambdasClient_1.createLambdasClient)({
url: about.lambdas.publicUrl,
fetcher
});
return lambdasClient;
}
return {
fetchAbout,
getContentClient,
getLambdasClient
};
}
exports.createCatalystClient = createCatalystClient;
//# sourceMappingURL=CatalystClient.js.map