@objectstack/client-react 1.0.4 → 1.0.5
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/.turbo/turbo-build.log +22 -0
- package/CHANGELOG.md +15 -0
- package/dist/index.d.mts +416 -0
- package/dist/index.d.ts +412 -11
- package/dist/index.js +505 -32
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +458 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +6 -6
- package/src/data-hooks.tsx +1 -1
- package/tsconfig.json +2 -1
- package/dist/context.d.ts +0 -45
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -86
- package/dist/data-hooks.d.ts +0 -246
- package/dist/data-hooks.d.ts.map +0 -1
- package/dist/data-hooks.js +0 -398
- package/dist/index.d.ts.map +0 -1
- package/dist/metadata-hooks.d.ts +0 -121
- package/dist/metadata-hooks.d.ts.map +0 -1
- package/dist/metadata-hooks.js +0 -243
package/dist/context.js
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* ObjectStack React Context
|
|
4
|
-
*
|
|
5
|
-
* Provides ObjectStackClient instance to React components via Context API
|
|
6
|
-
*/
|
|
7
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
-
if (k2 === undefined) k2 = k;
|
|
9
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
-
}
|
|
13
|
-
Object.defineProperty(o, k2, desc);
|
|
14
|
-
}) : (function(o, m, k, k2) {
|
|
15
|
-
if (k2 === undefined) k2 = k;
|
|
16
|
-
o[k2] = m[k];
|
|
17
|
-
}));
|
|
18
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
-
}) : function(o, v) {
|
|
21
|
-
o["default"] = v;
|
|
22
|
-
});
|
|
23
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
-
var ownKeys = function(o) {
|
|
25
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
-
var ar = [];
|
|
27
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
-
return ar;
|
|
29
|
-
};
|
|
30
|
-
return ownKeys(o);
|
|
31
|
-
};
|
|
32
|
-
return function (mod) {
|
|
33
|
-
if (mod && mod.__esModule) return mod;
|
|
34
|
-
var result = {};
|
|
35
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
-
__setModuleDefault(result, mod);
|
|
37
|
-
return result;
|
|
38
|
-
};
|
|
39
|
-
})();
|
|
40
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
-
exports.ObjectStackContext = void 0;
|
|
42
|
-
exports.ObjectStackProvider = ObjectStackProvider;
|
|
43
|
-
exports.useClient = useClient;
|
|
44
|
-
const React = __importStar(require("react"));
|
|
45
|
-
const react_1 = require("react");
|
|
46
|
-
exports.ObjectStackContext = (0, react_1.createContext)(null);
|
|
47
|
-
/**
|
|
48
|
-
* Provider component that makes ObjectStackClient available to all child components
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* ```tsx
|
|
52
|
-
* const client = new ObjectStackClient({ baseUrl: 'http://localhost:3000' });
|
|
53
|
-
*
|
|
54
|
-
* function App() {
|
|
55
|
-
* return (
|
|
56
|
-
* <ObjectStackProvider client={client}>
|
|
57
|
-
* <YourComponents />
|
|
58
|
-
* </ObjectStackProvider>
|
|
59
|
-
* );
|
|
60
|
-
* }
|
|
61
|
-
* ```
|
|
62
|
-
*/
|
|
63
|
-
function ObjectStackProvider({ client, children }) {
|
|
64
|
-
return (React.createElement(exports.ObjectStackContext.Provider, { value: client }, children));
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Hook to access the ObjectStackClient instance from context
|
|
68
|
-
*
|
|
69
|
-
* @throws Error if used outside of ObjectStackProvider
|
|
70
|
-
*
|
|
71
|
-
* @example
|
|
72
|
-
* ```tsx
|
|
73
|
-
* function MyComponent() {
|
|
74
|
-
* const client = useClient();
|
|
75
|
-
* // Use client.data.find(), etc.
|
|
76
|
-
* }
|
|
77
|
-
* ```
|
|
78
|
-
*/
|
|
79
|
-
function useClient() {
|
|
80
|
-
const client = (0, react_1.useContext)(exports.ObjectStackContext);
|
|
81
|
-
if (!client) {
|
|
82
|
-
throw new Error('useClient must be used within an ObjectStackProvider. ' +
|
|
83
|
-
'Make sure your component is wrapped with <ObjectStackProvider client={...}>.');
|
|
84
|
-
}
|
|
85
|
-
return client;
|
|
86
|
-
}
|
package/dist/data-hooks.d.ts
DELETED
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Data Query Hooks
|
|
3
|
-
*
|
|
4
|
-
* React hooks for querying and mutating ObjectStack data
|
|
5
|
-
*/
|
|
6
|
-
import { QueryAST, FilterCondition } from '@objectstack/spec/data';
|
|
7
|
-
import { PaginatedResult } from '@objectstack/client';
|
|
8
|
-
/**
|
|
9
|
-
* Query options for useQuery hook
|
|
10
|
-
*/
|
|
11
|
-
export interface UseQueryOptions<T = any> {
|
|
12
|
-
/** Query AST or simplified query options */
|
|
13
|
-
query?: Partial<QueryAST>;
|
|
14
|
-
/** Simple field selection */
|
|
15
|
-
select?: string[];
|
|
16
|
-
/** Simple filters */
|
|
17
|
-
filters?: FilterCondition;
|
|
18
|
-
/** Sort configuration */
|
|
19
|
-
sort?: string | string[];
|
|
20
|
-
/** Limit results */
|
|
21
|
-
top?: number;
|
|
22
|
-
/** Skip results (for pagination) */
|
|
23
|
-
skip?: number;
|
|
24
|
-
/** Enable/disable automatic query execution */
|
|
25
|
-
enabled?: boolean;
|
|
26
|
-
/** Refetch interval in milliseconds */
|
|
27
|
-
refetchInterval?: number;
|
|
28
|
-
/** Callback on successful query */
|
|
29
|
-
onSuccess?: (data: PaginatedResult<T>) => void;
|
|
30
|
-
/** Callback on error */
|
|
31
|
-
onError?: (error: Error) => void;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Query result for useQuery hook
|
|
35
|
-
*/
|
|
36
|
-
export interface UseQueryResult<T = any> {
|
|
37
|
-
/** Query result data */
|
|
38
|
-
data: PaginatedResult<T> | null;
|
|
39
|
-
/** Loading state */
|
|
40
|
-
isLoading: boolean;
|
|
41
|
-
/** Error state */
|
|
42
|
-
error: Error | null;
|
|
43
|
-
/** Refetch the query */
|
|
44
|
-
refetch: () => Promise<void>;
|
|
45
|
-
/** Is currently refetching */
|
|
46
|
-
isRefetching: boolean;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Hook for querying ObjectStack data with automatic caching and refetching
|
|
50
|
-
*
|
|
51
|
-
* @example
|
|
52
|
-
* ```tsx
|
|
53
|
-
* function TaskList() {
|
|
54
|
-
* const { data, isLoading, error, refetch } = useQuery('todo_task', {
|
|
55
|
-
* select: ['id', 'subject', 'priority'],
|
|
56
|
-
* sort: ['-created_at'],
|
|
57
|
-
* top: 20
|
|
58
|
-
* });
|
|
59
|
-
*
|
|
60
|
-
* if (isLoading) return <div>Loading...</div>;
|
|
61
|
-
* if (error) return <div>Error: {error.message}</div>;
|
|
62
|
-
*
|
|
63
|
-
* return (
|
|
64
|
-
* <div>
|
|
65
|
-
* {data?.value.map(task => (
|
|
66
|
-
* <div key={task.id}>{task.subject}</div>
|
|
67
|
-
* ))}
|
|
68
|
-
* </div>
|
|
69
|
-
* );
|
|
70
|
-
* }
|
|
71
|
-
* ```
|
|
72
|
-
*/
|
|
73
|
-
export declare function useQuery<T = any>(object: string, options?: UseQueryOptions<T>): UseQueryResult<T>;
|
|
74
|
-
/**
|
|
75
|
-
* Mutation options for useMutation hook
|
|
76
|
-
*/
|
|
77
|
-
export interface UseMutationOptions<TData = any, TVariables = any> {
|
|
78
|
-
/** Callback on successful mutation */
|
|
79
|
-
onSuccess?: (data: TData, variables: TVariables) => void;
|
|
80
|
-
/** Callback on error */
|
|
81
|
-
onError?: (error: Error, variables: TVariables) => void;
|
|
82
|
-
/** Callback when mutation is settled (success or error) */
|
|
83
|
-
onSettled?: (data: TData | undefined, error: Error | null, variables: TVariables) => void;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Mutation result for useMutation hook
|
|
87
|
-
*/
|
|
88
|
-
export interface UseMutationResult<TData = any, TVariables = any> {
|
|
89
|
-
/** Execute the mutation */
|
|
90
|
-
mutate: (variables: TVariables) => Promise<TData>;
|
|
91
|
-
/** Async version of mutate that throws errors */
|
|
92
|
-
mutateAsync: (variables: TVariables) => Promise<TData>;
|
|
93
|
-
/** Mutation result data */
|
|
94
|
-
data: TData | null;
|
|
95
|
-
/** Loading state */
|
|
96
|
-
isLoading: boolean;
|
|
97
|
-
/** Error state */
|
|
98
|
-
error: Error | null;
|
|
99
|
-
/** Reset mutation state */
|
|
100
|
-
reset: () => void;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Hook for creating, updating, or deleting ObjectStack data
|
|
104
|
-
*
|
|
105
|
-
* @example
|
|
106
|
-
* ```tsx
|
|
107
|
-
* function CreateTaskForm() {
|
|
108
|
-
* const { mutate, isLoading, error } = useMutation('todo_task', 'create', {
|
|
109
|
-
* onSuccess: (data) => {
|
|
110
|
-
* console.log('Task created:', data);
|
|
111
|
-
* }
|
|
112
|
-
* });
|
|
113
|
-
*
|
|
114
|
-
* const handleSubmit = (formData) => {
|
|
115
|
-
* mutate(formData);
|
|
116
|
-
* };
|
|
117
|
-
*
|
|
118
|
-
* return <form onSubmit={handleSubmit}>...</form>;
|
|
119
|
-
* }
|
|
120
|
-
* ```
|
|
121
|
-
*/
|
|
122
|
-
export declare function useMutation<TData = any, TVariables = any>(object: string, operation: 'create' | 'update' | 'delete' | 'createMany' | 'updateMany' | 'deleteMany', options?: UseMutationOptions<TData, TVariables>): UseMutationResult<TData, TVariables>;
|
|
123
|
-
/**
|
|
124
|
-
* Pagination options for usePagination hook
|
|
125
|
-
*/
|
|
126
|
-
export interface UsePaginationOptions<T = any> extends Omit<UseQueryOptions<T>, 'top' | 'skip'> {
|
|
127
|
-
/** Page size */
|
|
128
|
-
pageSize?: number;
|
|
129
|
-
/** Initial page (1-based) */
|
|
130
|
-
initialPage?: number;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Pagination result for usePagination hook
|
|
134
|
-
*/
|
|
135
|
-
export interface UsePaginationResult<T = any> extends UseQueryResult<T> {
|
|
136
|
-
/** Current page (1-based) */
|
|
137
|
-
page: number;
|
|
138
|
-
/** Total number of pages */
|
|
139
|
-
totalPages: number;
|
|
140
|
-
/** Total number of records */
|
|
141
|
-
totalCount: number;
|
|
142
|
-
/** Go to next page */
|
|
143
|
-
nextPage: () => void;
|
|
144
|
-
/** Go to previous page */
|
|
145
|
-
previousPage: () => void;
|
|
146
|
-
/** Go to specific page */
|
|
147
|
-
goToPage: (page: number) => void;
|
|
148
|
-
/** Whether there is a next page */
|
|
149
|
-
hasNextPage: boolean;
|
|
150
|
-
/** Whether there is a previous page */
|
|
151
|
-
hasPreviousPage: boolean;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Hook for paginated data queries
|
|
155
|
-
*
|
|
156
|
-
* @example
|
|
157
|
-
* ```tsx
|
|
158
|
-
* function PaginatedTaskList() {
|
|
159
|
-
* const {
|
|
160
|
-
* data,
|
|
161
|
-
* isLoading,
|
|
162
|
-
* page,
|
|
163
|
-
* totalPages,
|
|
164
|
-
* nextPage,
|
|
165
|
-
* previousPage,
|
|
166
|
-
* hasNextPage,
|
|
167
|
-
* hasPreviousPage
|
|
168
|
-
* } = usePagination('todo_task', {
|
|
169
|
-
* pageSize: 10,
|
|
170
|
-
* sort: ['-created_at']
|
|
171
|
-
* });
|
|
172
|
-
*
|
|
173
|
-
* return (
|
|
174
|
-
* <div>
|
|
175
|
-
* {data?.value.map(task => <div key={task.id}>{task.subject}</div>)}
|
|
176
|
-
* <button onClick={previousPage} disabled={!hasPreviousPage}>Previous</button>
|
|
177
|
-
* <span>Page {page} of {totalPages}</span>
|
|
178
|
-
* <button onClick={nextPage} disabled={!hasNextPage}>Next</button>
|
|
179
|
-
* </div>
|
|
180
|
-
* );
|
|
181
|
-
* }
|
|
182
|
-
* ```
|
|
183
|
-
*/
|
|
184
|
-
export declare function usePagination<T = any>(object: string, options?: UsePaginationOptions<T>): UsePaginationResult<T>;
|
|
185
|
-
/**
|
|
186
|
-
* Infinite query options for useInfiniteQuery hook
|
|
187
|
-
*/
|
|
188
|
-
export interface UseInfiniteQueryOptions<T = any> extends Omit<UseQueryOptions<T>, 'skip'> {
|
|
189
|
-
/** Page size for each fetch */
|
|
190
|
-
pageSize?: number;
|
|
191
|
-
/** Get next page parameter */
|
|
192
|
-
getNextPageParam?: (lastPage: PaginatedResult<T>, allPages: PaginatedResult<T>[]) => number | undefined;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Infinite query result for useInfiniteQuery hook
|
|
196
|
-
*/
|
|
197
|
-
export interface UseInfiniteQueryResult<T = any> {
|
|
198
|
-
/** All pages of data */
|
|
199
|
-
data: PaginatedResult<T>[];
|
|
200
|
-
/** Flattened data from all pages */
|
|
201
|
-
flatData: T[];
|
|
202
|
-
/** Loading state */
|
|
203
|
-
isLoading: boolean;
|
|
204
|
-
/** Error state */
|
|
205
|
-
error: Error | null;
|
|
206
|
-
/** Load the next page */
|
|
207
|
-
fetchNextPage: () => Promise<void>;
|
|
208
|
-
/** Whether there are more pages */
|
|
209
|
-
hasNextPage: boolean;
|
|
210
|
-
/** Is currently fetching next page */
|
|
211
|
-
isFetchingNextPage: boolean;
|
|
212
|
-
/** Refetch all pages */
|
|
213
|
-
refetch: () => Promise<void>;
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Hook for infinite scrolling / load more functionality
|
|
217
|
-
*
|
|
218
|
-
* @example
|
|
219
|
-
* ```tsx
|
|
220
|
-
* function InfiniteTaskList() {
|
|
221
|
-
* const {
|
|
222
|
-
* flatData,
|
|
223
|
-
* isLoading,
|
|
224
|
-
* fetchNextPage,
|
|
225
|
-
* hasNextPage,
|
|
226
|
-
* isFetchingNextPage
|
|
227
|
-
* } = useInfiniteQuery('todo_task', {
|
|
228
|
-
* pageSize: 20,
|
|
229
|
-
* sort: ['-created_at']
|
|
230
|
-
* });
|
|
231
|
-
*
|
|
232
|
-
* return (
|
|
233
|
-
* <div>
|
|
234
|
-
* {flatData.map(task => <div key={task.id}>{task.subject}</div>)}
|
|
235
|
-
* {hasNextPage && (
|
|
236
|
-
* <button onClick={fetchNextPage} disabled={isFetchingNextPage}>
|
|
237
|
-
* {isFetchingNextPage ? 'Loading...' : 'Load More'}
|
|
238
|
-
* </button>
|
|
239
|
-
* )}
|
|
240
|
-
* </div>
|
|
241
|
-
* );
|
|
242
|
-
* }
|
|
243
|
-
* ```
|
|
244
|
-
*/
|
|
245
|
-
export declare function useInfiniteQuery<T = any>(object: string, options?: UseInfiniteQueryOptions<T>): UseInfiniteQueryResult<T>;
|
|
246
|
-
//# sourceMappingURL=data-hooks.d.ts.map
|
package/dist/data-hooks.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-hooks.d.ts","sourceRoot":"","sources":["../src/data-hooks.tsx"],"names":[],"mappings":"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"}
|