@chittyos/chittycontextual-client
Version:
TypeScript client for ChittyContextul cross-source temporal intelligence platform
204 lines (203 loc) • 5.89 kB
JavaScript
// 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
};