Fix GRPC with files not refreshing, and tight render loop

This commit is contained in:
Gregory Schier
2024-06-20 08:40:10 -07:00
parent 92b1582232
commit 88aeb0e530
62 changed files with 221 additions and 163 deletions

View File

@@ -1,4 +1,4 @@
import { invoke } from '@tauri-apps/api/core';
import { invokeCmd } from './tauri';
export type TrackResource =
| 'appearance'
@@ -37,7 +37,7 @@ export function trackEvent(
action: TrackAction,
attributes: Record<string, string | number> = {},
) {
invoke('cmd_track_event', {
invokeCmd('cmd_track_event', {
resource: resource,
action,
attributes,

View File

@@ -1,5 +1,5 @@
import { invoke } from '@tauri-apps/api/core';
import type { KeyValue } from './models';
import { invokeCmd } from './tauri';
export async function setKeyValue<T>({
namespace = 'global',
@@ -10,7 +10,7 @@ export async function setKeyValue<T>({
key: string | string[];
value: T;
}): Promise<void> {
await invoke('cmd_set_key_value', {
await invokeCmd('cmd_set_key_value', {
namespace,
key: buildKeyValueKey(key),
value: JSON.stringify(value),
@@ -26,7 +26,7 @@ export async function getKeyValue<T>({
key: string | string[];
fallback: T;
}) {
const kv = (await invoke('cmd_get_key_value', {
const kv = (await invokeCmd('cmd_get_key_value', {
namespace,
key: buildKeyValueKey(key),
})) as KeyValue | null;

View File

@@ -1,5 +1,5 @@
import { invoke } from '@tauri-apps/api/core';
import type { HttpRequest, HttpResponse } from './models';
import { invokeCmd } from './tauri';
export async function sendEphemeralRequest(
request: HttpRequest,
@@ -7,5 +7,5 @@ export async function sendEphemeralRequest(
): Promise<HttpResponse> {
// Remove some things that we don't want to associate
const newRequest = { ...request };
return invoke('cmd_send_ephemeral_request', { request: newRequest, environmentId });
return invokeCmd('cmd_send_ephemeral_request', { request: newRequest, environmentId });
}

View File

@@ -1,4 +1,3 @@
import { invoke } from '@tauri-apps/api/core';
import type {
CookieJar,
Environment,
@@ -8,14 +7,15 @@ import type {
Settings,
Workspace,
} from './models';
import { invokeCmd } from './tauri';
export async function getSettings(): Promise<Settings> {
return invoke('cmd_get_settings', {});
return invokeCmd('cmd_get_settings', {});
}
export async function getGrpcRequest(id: string | null): Promise<GrpcRequest | null> {
if (id === null) return null;
const request: GrpcRequest = (await invoke('cmd_get_grpc_request', { id })) ?? null;
const request: GrpcRequest = (await invokeCmd('cmd_get_grpc_request', { id })) ?? null;
if (request == null) {
return null;
}
@@ -24,7 +24,7 @@ export async function getGrpcRequest(id: string | null): Promise<GrpcRequest | n
export async function getHttpRequest(id: string | null): Promise<HttpRequest | null> {
if (id === null) return null;
const request: HttpRequest = (await invoke('cmd_get_http_request', { id })) ?? null;
const request: HttpRequest = (await invokeCmd('cmd_get_http_request', { id })) ?? null;
if (request == null) {
return null;
}
@@ -33,7 +33,7 @@ export async function getHttpRequest(id: string | null): Promise<HttpRequest | n
export async function getEnvironment(id: string | null): Promise<Environment | null> {
if (id === null) return null;
const environment: Environment = (await invoke('cmd_get_environment', { id })) ?? null;
const environment: Environment = (await invokeCmd('cmd_get_environment', { id })) ?? null;
if (environment == null) {
return null;
}
@@ -42,7 +42,7 @@ export async function getEnvironment(id: string | null): Promise<Environment | n
export async function getFolder(id: string | null): Promise<Folder | null> {
if (id === null) return null;
const folder: Folder = (await invoke('cmd_get_folder', { id })) ?? null;
const folder: Folder = (await invokeCmd('cmd_get_folder', { id })) ?? null;
if (folder == null) {
return null;
}
@@ -51,7 +51,7 @@ export async function getFolder(id: string | null): Promise<Folder | null> {
export async function getWorkspace(id: string | null): Promise<Workspace | null> {
if (id === null) return null;
const workspace: Workspace = (await invoke('cmd_get_workspace', { id })) ?? null;
const workspace: Workspace = (await invokeCmd('cmd_get_workspace', { id })) ?? null;
if (workspace == null) {
return null;
}
@@ -60,7 +60,7 @@ export async function getWorkspace(id: string | null): Promise<Workspace | null>
export async function getCookieJar(id: string | null): Promise<CookieJar | null> {
if (id === null) return null;
const cookieJar: CookieJar = (await invoke('cmd_get_cookie_jar', { id })) ?? null;
const cookieJar: CookieJar = (await invokeCmd('cmd_get_cookie_jar', { id })) ?? null;
if (cookieJar == null) {
return null;
}

70
src-web/lib/tauri.ts Normal file
View File

@@ -0,0 +1,70 @@
import type { InvokeArgs } from '@tauri-apps/api/core';
import { invoke } from '@tauri-apps/api/core';
type TauriCmd =
| 'cmd_check_for_updates'
| 'cmd_create_cookie_jar'
| 'cmd_create_environment'
| 'cmd_create_folder'
| 'cmd_create_grpc_request'
| 'cmd_create_http_request'
| 'cmd_create_workspace'
| 'cmd_curl_to_request'
| 'cmd_delete_all_grpc_connections'
| 'cmd_delete_all_http_responses'
| 'cmd_delete_cookie_jar'
| 'cmd_delete_environment'
| 'cmd_delete_folder'
| 'cmd_delete_grpc_connection'
| 'cmd_delete_grpc_request'
| 'cmd_delete_http_request'
| 'cmd_delete_http_response'
| 'cmd_delete_workspace'
| 'cmd_duplicate_grpc_request'
| 'cmd_duplicate_http_request'
| 'cmd_export_data'
| 'cmd_filter_response'
| 'cmd_get_cookie_jar'
| 'cmd_get_environment'
| 'cmd_get_folder'
| 'cmd_get_grpc_request'
| 'cmd_get_http_request'
| 'cmd_get_key_value'
| 'cmd_get_settings'
| 'cmd_get_workspace'
| 'cmd_grpc_go'
| 'cmd_grpc_reflect'
| 'cmd_import_data'
| 'cmd_list_cookie_jars'
| 'cmd_list_environments'
| 'cmd_list_folders'
| 'cmd_list_grpc_connections'
| 'cmd_list_grpc_events'
| 'cmd_list_grpc_requests'
| 'cmd_list_http_requests'
| 'cmd_list_http_responses'
| 'cmd_list_workspaces'
| 'cmd_metadata'
| 'cmd_new_nested_window'
| 'cmd_new_window'
| 'cmd_request_to_curl'
| 'cmd_dismiss_notification'
| 'cmd_save_response'
| 'cmd_send_ephemeral_request'
| 'cmd_send_http_request'
| 'cmd_set_key_value'
| 'cmd_set_update_mode'
| 'cmd_track_event'
| 'cmd_update_cookie_jar'
| 'cmd_update_environment'
| 'cmd_update_folder'
| 'cmd_update_grpc_request'
| 'cmd_update_http_request'
| 'cmd_update_settings'
| 'cmd_update_workspace'
| 'cmd_write_file_dev';
export async function invokeCmd<T>(cmd: TauriCmd, args?: InvokeArgs): Promise<T> {
// console.log('RUN COMMAND', cmd, args);
return invoke(cmd, args);
}