fetchium 0.1.0 → 0.1.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.
Files changed (138) hide show
  1. package/CHANGELOG.md +6 -5
  2. package/dist/cjs/development/QueryClient-CLi3ONNM.js +2 -0
  3. package/dist/cjs/development/QueryClient-CLi3ONNM.js.map +1 -0
  4. package/dist/cjs/development/QueryController-BQA49OYU.js +2 -0
  5. package/dist/cjs/development/QueryController-BQA49OYU.js.map +1 -0
  6. package/dist/cjs/development/index.js +1 -1
  7. package/dist/cjs/development/index.js.map +1 -1
  8. package/dist/cjs/development/mutation-CikIl_6k.js +2 -0
  9. package/dist/cjs/development/mutation-CikIl_6k.js.map +1 -0
  10. package/dist/cjs/development/react/index.js +1 -1
  11. package/dist/cjs/development/rest/index.js +2 -0
  12. package/dist/cjs/development/rest/index.js.map +1 -0
  13. package/dist/cjs/development/topic/index.js +2 -0
  14. package/dist/cjs/development/topic/index.js.map +1 -0
  15. package/dist/cjs/production/QueryClient-N0MJmuHW.js +2 -0
  16. package/dist/cjs/production/QueryClient-N0MJmuHW.js.map +1 -0
  17. package/dist/cjs/production/QueryController-BQA49OYU.js +2 -0
  18. package/dist/cjs/production/QueryController-BQA49OYU.js.map +1 -0
  19. package/dist/cjs/production/index.js +1 -1
  20. package/dist/cjs/production/index.js.map +1 -1
  21. package/dist/cjs/production/mutation-P_Yb4LI9.js +2 -0
  22. package/dist/cjs/production/mutation-P_Yb4LI9.js.map +1 -0
  23. package/dist/cjs/production/react/index.js +1 -1
  24. package/dist/cjs/production/rest/index.js +2 -0
  25. package/dist/cjs/production/rest/index.js.map +1 -0
  26. package/dist/cjs/production/topic/index.js +2 -0
  27. package/dist/cjs/production/topic/index.js.map +1 -0
  28. package/dist/esm/MutationResult.d.ts +0 -1
  29. package/dist/esm/MutationResult.d.ts.map +1 -1
  30. package/dist/esm/QueryClient.d.ts +26 -4
  31. package/dist/esm/QueryClient.d.ts.map +1 -1
  32. package/dist/esm/QueryController.d.ts +49 -0
  33. package/dist/esm/QueryController.d.ts.map +1 -0
  34. package/dist/esm/QueryResult.d.ts +10 -10
  35. package/dist/esm/QueryResult.d.ts.map +1 -1
  36. package/dist/esm/development/QueryClient-Dtde3pss.js +2572 -0
  37. package/dist/esm/development/QueryClient-Dtde3pss.js.map +1 -0
  38. package/dist/esm/development/QueryController-Ch_ncxiI.js +14 -0
  39. package/dist/esm/development/QueryController-Ch_ncxiI.js.map +1 -0
  40. package/dist/esm/development/index.js +29 -100
  41. package/dist/esm/development/index.js.map +1 -1
  42. package/dist/esm/development/mutation-UZshUQAf.js +58 -0
  43. package/dist/esm/development/mutation-UZshUQAf.js.map +1 -0
  44. package/dist/esm/development/react/index.js +1 -1
  45. package/dist/esm/development/rest/index.js +142 -0
  46. package/dist/esm/development/rest/index.js.map +1 -0
  47. package/dist/esm/development/{shared-Dq2yW78d.js → shared-DcuVH8Pf.js} +5 -5
  48. package/dist/esm/development/{shared-Dq2yW78d.js.map → shared-DcuVH8Pf.js.map} +1 -1
  49. package/dist/esm/development/stores/async.js +6 -6
  50. package/dist/esm/development/stores/sync.js +5 -5
  51. package/dist/esm/development/topic/index.js +86 -0
  52. package/dist/esm/development/topic/index.js.map +1 -0
  53. package/dist/esm/index.d.ts +5 -4
  54. package/dist/esm/index.d.ts.map +1 -1
  55. package/dist/esm/mutation.d.ts +6 -19
  56. package/dist/esm/mutation.d.ts.map +1 -1
  57. package/dist/esm/production/{QueryClient-BP0Z1rQV.js → QueryClient-YqnBxFy1.js} +972 -968
  58. package/dist/esm/production/QueryClient-YqnBxFy1.js.map +1 -0
  59. package/dist/esm/production/QueryController-Ch_ncxiI.js +14 -0
  60. package/dist/esm/production/QueryController-Ch_ncxiI.js.map +1 -0
  61. package/dist/esm/production/index.js +29 -100
  62. package/dist/esm/production/index.js.map +1 -1
  63. package/dist/esm/production/mutation-pgFl1uIY.js +58 -0
  64. package/dist/esm/production/mutation-pgFl1uIY.js.map +1 -0
  65. package/dist/esm/production/react/index.js +1 -1
  66. package/dist/esm/production/rest/index.js +142 -0
  67. package/dist/esm/production/rest/index.js.map +1 -0
  68. package/dist/esm/production/{shared-Dq2yW78d.js → shared-DcuVH8Pf.js} +5 -5
  69. package/dist/esm/production/{shared-Dq2yW78d.js.map → shared-DcuVH8Pf.js.map} +1 -1
  70. package/dist/esm/production/stores/async.js +6 -6
  71. package/dist/esm/production/stores/sync.js +5 -5
  72. package/dist/esm/production/topic/index.js +86 -0
  73. package/dist/esm/production/topic/index.js.map +1 -0
  74. package/dist/esm/query-types.d.ts +2 -4
  75. package/dist/esm/query-types.d.ts.map +1 -1
  76. package/dist/esm/query.d.ts +17 -39
  77. package/dist/esm/query.d.ts.map +1 -1
  78. package/dist/esm/rest/RESTMutation.d.ts +18 -0
  79. package/dist/esm/rest/RESTMutation.d.ts.map +1 -0
  80. package/dist/esm/rest/RESTQuery.d.ts +24 -0
  81. package/dist/esm/rest/RESTQuery.d.ts.map +1 -0
  82. package/dist/esm/rest/RESTQueryController.d.ts +34 -0
  83. package/dist/esm/rest/RESTQueryController.d.ts.map +1 -0
  84. package/dist/esm/rest/index.d.ts +5 -0
  85. package/dist/esm/rest/index.d.ts.map +1 -0
  86. package/dist/esm/stores/shared.d.ts.map +1 -1
  87. package/dist/esm/testing/MockClient.d.ts +64 -0
  88. package/dist/esm/testing/MockClient.d.ts.map +1 -0
  89. package/dist/esm/testing/auto-generate.d.ts +20 -0
  90. package/dist/esm/testing/auto-generate.d.ts.map +1 -0
  91. package/dist/esm/testing/entity-factory.d.ts +13 -0
  92. package/dist/esm/testing/entity-factory.d.ts.map +1 -0
  93. package/dist/esm/testing/index.d.ts +6 -0
  94. package/dist/esm/testing/index.d.ts.map +1 -0
  95. package/dist/esm/testing/types.d.ts +37 -0
  96. package/dist/esm/testing/types.d.ts.map +1 -0
  97. package/dist/esm/topic/TopicQuery.d.ts +10 -0
  98. package/dist/esm/topic/TopicQuery.d.ts.map +1 -0
  99. package/dist/esm/topic/TopicQueryController.d.ts +43 -0
  100. package/dist/esm/topic/TopicQueryController.d.ts.map +1 -0
  101. package/dist/esm/topic/index.d.ts +3 -0
  102. package/dist/esm/topic/index.d.ts.map +1 -0
  103. package/dist/esm/typeDefs.d.ts +1 -1
  104. package/dist/esm/types.d.ts +9 -4
  105. package/dist/esm/types.d.ts.map +1 -1
  106. package/package.json +51 -4
  107. package/plugin/.claude-plugin/plugin.json +10 -0
  108. package/plugin/agents/fetchium.md +168 -0
  109. package/plugin/docs/api/fetchium-react.md +135 -0
  110. package/plugin/docs/api/fetchium.md +674 -0
  111. package/plugin/docs/api/stores-async.md +219 -0
  112. package/plugin/docs/api/stores-sync.md +133 -0
  113. package/plugin/docs/core/entities.md +351 -0
  114. package/plugin/docs/core/queries.md +600 -0
  115. package/plugin/docs/core/streaming.md +550 -0
  116. package/plugin/docs/core/types.md +374 -0
  117. package/plugin/docs/data/caching.md +298 -0
  118. package/plugin/docs/data/live-data.md +435 -0
  119. package/plugin/docs/data/mutations.md +465 -0
  120. package/plugin/docs/guides/auth.md +318 -0
  121. package/plugin/docs/guides/error-handling.md +351 -0
  122. package/plugin/docs/guides/offline.md +270 -0
  123. package/plugin/docs/guides/testing.md +301 -0
  124. package/plugin/docs/quickstart.md +170 -0
  125. package/plugin/docs/reference/pagination.md +519 -0
  126. package/plugin/docs/reference/rest-queries.md +107 -0
  127. package/plugin/docs/reference/why-signalium.md +364 -0
  128. package/plugin/docs/setup/project-setup.md +319 -0
  129. package/plugin/install.mjs +88 -0
  130. package/plugin/skills/design/SKILL.md +140 -0
  131. package/plugin/skills/teach/SKILL.md +105 -0
  132. package/dist/cjs/development/QueryClient-CpmwggOn.js +0 -2
  133. package/dist/cjs/development/QueryClient-CpmwggOn.js.map +0 -1
  134. package/dist/cjs/production/QueryClient-qi3bR0eD.js +0 -2
  135. package/dist/cjs/production/QueryClient-qi3bR0eD.js.map +0 -1
  136. package/dist/esm/development/QueryClient-DRZtPKFD.js +0 -2568
  137. package/dist/esm/development/QueryClient-DRZtPKFD.js.map +0 -1
  138. package/dist/esm/production/QueryClient-BP0Z1rQV.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "fetchium",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
