nova-test / services /tabBus.ts
Leon4gr45's picture
Upload folder using huggingface_hub
4fdaf19 verified
Raw
History Blame Contribute Delete
1.18 kB
export interface TabEventPayload {
source: string;
target?: string;
action: string;
payload?: Record<string, unknown>;
}
export interface ApiResult<T = unknown> {
ok: boolean;
data?: T;
error?: string;
}
const jsonHeaders = { 'Content-Type': 'application/json' };
export async function publishTabEvent(event: TabEventPayload): Promise<ApiResult> {
try {
const response = await fetch('/api/tabs/events', {
method: 'POST',
headers: jsonHeaders,
body: JSON.stringify(event),
});
const data = await response.json();
return response.ok ? { ok: true, data } : { ok: false, error: data?.error || response.statusText };
} catch (error) {
return { ok: false, error: error instanceof Error ? error.message : 'Unknown tab bus error' };
}
}
export async function getApiSpec(): Promise<ApiResult> {
try {
const response = await fetch('/api/openapi.json');
const data = await response.json();
return response.ok ? { ok: true, data } : { ok: false, error: data?.error || response.statusText };
} catch (error) {
return { ok: false, error: error instanceof Error ? error.message : 'Unable to load API spec' };
}
}