From 7153280bd4e4000a149c9b3d3563f9aaa87b1957 Mon Sep 17 00:00:00 2001 From: Eric Lay Date: Wed, 11 Mar 2026 08:47:00 -0500 Subject: [PATCH] Add src/lib/app-params.js --- src/lib/app-params.js | 54 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/lib/app-params.js diff --git a/src/lib/app-params.js b/src/lib/app-params.js new file mode 100644 index 0000000..3026d07 --- /dev/null +++ b/src/lib/app-params.js @@ -0,0 +1,54 @@ +const isNode = typeof window === 'undefined'; +const windowObj = isNode ? { localStorage: new Map() } : window; +const storage = windowObj.localStorage; + +const toSnakeCase = (str) => { + return str.replace(/([A-Z])/g, '_$1').toLowerCase(); +} + +const getAppParamValue = (paramName, { defaultValue = undefined, removeFromUrl = false } = {}) => { + if (isNode) { + return defaultValue; + } + const storageKey = `base44_${toSnakeCase(paramName)}`; + const urlParams = new URLSearchParams(window.location.search); + const searchParam = urlParams.get(paramName); + if (removeFromUrl) { + urlParams.delete(paramName); + const newUrl = `${window.location.pathname}${urlParams.toString() ? `?${urlParams.toString()}` : "" + }${window.location.hash}`; + window.history.replaceState({}, document.title, newUrl); + } + if (searchParam) { + storage.setItem(storageKey, searchParam); + return searchParam; + } + if (defaultValue) { + storage.setItem(storageKey, defaultValue); + return defaultValue; + } + const storedValue = storage.getItem(storageKey); + if (storedValue) { + return storedValue; + } + return null; +} + +const getAppParams = () => { + if (getAppParamValue("clear_access_token") === 'true') { + storage.removeItem('base44_access_token'); + storage.removeItem('token'); + } + return { + appId: getAppParamValue("app_id", { defaultValue: import.meta.env.VITE_BASE44_APP_ID }), + token: getAppParamValue("access_token", { removeFromUrl: true }), + fromUrl: getAppParamValue("from_url", { defaultValue: window.location.href }), + functionsVersion: getAppParamValue("functions_version", { defaultValue: import.meta.env.VITE_BASE44_FUNCTIONS_VERSION }), + appBaseUrl: getAppParamValue("app_base_url", { defaultValue: import.meta.env.VITE_BASE44_APP_BASE_URL }), + } +} + + +export const appParams = { + ...getAppParams() +}