UNPKG

@ezbot-ai/javascript-sdk

Version:

The easiest way to interact with ezbot via JS (node and browser)

57 lines 5.1 kB
import { logError } from './utils'; function buildParams(projectId, sessionId, tracker) { const requiredParams = { projectId: projectId.toString(), sessionId, }; try { // TODO: should allow params to fail and fallback to "unknowns" // one by one, not as a whole //eslint-disable-next-line functional/no-let let trackerToUse = tracker; if (!trackerToUse) { trackerToUse = window.ezbot?.tracker; } if (!trackerToUse) { logError(new Error('Tracker is not available. Skipping optional params.')); return requiredParams; } const urlParams = new URLSearchParams(window.location.search); const optionalParams = { pageUrlPath: window.location.pathname, domainSessionIdx: trackerToUse.getDomainSessionIndex(), utmContent: urlParams.get('utm_content') || 'unknown', utmMedium: urlParams.get('utm_medium') || 'unknown', utmSource: urlParams.get('utm_source') || 'unknown', utmCampaign: urlParams.get('utm_campaign') || 'unknown', utmTerm: urlParams.get('utm_term') || 'unknown', referrer: document.referrer || 'unknown', tz: Intl.DateTimeFormat().resolvedOptions().timeZone, }; return { ...requiredParams, ...optionalParams }; } catch (e) { logError(e); return requiredParams; } } const buildQueryParams = (params) => { return Object.entries(params) .map(([key, value]) => `${key}=${encodeURIComponent(value)}`) .join('&'); }; async function getPredictions(projectId, sessionId, tracker) { const basePredictionsURL = `https://api.ezbot.ai/predict`; const params = buildParams(projectId, sessionId, tracker); const queryParams = buildQueryParams(params); const predictionsURL = `${basePredictionsURL}?${queryParams}`; const response = await fetch(predictionsURL); if (response.status !== 200) { throw new Error(`Failed to fetch predictions: Got a ${response.status} response; }`); } const responseJSON = (await response.json()); return responseJSON.predictions; } export { getPredictions, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGljdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ByZWRpY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFhbkMsU0FBUyxXQUFXLENBQ2xCLFNBQWlCLEVBQ2pCLFNBQWlCLEVBQ2pCLE9BQWtDO0lBRWxDLE1BQU0sY0FBYyxHQUFHO1FBQ3JCLFNBQVMsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFO1FBQy9CLFNBQVM7S0FDVyxDQUFDO0lBQ3ZCLElBQUksQ0FBQztRQUNILCtEQUErRDtRQUMvRCw2QkFBNkI7UUFFN0IsNENBQTRDO1FBQzVDLElBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsUUFBUSxDQUNOLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQ2pFLENBQUM7WUFDRixPQUFPLGNBQWMsQ0FBQztRQUN4QixDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RCxNQUFNLGNBQWMsR0FBRztZQUNyQixXQUFXLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQ3JDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxxQkFBcUIsRUFBRTtZQUN0RCxVQUFVLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxTQUFTO1lBQ3JELFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLFNBQVM7WUFDbkQsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksU0FBUztZQUNuRCxXQUFXLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxTQUFTO1lBQ3ZELE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFNBQVM7WUFDL0MsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLElBQUksU0FBUztZQUN4QyxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVE7U0FDckQsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsUUFBUSxDQUFDLENBQVUsQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQXVDLEVBQVUsRUFBRTtJQUMzRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1NBQzVELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLEtBQUssVUFBVSxjQUFjLENBQzNCLFNBQWlCLEVBQ2pCLFNBQWlCLEVBQ2pCLE9BQWtDO0lBRWxDLE1BQU0sa0JBQWtCLEdBQUcsOEJBQThCLENBQUM7SUFDMUQsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUQsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsTUFBTSxjQUFjLEdBQUcsR0FBRyxrQkFBa0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUU5RCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3QyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsUUFBUSxDQUFDLE1BQU07UUFDakUsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUNELE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQXdCLENBQUM7SUFDcEUsT0FBTyxZQUFZLENBQUMsV0FBVyxDQUFDO0FBQ2xDLENBQUM7QUFDRCxPQUFPLEVBQ0wsY0FBYyxHQUlmLENBQUMifQ==