7
- "url": "git+https://github.com/Signalium/signalium.git"
7
+ "url": "git+https://github.com/Signalium/fetchium.git"
8
8
  },
9
- "description": "Chain-reactivity at critical mass",
9
+ "description": "Reactive data fetching built on Signalium",
10
10
  "main": "./dist/cjs/production/index.js",
11
11
  "module": "./dist/esm/production/index.js",
12
12
  "types": "./dist/esm/index.d.ts",
@@ -81,17 +81,63 @@
81
81
  "require": "./dist/cjs/production/subscriptions/polling.js",
82
82
  "default": "./dist/esm/production/subscriptions/polling.js"
83
83
  },
84
+ "./rest": {
85
+ "types": "./dist/esm/rest/index.d.ts",
86
+ "development": {
87
+ "import": "./dist/esm/development/rest/index.js",
88
+ "require": "./dist/cjs/development/rest/index.js"
89
+ },
90
+ "production": {
91
+ "import": "./dist/esm/production/rest/index.js",
92
+ "require": "./dist/cjs/production/rest/index.js"
93
+ },
94
+ "import": "./dist/esm/production/rest/index.js",
95
+ "require": "./dist/cjs/production/rest/index.js",
96
+ "default": "./dist/esm/production/rest/index.js"
97
+ },
98
+ "./topic": {
99
+ "types": "./dist/esm/topic/index.d.ts",
100
+ "development": {
101
+ "import": "./dist/esm/development/topic/index.js",
102
+ "require": "./dist/cjs/development/topic/index.js"
103
+ },
104
+ "production": {
105
+ "import": "./dist/esm/production/topic/index.js",
106
+ "require": "./dist/cjs/production/topic/index.js"
107
+ },
108
+ "import": "./dist/esm/production/topic/index.js",
109
+ "require": "./dist/cjs/production/topic/index.js",
110
+ "default": "./dist/esm/production/topic/index.js"
111
+ },
112
+ "./testing": {
113
+ "types": "./dist/esm/testing/index.d.ts",
114
+ "development": {
115
+ "import": "./dist/esm/development/testing/index.js",
116
+ "require": "./dist/cjs/development/testing/index.js"
117
+ },
118
+ "production": {
119
+ "import": "./dist/esm/production/testing/index.js",
120
+ "require": "./dist/cjs/production/testing/index.js"
121
+ },
122
+ "import": "./dist/esm/production/testing/index.js",
123
+ "require": "./dist/cjs/production/testing/index.js",
124
+ "default": "./dist/esm/production/testing/index.js"
125
+ },
84
126
  "./package.json": "./package.json"
