UNPKG

@chittyos/chittycontextual-client

Version:

TypeScript client for ChittyContextul cross-source temporal intelligence platform

204 lines (203 loc) 5.89 kB
// react/index.ts import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; var queryKeys = { messages: { all: ["messages"], list: (limit) => [...queryKeys.messages.all, "list", limit], search: (params) => [...queryKeys.messages.all, "search", params], timeline: (params) => [...queryKeys.messages.all, "timeline", params] }, documents: { all: ["documents"], list: () => [...queryKeys.documents.all, "list"] }, topics: { all: ["topics"], list: () => [...queryKeys.topics.all, "list"], analysis: (timeRange) => [...queryKeys.topics.all, "analysis", timeRange], evolution: (topicId, timeRange) => [...queryKeys.topics.all, "evolution", topicId, timeRange] }, entities: { all: ["entities"], list: () => [...queryKeys.entities.all, "list"], extractions: () => [...queryKeys.entities.all, "extractions"] }, crossReferences: { all: ["crossReferences"], list: () => [...queryKeys.crossReferences.all, "list"] }, analytics: { all: ["analytics"], correlations: () => [...queryKeys.analytics.all, "correlations"], stats: () => [...queryKeys.analytics.all, "stats"] }, search: { all: ["search"], intelligent: (params) => [...queryKeys.search.all, "intelligent", params] } }; function useMessages(client, options, queryOptions) { return useQuery({ queryKey: queryKeys.messages.list(options?.limit), queryFn: () => client.messages.list(options), ...queryOptions }); } function useSearchMessages(client, params, queryOptions) { return useQuery({ queryKey: queryKeys.messages.search(params), queryFn: () => client.messages.search(params), enabled: !!params.query, ...queryOptions }); } function useTimeline(client, params, queryOptions) { return useQuery({ queryKey: queryKeys.messages.timeline(params), queryFn: () => client.messages.timeline(params), enabled: !!params.start && !!params.end, ...queryOptions }); } function useDocuments(client, queryOptions) { return useQuery({ queryKey: queryKeys.documents.list(), queryFn: () => client.documents.list(), ...queryOptions }); } function useUploadDocuments(client, onProgress, mutationOptions) { const queryClient = useQueryClient(); return useMutation({ mutationFn: (files) => client.documents.upload(files, onProgress), onSuccess: () => { queryClient.invalidateQueries({ queryKey: queryKeys.documents.all }); }, ...mutationOptions }); } function useTopics(client, queryOptions) { return useQuery({ queryKey: queryKeys.topics.list(), queryFn: () => client.topics.list(), ...queryOptions }); } function useTopicAnalysis(client, timeRange, queryOptions) { return useQuery({ queryKey: queryKeys.topics.analysis(timeRange), queryFn: () => client.topics.analysis(timeRange), ...queryOptions }); } function useTopicEvolution(client, topicId, timeRange, queryOptions) { return useQuery({ queryKey: queryKeys.topics.evolution(topicId, timeRange), queryFn: () => client.topics.evolution(topicId, timeRange), enabled: !!topicId && !!timeRange.start && !!timeRange.end, ...queryOptions }); } function useEntities(client, queryOptions) { return useQuery({ queryKey: queryKeys.entities.list(), queryFn: () => client.entities.list(), ...queryOptions }); } function useEntityExtractions(client, queryOptions) { return useQuery({ queryKey: queryKeys.entities.extractions(), queryFn: () => client.entities.extractions(), ...queryOptions }); } function useCrossReferences(client, queryOptions) { return useQuery({ queryKey: queryKeys.crossReferences.list(), queryFn: () => client.crossReferences.list(), ...queryOptions }); } function useAnalyzeCrossReferences(client, mutationOptions) { const queryClient = useQueryClient(); return useMutation({ mutationFn: (params) => client.crossReferences.analyze(params), onSuccess: () => { queryClient.invalidateQueries({ queryKey: queryKeys.crossReferences.all }); }, ...mutationOptions }); } function useAnalyticsCorrelations(client, queryOptions) { return useQuery({ queryKey: queryKeys.analytics.correlations(), queryFn: () => client.analytics.correlations(), ...queryOptions }); } function useAnalyticsStats(client, queryOptions) { return useQuery({ queryKey: queryKeys.analytics.stats(), queryFn: () => client.analytics.stats(), ...queryOptions }); } function useBulkAnalysis(client, mutationOptions) { const queryClient = useQueryClient(); return useMutation({ mutationFn: (params) => client.analyze.bulk(params), onSuccess: () => { queryClient.invalidateQueries({ queryKey: queryKeys.topics.all }); queryClient.invalidateQueries({ queryKey: queryKeys.entities.all }); }, ...mutationOptions }); } function useComprehensiveAnalysis(client, mutationOptions) { return useMutation({ mutationFn: (params) => client.analyze.comprehensive(params), ...mutationOptions }); } function useIntelligentSearch(client, params, queryOptions) { return useQuery({ queryKey: queryKeys.search.intelligent(params), queryFn: () => client.search.intelligent(params), enabled: !!params.q, ...queryOptions }); } function usePartyLearning(client, mutationOptions) { return useMutation({ mutationFn: (params) => client.parties.learn(params), ...mutationOptions }); } export { queryKeys, useAnalyticsCorrelations, useAnalyticsStats, useAnalyzeCrossReferences, useBulkAnalysis, useComprehensiveAnalysis, useCrossReferences, useDocuments, useEntities, useEntityExtractions, useIntelligentSearch, useMessages, usePartyLearning, useSearchMessages, useTimeline, useTopicAnalysis, useTopicEvolution, useTopics, useUploadDocuments };