UNPKG

@supabase/supabase-js

Version:
54 lines 2.43 kB
export function uuid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8; return v.toString(16); }); } export function ensureTrailingSlash(url) { return url.endsWith('/') ? url : url + '/'; } export const isBrowser = () => typeof window !== 'undefined'; export function applySettingDefaults(options, defaults) { var _a, _b; const { db: dbOptions, auth: authOptions, realtime: realtimeOptions, global: globalOptions, } = options; const { db: DEFAULT_DB_OPTIONS, auth: DEFAULT_AUTH_OPTIONS, realtime: DEFAULT_REALTIME_OPTIONS, global: DEFAULT_GLOBAL_OPTIONS, } = defaults; const result = { db: Object.assign(Object.assign({}, DEFAULT_DB_OPTIONS), dbOptions), auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS), authOptions), realtime: Object.assign(Object.assign({}, DEFAULT_REALTIME_OPTIONS), realtimeOptions), storage: {}, global: Object.assign(Object.assign(Object.assign({}, DEFAULT_GLOBAL_OPTIONS), globalOptions), { headers: Object.assign(Object.assign({}, ((_a = DEFAULT_GLOBAL_OPTIONS === null || DEFAULT_GLOBAL_OPTIONS === void 0 ? void 0 : DEFAULT_GLOBAL_OPTIONS.headers) !== null && _a !== void 0 ? _a : {})), ((_b = globalOptions === null || globalOptions === void 0 ? void 0 : globalOptions.headers) !== null && _b !== void 0 ? _b : {})) }), accessToken: async () => '', }; if (options.accessToken) { result.accessToken = options.accessToken; } else { // hack around Required<> delete result.accessToken; } return result; } /** * Validates a Supabase client URL * * @param {string} supabaseUrl - The Supabase client URL string. * @returns {URL} - The validated base URL. * @throws {Error} */ export function validateSupabaseUrl(supabaseUrl) { const trimmedUrl = supabaseUrl === null || supabaseUrl === void 0 ? void 0 : supabaseUrl.trim(); if (!trimmedUrl) { throw new Error('supabaseUrl is required.'); } if (!trimmedUrl.match(/^https?:\/\//i)) { throw new Error('Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.'); } try { return new URL(ensureTrailingSlash(trimmedUrl)); } catch (_a) { throw Error('Invalid supabaseUrl: Provided URL is malformed.'); } } //# sourceMappingURL=helpers.js.map