@letta-ai/letta-react 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letta-ai/letta-react",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Letta's react library",
5
5
  "private": false,
6
6
  "main": "./index.js",
package/src/index.ts CHANGED
@@ -1,2 +1 @@
1
1
  export * from './useLettaQuery/useLettaQuery';
2
- export * from './useLetta/useLetta';
@@ -1,12 +1,10 @@
1
1
  import React from 'react';
2
2
  import { renderHook, waitFor } from '@testing-library/react';
3
- import { useLettaQuery } from './useLettaQuery.ts';
4
- import { LettaClient } from '@letta-ai/letta-client';
3
+ import { useLettaQuery } from './useLettaQuery';
5
4
  import { enableFetchMocks } from 'jest-fetch-mock';
6
5
  import fetchMock from 'jest-fetch-mock';
7
6
  enableFetchMocks();
8
7
  import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
9
- import { useLetta } from '../useLetta/useLetta.ts';
10
8
 
11
9
  const queryClient = new QueryClient({
12
10
  defaultOptions: {
@@ -34,9 +32,14 @@ describe('useLettaQuery', () => {
34
32
 
35
33
  const { result } = renderHook(
36
34
  () => {
37
- const client = useLetta();
38
-
39
- return useLettaQuery((args) => client.agents.list(args), { limit: 1 });
35
+ return useLettaQuery(
36
+ (client) => {
37
+ return client.agents.list();
38
+ },
39
+ {
40
+ queryKey: ['agents'],
41
+ }
42
+ );
40
43
  },
41
44
  { wrapper }
42
45
  );
@@ -1,34 +1,22 @@
1
1
  import { useQuery } from '@tanstack/react-query';
2
+ import { useRef } from 'react';
3
+ import { LettaClient } from '@letta-ai/letta-client';
4
+ import type { UseQueryOptions } from '@tanstack/react-query/src/types.ts';
2
5
 
3
- export function getQueryKey<Request>(
4
- operationName: string,
5
- request: Request
6
- ): [string, Request] {
7
- return [operationName, request];
8
- }
6
+ type Query<Res> = (client: LettaClient) => Res;
7
+
8
+ type Options<Res> = Omit<UseQueryOptions<Res>, 'queryFn'>;
9
+
10
+ export function useLettaQuery<Res>(
11
+ operation: Query<Promise<Res>>,
12
+ queryOptions: Options<Res>
13
+ ) {
14
+ const client = useRef(new LettaClient());
9
15
 
10
- export function useLettaQuery<
11
- Request extends Record<string, any> = Record<string, any>,
12
- Options extends Record<string, any> = Record<string, any>,
13
- Response = unknown
14
- >(
15
- operation: (request: Request, options?: Options) => Response,
16
- request: Request,
17
- options?: Options,
18
- queryOptions = {}
19
- ): ReturnType<
20
- typeof useQuery<
21
- Awaited<Response>,
22
- Error,
23
- Awaited<Response>,
24
- [string, Request]
25
- >
26
- > {
27
- return useQuery<Response, Error, Awaited<Response>, [string, Request]>({
28
- queryKey: getQueryKey<Request>(operation.name, request),
29
- queryFn: () => {
30
- return operation(request, options);
16
+ return useQuery<Res>({
17
+ ...queryOptions,
18
+ queryFn: async () => {
19
+ return operation(client.current);
31
20
  },
32
- ...(queryOptions || {}),
33
21
  });
34
22
  }
@@ -1,6 +1,6 @@
1
- import { useQuery } from '@tanstack/react-query';
2
- export declare function getQueryKey<Request>(operationName: string, request: Request): [string, Request];
3
- export declare function useLettaQuery<Request extends Record<string, any> = Record<string, any>, Options extends Record<string, any> = Record<string, any>, Response = unknown>(operation: (request: Request, options?: Options) => Response, request: Request, options?: Options, queryOptions?: {}): ReturnType<typeof useQuery<Awaited<Response>, Error, Awaited<Response>, [
4
- string,
5
- Request
6
- ]>>;
1
+ import { LettaClient } from '@letta-ai/letta-client';
2
+ import type { UseQueryOptions } from '@tanstack/react-query/src/types.ts';
3
+ type Query<Res> = (client: LettaClient) => Res;
4
+ type Options<Res> = Omit<UseQueryOptions<Res>, 'queryFn'>;
5
+ export declare function useLettaQuery<Res>(operation: Query<Promise<Res>>, queryOptions: Options<Res>): import("@tanstack/react-query").UseQueryResult<Res, Error>;
6
+ export {};
@@ -1,2 +0,0 @@
1
- import { LettaClient } from '@letta-ai/letta-client';
2
- export declare function useLetta(options?: LettaClient.Options): LettaClient;
@@ -1,8 +0,0 @@
1
- import { useState } from 'react';
2
- import { LettaClient } from '@letta-ai/letta-client';
3
-
4
- export function useLetta(options: LettaClient.Options = {}) {
5
- const [client] = useState(new LettaClient(options));
6
-
7
- return client;
8
- }
@@ -1,2 +0,0 @@
1
- import { LettaClient } from '@letta-ai/letta-client';
2
- export declare function useLetta(options?: LettaClient.Options): LettaClient;