This commit is contained in:
n4ze3m 2024-08-26 14:13:00 +05:30
commit aa92670424
7 changed files with 33 additions and 13 deletions

View File

@ -9,6 +9,7 @@ import { getPageShareUrl } from "~/services/ollama"
import { cleanUrl } from "~/libs/clean-url"
import { getUserId, saveWebshare } from "@/db"
import { useTranslation } from "react-i18next"
import fetcher from "@/libs/fetcher"
type Props = {
messages: Message[]
@ -94,7 +95,7 @@ export const ShareBtn: React.FC<Props> = ({ messages }) => {
const chat = reformatMessages(messages, values.name)
const title = values.title
const url = await getPageShareUrl()
const res = await fetch(`${cleanUrl(url)}/api/v1/share/create`, {
const res = await fetcher(`${cleanUrl(url)}/api/v1/share/create`, {
method: "POST",
headers: {
"Content-Type": "application/json"

View File

@ -4,6 +4,7 @@ import { useQuery } from "@tanstack/react-query"
import { Skeleton } from "antd"
import { cleanUrl } from "@/libs/clean-url"
import { Descriptions } from "antd"
import fetcher from "@/libs/fetcher"
export const AboutApp = () => {
const { t } = useTranslation("settings")
@ -14,7 +15,7 @@ export const AboutApp = () => {
const chromeVersion = browser.runtime.getManifest().version
try {
const url = await getOllamaURL()
const req = await fetch(`${cleanUrl(url)}/api/version`)
const req = await fetcher(`${cleanUrl(url)}/api/version`)
if (!req.ok) {
return {

View File

@ -7,6 +7,7 @@ import { deleteWebshare, getAllWebshares, getUserId } from "@/db"
import { getPageShareUrl, setPageShareUrl } from "~/services/ollama"
import { verifyPageShareURL } from "~/utils/verify-page-share"
import { useStorage } from "@plasmohq/storage/hook"
import fetcher from "@/libs/fetcher"
export const OptionShareBody = () => {
const queryClient = useQueryClient()
@ -48,7 +49,7 @@ export const OptionShareBody = () => {
api_url: string
}) => {
const owner_id = await getUserId()
const res = await fetch(`${api_url}/api/v1/share/delete`, {
const res = await fetcher(`${api_url}/api/v1/share/delete`, {
method: "POST",
headers: {
"Content-Type": "application/json"

14
src/libs/fetcher.ts Normal file
View File

@ -0,0 +1,14 @@
import { getCustomOllamaHeaders } from "@/services/app"
const fetcher = async (input: string | URL | globalThis.Request, init?: RequestInit) : Promise<Response> => {
const update = {...init} || {}
const customHeaders = await getCustomOllamaHeaders()
update.headers = {
...customHeaders,
...update?.headers
}
return fetch(input, update)
}
export default fetcher

View File

@ -3,6 +3,8 @@ import { cleanUrl } from "../libs/clean-url"
import { urlRewriteRuntime } from "../libs/runtime"
import { getChromeAIModel } from "./chrome"
import { setNoOfRetrievedDocs, setTotalFilePerKB } from "./app"
import fetcher from "@/libs/fetcher"
const storage = new Storage()
@ -82,7 +84,7 @@ export const defaultModel = async () => {
export const isOllamaRunning = async () => {
try {
const baseUrl = await getOllamaURL()
const response = await fetch(`${cleanUrl(baseUrl)}`)
const response = await fetcher(`${cleanUrl(baseUrl)}`)
if (!response.ok) {
throw new Error(response.statusText)
}
@ -100,7 +102,7 @@ export const getAllModels = async ({
}) => {
try {
const baseUrl = await getOllamaURL()
const response = await fetch(`${cleanUrl(baseUrl)}/api/tags`)
const response = await fetcher(`${cleanUrl(baseUrl)}/api/tags`)
if (!response.ok) {
if (returnEmpty) {
return []
@ -132,7 +134,7 @@ export const getAllModels = async ({
export const deleteModel = async (model: string) => {
const baseUrl = await getOllamaURL()
const response = await fetch(`${cleanUrl(baseUrl)}/api/delete`, {
const response = await fetcher(`${cleanUrl(baseUrl)}/api/delete`, {
method: "DELETE",
headers: {
"Content-Type": "application/json"
@ -154,7 +156,7 @@ export const fetchChatModels = async ({
}) => {
try {
const baseUrl = await getOllamaURL()
const response = await fetch(`${cleanUrl(baseUrl)}/api/tags`)
const response = await fetcher(`${cleanUrl(baseUrl)}/api/tags`)
if (!response.ok) {
if (returnEmpty) {
return []

View File

@ -1,5 +1,5 @@
import { setBadgeBackgroundColor, setBadgeText, setTitle } from "@/utils/action"
import fetcher from "@/libs/fetcher"
export const progressHuman = (completed: number, total: number) => {
return ((completed / total) * 100).toFixed(0) + "%"
@ -11,7 +11,7 @@ export const clearBadge = () => {
}
export const streamDownload = async (url: string, model: string) => {
url += "/api/pull"
const response = await fetch(url, {
const response = await fetcher(url, {
method: "POST",
headers: {
"Content-Type": "application/json"

View File

@ -1,7 +1,8 @@
import { cleanUrl } from "~/libs/clean-url"
import fetcher from "@/libs/fetcher"
export const verifyPageShareURL = async (url: string) => {
const res = await fetch(`${cleanUrl(url)}/api/v1/ping`)
const res = await fetcher(`${cleanUrl(url)}/api/v1/ping`)
if (!res.ok) {
throw new Error("Unable to verify page share")
}