Skip to content

Commit

Permalink
build specific api files
Browse files Browse the repository at this point in the history
based on the build this copies the request api that will be used in the JS app
  • Loading branch information
bumi committed Jan 20, 2024
1 parent 4285b9e commit 904893c
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 2 deletions.
6 changes: 4 additions & 2 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@
"type": "module",
"scripts": {
"dev": "vite",
"dev:wails": "VITE_NWC_APP_TYPE=WAILS vite",
"dev:wails": "yarn prepare:wails && VITE_NWC_APP_TYPE=WAILS vite",
"build": "tsc && vite build",
"build:wails": "tsc && VITE_NWC_APP_TYPE=WAILS vite build",
"prepare:wails": "cp ./platform_specific/wails/src/utils/request.ts src/utils/request.ts",
"prepare:http": "cp ./platform_specific/http/src/utils/request.ts src/utils/request.ts",
"build:wails": "yarn prepare:wails && tsc && VITE_NWC_APP_TYPE=WAILS vite build",
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview"
},
Expand Down
34 changes: 34 additions & 0 deletions frontend/platform_specific/http/src/utils/request.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import toast from "../components/Toast";
import { ErrorResponse } from "../types";

export const request = async <T,>(
...args: Parameters<typeof fetch>
): Promise<T | undefined> => {
try {
const fetchResponse = await fetch(...args);

let body: T | undefined;
try {
body = await fetchResponse.json();
} catch (error) {
console.error(error);
}

if (!fetchResponse.ok) {
throw new Error(
fetchResponse.status +
" " +
((body as ErrorResponse)?.message || "Unknown error"),
);
}
return body;
} catch (error) {
console.error("Failed to fetch", error);
throw error;
}
};

export function handleRequestError(message: string, error: unknown) {
console.error(message, error);
toast.error(message + ": " + error);
}
30 changes: 30 additions & 0 deletions frontend/platform_specific/wails/src/utils/request.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import toast from "../components/Toast";

import { WailsRequestRouter } from "wailsjs/go/main/WailsApp";

export const request = async <T,>(
...args: Parameters<typeof fetch>
): Promise<T | undefined> => {
try {
const res = await WailsRequestRouter(
args[0].toString(),
args[1]?.method || "GET",
args[1]?.body?.toString() || "",
);

console.log("Wails request", ...args, res);
if (res.error) {
throw new Error(res.error);
}

return res.body;
} catch (error) {
console.error("Failed to fetch", error);
throw error;
}
};

export function handleRequestError(message: string, error: unknown) {
console.error(message, error);
toast.error(message + ": " + error);
}

0 comments on commit 904893c

Please sign in to comment.