fetchium 0.1.0 → 0.2.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.
- package/CHANGELOG.md +12 -5
- package/README.md +1 -1
- package/dist/cjs/development/QueryAdapter-DUo338ga.js +2 -0
- package/dist/cjs/development/QueryAdapter-DUo338ga.js.map +1 -0
- package/dist/cjs/development/QueryClient-m7BzCIe9.js +2 -0
- package/dist/cjs/development/QueryClient-m7BzCIe9.js.map +1 -0
- package/dist/cjs/development/index.js +1 -1
- package/dist/cjs/development/index.js.map +1 -1
- package/dist/cjs/development/mutation-wUhcGxKl.js +2 -0
- package/dist/cjs/development/mutation-wUhcGxKl.js.map +1 -0
- package/dist/cjs/development/react/index.js +1 -1
- package/dist/cjs/development/rest/index.js +2 -0
- package/dist/cjs/development/rest/index.js.map +1 -0
- package/dist/cjs/development/topic/index.js +2 -0
- package/dist/cjs/development/topic/index.js.map +1 -0
- package/dist/cjs/production/QueryAdapter-DUo338ga.js +2 -0
- package/dist/cjs/production/QueryAdapter-DUo338ga.js.map +1 -0
- package/dist/cjs/production/QueryClient-4T90peFN.js +2 -0
- package/dist/cjs/production/QueryClient-4T90peFN.js.map +1 -0
- package/dist/cjs/production/index.js +1 -1
- package/dist/cjs/production/index.js.map +1 -1
- package/dist/cjs/production/mutation-Dk0gznwX.js +2 -0
- package/dist/cjs/production/mutation-Dk0gznwX.js.map +1 -0
- package/dist/cjs/production/react/index.js +1 -1
- package/dist/cjs/production/rest/index.js +2 -0
- package/dist/cjs/production/rest/index.js.map +1 -0
- package/dist/cjs/production/topic/index.js +2 -0
- package/dist/cjs/production/topic/index.js.map +1 -0
- package/dist/esm/MutationResult.d.ts +0 -1
- package/dist/esm/MutationResult.d.ts.map +1 -1
- package/dist/esm/QueryAdapter.d.ts +49 -0
- package/dist/esm/QueryAdapter.d.ts.map +1 -0
- package/dist/esm/QueryClient.d.ts +26 -4
- package/dist/esm/QueryClient.d.ts.map +1 -1
- package/dist/esm/QueryResult.d.ts +11 -11
- package/dist/esm/QueryResult.d.ts.map +1 -1
- package/dist/esm/development/QueryAdapter-Bu5UJjE4.js +14 -0
- package/dist/esm/development/QueryAdapter-Bu5UJjE4.js.map +1 -0
- package/dist/esm/development/QueryClient-BajBmpnA.js +2572 -0
- package/dist/esm/development/QueryClient-BajBmpnA.js.map +1 -0
- package/dist/esm/development/index.js +29 -100
- package/dist/esm/development/index.js.map +1 -1
- package/dist/esm/development/mutation-DAOZE4Ok.js +58 -0
- package/dist/esm/development/mutation-DAOZE4Ok.js.map +1 -0
- package/dist/esm/development/react/index.js +1 -1
- package/dist/esm/development/rest/index.js +142 -0
- package/dist/esm/development/rest/index.js.map +1 -0
- package/dist/esm/development/{shared-Dq2yW78d.js → shared-DcuVH8Pf.js} +5 -5
- package/dist/esm/development/{shared-Dq2yW78d.js.map → shared-DcuVH8Pf.js.map} +1 -1
- package/dist/esm/development/stores/async.js +6 -6
- package/dist/esm/development/stores/sync.js +5 -5
- package/dist/esm/development/topic/index.js +86 -0
- package/dist/esm/development/topic/index.js.map +1 -0
- package/dist/esm/index.d.ts +5 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/mutation.d.ts +6 -19
- package/dist/esm/mutation.d.ts.map +1 -1
- package/dist/esm/production/QueryAdapter-Bu5UJjE4.js +14 -0
- package/dist/esm/production/QueryAdapter-Bu5UJjE4.js.map +1 -0
- package/dist/esm/production/{QueryClient-BP0Z1rQV.js → QueryClient-KH0Ex_8m.js} +595 -591
- package/dist/esm/production/QueryClient-KH0Ex_8m.js.map +1 -0
- package/dist/esm/production/index.js +29 -100
- package/dist/esm/production/index.js.map +1 -1
- package/dist/esm/production/mutation-C7BOChR2.js +58 -0
- package/dist/esm/production/mutation-C7BOChR2.js.map +1 -0
- package/dist/esm/production/react/index.js +1 -1
- package/dist/esm/production/rest/index.js +142 -0
- package/dist/esm/production/rest/index.js.map +1 -0
- package/dist/esm/production/{shared-Dq2yW78d.js → shared-DcuVH8Pf.js} +5 -5
- package/dist/esm/production/{shared-Dq2yW78d.js.map → shared-DcuVH8Pf.js.map} +1 -1
- package/dist/esm/production/stores/async.js +6 -6
- package/dist/esm/production/stores/sync.js +5 -5
- package/dist/esm/production/topic/index.js +86 -0
- package/dist/esm/production/topic/index.js.map +1 -0
- package/dist/esm/query-types.d.ts +2 -4
- package/dist/esm/query-types.d.ts.map +1 -1
- package/dist/esm/query.d.ts +17 -39
- package/dist/esm/query.d.ts.map +1 -1
- package/dist/esm/rest/RESTMutation.d.ts +18 -0
- package/dist/esm/rest/RESTMutation.d.ts.map +1 -0
- package/dist/esm/rest/RESTQuery.d.ts +24 -0
- package/dist/esm/rest/RESTQuery.d.ts.map +1 -0
- package/dist/esm/rest/RESTQueryAdapter.d.ts +34 -0
- package/dist/esm/rest/RESTQueryAdapter.d.ts.map +1 -0
- package/dist/esm/rest/index.d.ts +5 -0
- package/dist/esm/rest/index.d.ts.map +1 -0
- package/dist/esm/stores/shared.d.ts.map +1 -1
- package/dist/esm/testing/MockClient.d.ts +64 -0
- package/dist/esm/testing/MockClient.d.ts.map +1 -0
- package/dist/esm/testing/auto-generate.d.ts +20 -0
- package/dist/esm/testing/auto-generate.d.ts.map +1 -0
- package/dist/esm/testing/entity-factory.d.ts +13 -0
- package/dist/esm/testing/entity-factory.d.ts.map +1 -0
- package/dist/esm/testing/index.d.ts +6 -0
- package/dist/esm/testing/index.d.ts.map +1 -0
- package/dist/esm/testing/types.d.ts +37 -0
- package/dist/esm/testing/types.d.ts.map +1 -0
- package/dist/esm/topic/TopicQuery.d.ts +10 -0
- package/dist/esm/topic/TopicQuery.d.ts.map +1 -0
- package/dist/esm/topic/TopicQueryAdapter.d.ts +43 -0
- package/dist/esm/topic/TopicQueryAdapter.d.ts.map +1 -0
- package/dist/esm/topic/index.d.ts +3 -0
- package/dist/esm/topic/index.d.ts.map +1 -0
- package/dist/esm/typeDefs.d.ts +1 -1
- package/dist/esm/types.d.ts +9 -4
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +51 -4
- package/plugin/.claude-plugin/plugin.json +10 -0
- package/plugin/agents/fetchium.md +168 -0
- package/plugin/docs/api/fetchium-react.md +135 -0
- package/plugin/docs/api/fetchium.md +674 -0
- package/plugin/docs/api/stores-async.md +219 -0
- package/plugin/docs/api/stores-sync.md +133 -0
- package/plugin/docs/core/entities.md +351 -0
- package/plugin/docs/core/queries.md +600 -0
- package/plugin/docs/core/streaming.md +550 -0
- package/plugin/docs/core/types.md +374 -0
- package/plugin/docs/data/caching.md +298 -0
- package/plugin/docs/data/live-data.md +435 -0
- package/plugin/docs/data/mutations.md +465 -0
- package/plugin/docs/guides/auth.md +318 -0
- package/plugin/docs/guides/error-handling.md +351 -0
- package/plugin/docs/guides/offline.md +270 -0
- package/plugin/docs/guides/testing.md +301 -0
- package/plugin/docs/quickstart.md +170 -0
- package/plugin/docs/reference/pagination.md +519 -0
- package/plugin/docs/reference/rest-queries.md +107 -0
- package/plugin/docs/reference/why-signalium.md +364 -0
- package/plugin/docs/setup/project-setup.md +319 -0
- package/plugin/install.mjs +88 -0
- package/plugin/skills/design/SKILL.md +140 -0
- package/plugin/skills/teach/SKILL.md +105 -0
- package/dist/cjs/development/QueryClient-CpmwggOn.js +0 -2
- package/dist/cjs/development/QueryClient-CpmwggOn.js.map +0 -1
- package/dist/cjs/production/QueryClient-qi3bR0eD.js +0 -2
- package/dist/cjs/production/QueryClient-qi3bR0eD.js.map +0 -1
- package/dist/esm/development/QueryClient-DRZtPKFD.js +0 -2568
- package/dist/esm/development/QueryClient-DRZtPKFD.js.map +0 -1
- package/dist/esm/production/QueryClient-BP0Z1rQV.js.map +0 -1
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -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.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
|
-
"url": "git+https://github.com/Signalium/
|
|
7
|
+
"url": "git+https://github.com/Signalium/fetchium.git"
|
|
8
8
|
},
|
|
9
|
-
"description": "
|
|
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
|
-
"
|
|
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.
|