112 lines
2.6 KiB
TypeScript
112 lines
2.6 KiB
TypeScript
import type { AoBridge } from "../../preload";
|
|
|
|
export const aoBridge: AoBridge =
|
|
window.ao ??
|
|
({
|
|
app: {
|
|
getVersion: async () => "0.0.0-preview",
|
|
chooseDirectory: async () => null,
|
|
scanImportFolder: async ({ path }) => ({ path, repos: [] }),
|
|
},
|
|
clipboard: {
|
|
writeText: async (text: string) => {
|
|
if (navigator.clipboard?.writeText) {
|
|
await navigator.clipboard.writeText(text);
|
|
}
|
|
},
|
|
readText: async () => (navigator.clipboard?.readText ? navigator.clipboard.readText() : ""),
|
|
},
|
|
daemon: {
|
|
getStatus: async () => ({
|
|
state: "stopped",
|
|
message: "Electron preload is not available in browser preview.",
|
|
}),
|
|
start: async () => ({ state: "starting" }),
|
|
stop: async () => ({ state: "stopped" }),
|
|
onStatus: () => () => undefined,
|
|
},
|
|
telemetry: {
|
|
getBootstrap: async () => null,
|
|
},
|
|
browser: {
|
|
ensure: async (sessionId: string) => ({
|
|
viewId: `preview:${sessionId}`,
|
|
url: "",
|
|
title: "",
|
|
canGoBack: false,
|
|
canGoForward: false,
|
|
isLoading: false,
|
|
}),
|
|
setBounds: () => undefined,
|
|
navigate: async ({ viewId, url }) => ({
|
|
viewId,
|
|
url,
|
|
title: "",
|
|
canGoBack: false,
|
|
canGoForward: false,
|
|
isLoading: false,
|
|
}),
|
|
clear: async (viewId: string) => ({
|
|
viewId,
|
|
url: "",
|
|
title: "",
|
|
canGoBack: false,
|
|
canGoForward: false,
|
|
isLoading: false,
|
|
}),
|
|
goBack: async (viewId: string) => ({
|
|
viewId,
|
|
url: "",
|
|
title: "",
|
|
canGoBack: false,
|
|
canGoForward: false,
|
|
isLoading: false,
|
|
}),
|
|
goForward: async (viewId: string) => ({
|
|
viewId,
|
|
url: "",
|
|
title: "",
|
|
canGoBack: false,
|
|
canGoForward: false,
|
|
isLoading: false,
|
|
}),
|
|
reload: async (viewId: string) => ({
|
|
viewId,
|
|
url: "",
|
|
title: "",
|
|
canGoBack: false,
|
|
canGoForward: false,
|
|
isLoading: false,
|
|
}),
|
|
stop: async (viewId: string) => ({
|
|
viewId,
|
|
url: "",
|
|
title: "",
|
|
canGoBack: false,
|
|
canGoForward: false,
|
|
isLoading: false,
|
|
}),
|
|
destroy: () => undefined,
|
|
onNavState: () => () => undefined,
|
|
},
|
|
notifications: {
|
|
show: async () => undefined,
|
|
onClick: () => () => undefined,
|
|
},
|
|
appState: {
|
|
getMigration: async () => ({ status: "pending" }),
|
|
setMigration: async () => undefined,
|
|
},
|
|
updateSettings: {
|
|
get: async () => ({ enabled: false, channel: "latest", nightlyAck: false }),
|
|
set: async () => undefined,
|
|
},
|
|
updates: {
|
|
getStatus: async () => ({ state: "idle" }),
|
|
check: async () => undefined,
|
|
download: async () => undefined,
|
|
install: async () => undefined,
|
|
onStatus: () => () => undefined,
|
|
},
|
|
} satisfies AoBridge);
|