// All database related API calls import { SchemaFromBackend, SchemaStatsFromBackend } from '../../schema'; import { Broker } from './broker'; export function wsSchemaRequest(saveStateID: string) { Broker.instance().sendMessage({ key: 'schema', subKey: 'get', body: { cached: false, saveStateID: saveStateID, }, }); } type SchemaResponse = (data: SchemaFromBackend) => void; export function wsSchemaSubscription(callback: SchemaResponse) { const id = Broker.instance().subscribe(callback, 'schema_result'); return () => { Broker.instance().unSubscribe('schema_result', id); }; } export function wsSchemaStatsRequest(saveStateID: string) { Broker.instance().sendMessage({ key: 'schema', subKey: 'getSchemaStats', body: { cached: false, saveStateID: saveStateID, }, }); } type SchemaStatsResponse = (data: SchemaStatsFromBackend) => void; export function wsSchemaStatsSubscription(callback: SchemaStatsResponse) { const id = Broker.instance().subscribe(callback, 'schema_stats_result'); return () => { Broker.instance().unSubscribe('schema_stats_result', id); }; }