@braine/quantum-query 1.1.0

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.
@@ -0,0 +1,73 @@
1
+ declare function subscribe(store: object, callback: (target: any, prop: any, value: any) => void): () => boolean;
2
+ declare function createState<T extends object>(initialState: T): T;
3
+
4
+ type ModelDefinition<S, A, C> = {
5
+ state: S;
6
+ actions?: A & ThisType<S & A & C>;
7
+ computed?: C & ThisType<S & A & C>;
8
+ };
9
+ type ComputedValues<T> = {
10
+ [K in keyof T]: T[K] extends (...args: any[]) => infer R ? R : never;
11
+ };
12
+ declare function defineModel<S extends object, A extends object, C extends object>(def: ModelDefinition<S, A, C>): S & A & ComputedValues<C>;
13
+
14
+ declare function useStore<T extends object>(store: T): T;
15
+
16
+ declare function scheduleUpdate(callback: () => void): void;
17
+
18
+ declare function enableDevTools(store: any, name?: string): void;
19
+
20
+ declare function computed<T>(fn: () => T): {
21
+ readonly value: T;
22
+ };
23
+
24
+ type RetryConfig = {
25
+ retries: number;
26
+ baseDelay: number;
27
+ maxDelay: number;
28
+ shouldRetry?: (error: unknown, attempt: number) => boolean;
29
+ };
30
+ type HttpClientConfig = {
31
+ baseURL?: string;
32
+ headers?: Record<string, string>;
33
+ timeout?: number;
34
+ retry?: number | RetryConfig;
35
+ auth?: {
36
+ getToken: () => string | Promise<string | null>;
37
+ onTokenExpired: (client: HttpClient) => Promise<string | null>;
38
+ onAuthFailed?: () => void;
39
+ };
40
+ interceptors?: {
41
+ request?: (config: RequestConfig<unknown>) => RequestConfig<unknown> | Promise<RequestConfig<unknown>>;
42
+ response?: (response: Response) => Response | Promise<Response>;
43
+ };
44
+ };
45
+ type Validator<T> = {
46
+ parse?: (data: unknown) => T;
47
+ validateSync?: (data: unknown) => T;
48
+ };
49
+ type RequestConfig<T> = RequestInit & {
50
+ schema?: Validator<T>;
51
+ timeout?: number;
52
+ retry?: number | RetryConfig;
53
+ };
54
+ type HttpClient = {
55
+ get: <T>(url: string, config?: RequestConfig<T>) => Promise<T>;
56
+ post: <T>(url: string, data?: unknown, config?: RequestConfig<T>) => Promise<T>;
57
+ put: <T>(url: string, data?: unknown, config?: RequestConfig<T>) => Promise<T>;
58
+ delete: <T>(url: string, config?: RequestConfig<T>) => Promise<T>;
59
+ patch: <T>(url: string, data?: unknown, config?: RequestConfig<T>) => Promise<T>;
60
+ request: <T>(url: string, config?: RequestConfig<T>) => Promise<T>;
61
+ };
62
+ declare function createHttpClient(config: HttpClientConfig): HttpClient;
63
+
64
+ declare function isPromise(value: any): value is Promise<any>;
65
+ declare function handlePromise(promise: Promise<any>, triggerUpdate: () => void): void;
66
+ declare function unwrapPromise(promise: Promise<any>): any;
67
+ declare function getPromiseState(promise: Promise<any>): {
68
+ status: "pending" | "fulfilled" | "rejected";
69
+ value: any;
70
+ error: any;
71
+ };
72
+
73
+ export { computed, createHttpClient, createState, defineModel, enableDevTools, getPromiseState, handlePromise, isPromise, scheduleUpdate, subscribe, unwrapPromise, useStore };
@@ -0,0 +1,73 @@
1
+ declare function subscribe(store: object, callback: (target: any, prop: any, value: any) => void): () => boolean;
2
+ declare function createState<T extends object>(initialState: T): T;
3
+
4
+ type ModelDefinition<S, A, C> = {
5
+ state: S;
6
+ actions?: A & ThisType<S & A & C>;
7
+ computed?: C & ThisType<S & A & C>;
8
+ };
9
+ type ComputedValues<T> = {
10
+ [K in keyof T]: T[K] extends (...args: any[]) => infer R ? R : never;
11
+ };
12
+ declare function defineModel<S extends object, A extends object, C extends object>(def: ModelDefinition<S, A, C>): S & A & ComputedValues<C>;
13
+
14
+ declare function useStore<T extends object>(store: T): T;
15
+
16
+ declare function scheduleUpdate(callback: () => void): void;
17
+
18
+ declare function enableDevTools(store: any, name?: string): void;
19
+
20
+ declare function computed<T>(fn: () => T): {
21
+ readonly value: T;
22
+ };
23
+
24
+ type RetryConfig = {
25
+ retries: number;
26
+ baseDelay: number;
27
+ maxDelay: number;
28
+ shouldRetry?: (error: unknown, attempt: number) => boolean;
29
+ };
30
+ type HttpClientConfig = {
31
+ baseURL?: string;
32
+ headers?: Record<string, string>;
33
+ timeout?: number;
34
+ retry?: number | RetryConfig;
35
+ auth?: {
36
+ getToken: () => string | Promise<string | null>;
37
+ onTokenExpired: (client: HttpClient) => Promise<string | null>;
38
+ onAuthFailed?: () => void;
39
+ };
40
+ interceptors?: {
41
+ request?: (config: RequestConfig<unknown>) => RequestConfig<unknown> | Promise<RequestConfig<unknown>>;
42
+ response?: (response: Response) => Response | Promise<Response>;
43
+ };
44
+ };
45
+ type Validator<T> = {
46
+ parse?: (data: unknown) => T;
47
+ validateSync?: (data: unknown) => T;
48
+ };
49
+ type RequestConfig<T> = RequestInit & {
50
+ schema?: Validator<T>;
51
+ timeout?: number;
52
+ retry?: number | RetryConfig;
53
+ };
54
+ type HttpClient = {
55
+ get: <T>(url: string, config?: RequestConfig<T>) => Promise<T>;
56
+ post: <T>(url: string, data?: unknown, config?: RequestConfig<T>) => Promise<T>;
57
+ put: <T>(url: string, data?: unknown, config?: RequestConfig<T>) => Promise<T>;
58
+ delete: <T>(url: string, config?: RequestConfig<T>) => Promise<T>;
59
+ patch: <T>(url: string, data?: unknown, config?: RequestConfig<T>) => Promise<T>;
60
+ request: <T>(url: string, config?: RequestConfig<T>) => Promise<T>;
61
+ };
62
+ declare function createHttpClient(config: HttpClientConfig): HttpClient;
63
+
64
+ declare function isPromise(value: any): value is Promise<any>;
65
+ declare function handlePromise(promise: Promise<any>, triggerUpdate: () => void): void;
66
+ declare function unwrapPromise(promise: Promise<any>): any;
67
+ declare function getPromiseState(promise: Promise<any>): {
68
+ status: "pending" | "fulfilled" | "rejected";
69
+ value: any;
70
+ error: any;
71
+ };
72
+
73
+ export { computed, createHttpClient, createState, defineModel, enableDevTools, getPromiseState, handlePromise, isPromise, scheduleUpdate, subscribe, unwrapPromise, useStore };