85
127
  },
86
128
  "files": [
87
129
  "dist/esm/**",
88
130
  "dist/cjs/**",
89
131
  "stores/**",
132
+ "plugin/**",
90
133
  "index.d.ts",
91
134
  "README.md",
92
135
  "CHANGELOG.md",
93
136
  "LICENSE*"
94
137
  ],
138
+ "bin": {
139
+ "fetchium-agents": "./plugin/install.mjs"
140
+ },
95
141
  "peerDependencies": {
96
142
  "react": ">=18.3.1",
97
143
  "signalium": ">=2.1.7"
@@ -111,7 +157,8 @@
111
157
  "test:transform": "vitest run --project transform",
112
158
  "test:react": "vitest run --project react",
113
159
  "check-types": "tsc --noEmit",
114
- "build": "npm run build:clean && npm run build:types && npm run build:dev && npm run build:prod && node scripts/generate-legacy-entries.cjs",
160
+ "copy-docs": "node scripts/copy-docs.mjs",
161
+ "build": "npm run copy-docs && npm run build:clean && npm run build:types && npm run build:dev && npm run build:prod && node scripts/generate-legacy-entries.cjs",
115
162
  "build:clean": "rm -rf dist",
116
163
  "build:types": "tsc --emitDeclarationOnly --outDir dist/esm --project tsconfig.esm.json",
117
164
  "build:dev": "BUILD_MODE=development vite build",
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "fetchium",
3
+ "description": "Fetchium conventions, design skills, and teaching mode for reactive data fetching",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Signalium"
7
+ },
8
+ "repository": "https://github.com/Signalium/fetchium",
9
+ "keywords": ["fetchium", "data-fetching", "signalium", "react"]
10
+ }
@@ -0,0 +1,168 @@
1
+ ---
2
+ name: fetchium
3
+ description: Fetchium conventions and mental model for reactive data fetching with normalized entities. Use when working in a codebase that uses the fetchium package.
4
+ ---
5
+
6
+ # Fetchium
7
+
8
+ Fetchium is a reactive data-fetching and entity management library built on Signalium. It uses a standard Query-Mutation split-paradigm, normalized entity caching with identity-stable proxies, and a type DSL for end-to-end typed API shapes.
9
+
10
+ For detailed documentation on any topic below, read the corresponding file in `node_modules/fetchium/plugin/docs/` (e.g., `node_modules/fetchium/plugin/docs/core/queries.md`).
11
+
12
+ ## Mode Detection
13
+
14
+ Fetchium supports two React integration modes. **Auto-detect** the mode by checking the codebase for imports:
15
+
16
+ - If the project imports from `signalium` or `signalium/react` (e.g., `reactive`, `component`, `signal`), use **React + Signalium** patterns.
17
+ - Otherwise, default to **React + Hooks** patterns.
18
+
19
+ The user can also override explicitly (e.g., "use hooks mode" or "use signalium mode"). When in doubt, ask.
20
+
21
+ ## Mental Model
22
+
23
+ - **Queries** are parameterized requests to _read_ data. They are reactive — they fire automatically when params change, handle caching, deduplication, and refetching.
24
+ - **Mutations** are parameterized requests to _change_ data. They are imperative — you call `.run()` explicitly. They declare side effects (creates/updates/deletes) that propagate through the entity store.
25
+ - **Entities** are normalized, deduplicated data objects shared across all queries. Each unique `(typename, id)` maps to one identity-stable proxy. Updates to an entity from any source are immediately visible everywhere.
26
+
27
+ ## Import Paths
28
+
29
+ | Path | Exports |
30
+ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
31
+ | `fetchium` | `Query`, `RESTQuery`, `fetchQuery`, `Mutation`, `RESTMutation`, `getMutation`, `Entity`, `t`, `QueryClient`, `QueryClientContext`, `registerFormat`, `draft`, `NetworkManager` |
32
+ | `fetchium/react` | `useQuery` |
33
+ | `fetchium/stores/sync` | `SyncQueryStore` |
34
+ | `fetchium/stores/async` | `AsyncQueryStore` |
35
+
36
+ ## Type DSL (`t`)
37
+
38
+ Always use `t.*` for defining params, results, and entity fields. Never use raw TypeScript interfaces for API response shapes.
39
+
40
+ | Definition | TS type |
41
+ | ------------------------------------------------------------ | --------------------------------------------------- |
42
+ | `t.string`, `t.number`, `t.boolean`, `t.null`, `t.undefined` | Primitives |
43
+ | `t.object({ ... })` | `{ ... }` |
44
+ | `t.array(type)` | `T[]` |
45
+ | `t.record(type)` | `Record<string, T>` |
46
+ | `t.union(...types)` | Union |
47
+ | `t.optional(type)` | `T \| undefined` |
48
+ | `t.nullable(type)` | `T \| null` |
49
+ | `t.nullish(type)` | `T \| undefined \| null` |
50
+ | `t.const(value)` | Literal type |
51
+ | `t.enum(...values)` | Union of literals |
52
+ | `t.typename(value)` | Discriminator for entity/object unions |
53
+ | `t.id` | `string \| number` (entity identifier) |
54
+ | `t.entity(EntityClass)` | Normalized entity reference |
55
+ | `t.liveArray(EntityClass, { constraints })` | Reactive array that auto-updates from entity events |
56
+ | `t.liveValue(EntityClass, { constraints, ... })` | Reactive derived value from entity events |
57
+ | `t.format(name)` | Formatted value (e.g., `'date'`, `'date-time'`) |
58
+ | `t.result(type)` | Explicit parse result for error handling |
59
+
60
+ ### Type DSL Rules
61
+
62
+ - **Discriminated unions required.** Multi-object unions must have a shared `t.typename(...)` field with unique values per variant.
63
+ - **One collection per union.** Unions may contain at most one array type and one record type.
64
+ - **Resilience defaults.** Optional fields fall back to `undefined` on parse failure. Arrays silently filter unparseable items by default.
65
+
66
+ ## Entity Conventions
67
+
68
+ ```ts
69
+ class User extends Entity {
70
+ __typename = t.typename('User'); // Required: unique type discriminator
71
+ id = t.id; // Required: unique identifier
72
+
73
+ name = t.string;
74
+ email = t.string;
75
+ }
76
+ ```
77
+
78
+ - Entities are **read-only**. Setting a property throws in development mode.
79
+ - Entity proxies are **identity-stable**: same `(typename, id)` always returns the same proxy object (`===`).
80
+ - Define computed values as getters or methods — methods are auto-memoized via `reactiveMethod`.
81
+ - Use `static cache = { gcTime: N }` to control how long unused entities stay in cache (minutes).
82
+ - For real-time updates, define `__subscribe(onEvent)` to establish WebSocket/SSE connections.
83
+
84
+ ## Query, Entity, and Mutation Class Rules
85
+
86
+ Query, Entity, and Mutation classes are **templates**, not normal classes. Field values are **references** captured at definition time.
87
+
88
+ ```ts
89
+ class GetUser extends RESTQuery {
90
+ params = { id: t.number };
91
+ path = `/users/${this.params.id}`; // ✅ String interpolation is ok
92
+ searchParams = { expand: this.params.expand }; // ✅ Direct reference is ok
93
+ result = { name: t.string };
94
+ }
95
+ ```
96
+
97
+ **Critical rules:**
98
+
99
+ - Use `get*()` methods (`getPath()`, `getHeaders()`, `getBody()`, `getSearchParams()`, `getConfig()`, `getRequestOptions()`) when you need **dynamic logic** (conditionals, computed values). Fields only support direct references and string interpolation.
100
+ - **No arrow functions** for override methods. Arrow functions capture the wrong `this` (the template, not the resolved instance).
101
+ - Custom protocols: extend `Query` directly, implement `send()` and `getIdentityKey()`.
102
+
103
+ ## Mutation Conventions
104
+
105
+ ```ts
106
+ class UpdateUser extends RESTMutation {
107
+ params = { id: t.id, name: t.string };
108
+ path = `/users/${this.params.id}`;
109
+ method = 'PUT';
110
+ body = { name: this.params.name };
111
+ result = User;
112
+
113
+ effects = {
114
+ updates: [[User, { id: this.params.id, name: this.params.name }]],
115
+ };
116
+ }
117
+ ```
118
+
119
+ - **Prefer entity effects** (`creates`, `updates`, `deletes`) over `invalidates`. Entity effects are precise and work with optimistic updates and live data.
120
+ - Use `getEffects()` when effects depend on the **server response** (e.g., server-assigned IDs on create).
121
+ - Use `invalidates: [QueryClass]` only as an escape hatch for complex server-side logic.
122
+ - `optimisticUpdates = true` for simple, predictable changes (toggling booleans, updating text). Effects apply immediately and roll back on failure.
123
+ - Default HTTP method for `RESTMutation` is `POST`.
124
+
125
+ ## React + Hooks Usage
126
+
127
+ ```tsx
128
+ import { useQuery } from 'fetchium/react';
129
+
130
+ function UserProfile() {
131
+ const result = useQuery(GetUser, { id: 42 });
132
+
133
+ if (result.isRejected) return <div>Error: {result.error.message}</div>;
134
+ if (!result.isReady) return <div>Loading...</div>;
135
+
136
+ return <h1>{result.value.name}</h1>;
137
+ }
138
+ ```
139
+
140
+ `useQuery` returns `ReactivePromise<QueryResult>` with: `value`, `isReady`, `isPending`, `isResolved`, `isRejected`, `error`. Pass `{ suspended: true/false }` to control whether the query is active.
141
+
142
+ ## React + Signalium Usage
143
+
144
+ ```tsx
145
+ import { fetchQuery } from 'fetchium';
146
+ import { reactive } from 'signalium';
147
+ import { component } from 'signalium/react';
148
+
149
+ const fetchUserProfile = reactive(async () => {
150
+ const user = await fetchQuery(GetCurrentUser);
151
+ return fetchQuery(GetUserProfile, { user });
152
+ });
153
+
154
+ const UserProfile = component(() => {
155
+ const result = fetchUserProfile();
156
+
157
+ if (result.isRejected) return <div>Error: {result.error.message}</div>;
158
+ if (!result.isReady) return <div>Loading...</div>;
159
+
160
+ return <h1>{result.value.name}</h1>;
161
+ });
162
+ ```
163
+
164
+ Use `reactive(async () => {...})` for composing sequential queries. Use `component()` to wrap React components for Signalium reactivity.
165
+
166
+ ## Testing
167
+
168
+ Use `createMockFetch()` from test utilities with `SyncQueryStore` and `MemoryPersistentStore` for unit tests. React tests use `vitest-browser-react` with `ContextProvider` wrapping `QueryClientContext`.
@@ -0,0 +1,135 @@
1
+ ---
2
+ title: fetchium/react
3
+ description: API reference for the fetchium React integration.
4
+ ---
5
+
6
+ # fetchium/react
7
+
8
+ React hooks for using Fetchium queries in React components. Built on top of Signalium's `useReactive` hook.
9
+
10
+ ```ts
11
+ import { useQuery } from 'fetchium/react';
12
+ ```
13
+
14
+ ---
15
+
16
+ ## Hooks
17
+
18
+ ### `useQuery`
19
+
20
+ ```ts
21
+ function useQuery<T extends Query>(
22
+ QueryClass: new () => T,
23
+ params?: ExtractQueryParams<T>,
24
+ ): QueryPromise<T>;
25
+ ```
26
+
27
+ React hook for fetching a query. Subscribes the component to the query's reactive state, re-rendering when the query result changes. Internally uses Signalium's `useReactive` to bridge the reactive signal system with React's rendering cycle.
28
+
29
+ #### Parameters
30
+
31
+ | Parameter | Type | Description |
32
+ | ------------ | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
33
+ | `QueryClass` | `new () => T` | The query class to instantiate and execute. Must extend `Query` or `RESTQuery`. |
34
+ | `params` | `ExtractQueryParams<T>` | Parameters matching the query's `params` shape. Optional if the query has no required params. Values can be Signalium `Signal`s for reactive parameter changes. |
35
+
36
+ #### Returns
37
+
38
+ `QueryPromise<T>` — a `DiscriminatedReactivePromise` that provides the query state.
39
+
40
+ The returned promise object has the following properties:
41
+
42
+ | Property | Type | Description |
43
+ | ------------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
44
+ | `value` | `QueryResult<T>` | The resolved query result. Reading this while pending triggers React Suspense. Returns a deep clone to avoid accidental mutation of cached entities. |
45
+ | `isReady` | `boolean` | `true` once the query has loaded a value at least once. Use for type narrowing on `value`. |
46
+ | `isPending` | `boolean` | `true` while the query is loading. Also true during refetches, even if a value already exists. |
47
+ | `isResolved` | `boolean` | `true` when the most recent execution resolved successfully. |
48
+ | `isRejected` | `boolean` | `true` when the most recent execution failed. |
49
+ | `error` | `unknown` | The error if `isRejected` is `true`. |
50
+
51
+ The resolved `QueryResult<T>` includes pagination helpers:
52
+
53
+ | Property | Type | Description |
54
+ | ------------------ | ------------------------------- | ------------------------------------------------------ |
55
+ | `__refetch()` | `() => QueryPromise<T>` | Triggers a refetch and returns a new promise. |
56
+ | `__fetchNext()` | `() => Promise<QueryResult<T>>` | Fetches the next page (if configured via `fetchNext`). |
57
+ | `__hasNext` | `boolean` | Whether there is a next page available. |
58
+ | `__isFetchingNext` | `boolean` | Whether a next-page request is currently in flight. |
59
+
60
+ #### Requirements
61
+
62
+ - A `QueryClient` must be provided via `QueryClientContext` using Signalium's `ContextProvider`.
63
+ - The component must be wrapped in a Signalium `component()` or use `useReactive` for the reactive system to function.
64
+
65
+ #### Example
66
+
67
+ ```tsx
68
+ import { component } from 'signalium/react';
69
+ import { useQuery } from 'fetchium/react';
70
+
71
+ class GetUsers extends RESTQuery {
72
+ path = '/api/users';
73
+
74
+ result = {
75
+ users: t.array(t.entity(User)),
76
+ total: t.number,
77
+ };
78
+ }
79
+
80
+ const UserList = component(() => {
81
+ const query = useQuery(GetUsers);
82
+
83
+ if (query.isPending) {
84
+ return <div>Loading...</div>;
85
+ }
86
+
87
+ if (query.isRejected) {
88
+ return <div>Error: {String(query.error)}</div>;
89
+ }
90
+
91
+ const { users, total } = query.value;
92
+
93
+ return (
94
+ <div>
95
+ <h2>Users ({total})</h2>
96
+ <ul>
97
+ {users.map((user) => (
98
+ <li key={user.id}>{user.name}</li>
99
+ ))}
100
+ </ul>
101
+ </div>
102
+ );
103
+ });
104
+ ```
105
+
106
+ #### With parameters
107
+
108
+ ```tsx
109
+ const UserProfile = component(({ userId }: { userId: string }) => {
110
+ const query = useQuery(GetUser, { id: userId });
111
+
112
+ return <div>{query.value.name}</div>;
113
+ });
114
+ ```
115
+
116
+ #### With reactive parameters
117
+
118
+ ```tsx
119
+ import { signal } from 'signalium';
120
+
121
+ const searchTerm = signal('');
122
+
123
+ const SearchResults = component(() => {
124
+ const query = useQuery(SearchUsers, { q: searchTerm });
125
+
126
+ // Component re-renders when searchTerm changes and the query refetches
127
+ return <div>{query.value.results.length} results</div>;
128
+ });
129
+ ```
130
+
131
+ #### Notes
132
+
133
+ - `useQuery` calls `useReactive` twice internally: once for the query itself and once to subscribe to the resolved value for deep entity tracking via Signalium's `CONSUME_DEEP` protocol.
134
+ - The `value` property returns a **deep clone** of the query result to prevent accidental mutation of the entity cache. Use `draft()` from `fetchium` if you need a mutable copy for mutations.
135
+ - When used with React Suspense, reading `.value` on a pending query will suspend the component.