Files
Piped/src/composables/useApi.js
2026-03-27 00:41:48 +05:30

37 lines
988 B
JavaScript

import { getPreferenceBoolean, getPreferenceString } from "./usePreferences.js";
export function fetchJson(url, params, options) {
if (params) {
url = new URL(url);
for (var param in params) url.searchParams.set(param, params[param]);
}
return fetch(url, options).then(response => {
return response.json();
});
}
export function hashCode(s) {
return s.split("").reduce(function (a, b) {
a = (a << 5) - a + b.charCodeAt(0);
return a & a;
}, 0);
}
export function apiUrl() {
return getPreferenceString("instance", import.meta.env.VITE_PIPED_API);
}
export function authApiUrl() {
if (getPreferenceBoolean("authInstance", false)) {
return getPreferenceString("auth_instance_url", apiUrl());
} else return apiUrl();
}
export function getAuthToken() {
return getPreferenceString("authToken" + hashCode(authApiUrl()));
}
export function isAuthenticated() {
return getAuthToken() !== undefined;
}