@@ -201,36 +201,83 @@ const UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));
201201const UserDetailNormalized = UserDetail .extend ({ schema: User });
202202```
203203
204- ### Index
205-
206- ``` typescript
207- import { Entity } from ' @data-client/normalizr' ;
208- import { Index } from ' @data-client/endpoint' ;
209-
210- class User extends Entity {
211- id = ' ' ;
212- username = ' ' ;\
213-
214- static indexes = [' username' ] as const ;
215- }
216-
217- const bob = useQuery (User , { username: ' bob' });
218-
219- // @ts-expect-error Indexes don't fetch, they just retrieve already existing data
220- const bob = useSuspense (UserIndex , { username: ' bob' });
221- ```
222-
223204## API
224205
225206- Networking definition
226207 - [ Endpoints] ( https://dataclient.io/rest/api/Endpoint )
227208- [ Data model] ( https://dataclient.io/docs/concepts/normalization )
228- - [ Entity] ( https://dataclient.io/rest/api/Entity ) , [ schema.Entity] ( https://dataclient.io/rest/api/schema.Entity ) mixin
229- - [ Object] ( https://dataclient.io/rest/api/Object )
230- - [ Array] ( https://dataclient.io/rest/api/Array )
231- - [ Values] ( https://dataclient.io/rest/api/Values )
232- - [ All] ( https://dataclient.io/rest/api/All )
233- - [ Query] ( https://dataclient.io/rest/api/Query )
234- - [ Collection] ( https://dataclient.io/rest/api/Collection )
235- - [ Union] ( https://dataclient.io/rest/api/Union )
236- - [ Invalidate] ( https://dataclient.io/rest/api/Invalidate )
209+ <table >
210+ <thead >
211+ <tr >
212+ <th >Data Type</th >
213+ <th >Mutable</th >
214+ <th >Schema</th >
215+ <th >Description</th >
216+ <th ><a href =" https://dataclient.io/rest/api/schema#queryable " >Queryable</a ></th >
217+ </tr >
218+ </thead >
219+ <tbody ><tr >
220+ <td rowSpan =" 4 " ><a href =" https://en.wikipedia.org/wiki/Object_(computer_science) " >Object</a ></td >
221+ <td align =" center " >✅</td >
222+ <td ><a href =" https://dataclient.io/rest/api/Entity " >Entity</a >, <a href =" https://dataclient.io/rest/api/schema.Entity " >schema.Entity</a > mixin</td >
223+ <td >single <em >unique</em > object</td >
224+ <td align =" center " >✅</td >
225+ </tr >
226+ <tr >
227+ <td align =" center " >✅</td >
228+ <td ><a href =" https://dataclient.io/rest/api/Union " >Union(Entity)</a ></td >
229+ <td >polymorphic objects (<code >A | B</code >)</td >
230+ <td align =" center " >✅</td >
231+ </tr >
232+ <tr >
233+ <td align =" center " >🛑</td >
234+ <td ><a href =" https://dataclient.io/rest/api/Object " >Object</a ></td >
235+ <td >statically known keys</td >
236+ <td align =" center " >🛑</td >
237+ </tr >
238+ <tr >
239+ <td align =" center " ></td >
240+ <td ><a href =" https://dataclient.io/rest/api/Invalidate " >Invalidate(Entity)</a ></td >
241+ <td ><a href =" https://dataclient.io/docs/concepts/expiry-policy#invalidate-entity " >delete an entity</a ></td >
242+ <td align =" center " >🛑</td >
243+ </tr >
244+ <tr >
245+ <td rowSpan =" 3 " ><a href =" https://en.wikipedia.org/wiki/List_(abstract_data_type) " >List</a ></td >
246+ <td align =" center " >✅</td >
247+ <td ><a href =" https://dataclient.io/rest/api/Collection " >Collection(Array)</a ></td >
248+ <td >growable lists</td >
249+ <td align =" center " >✅</td >
250+ </tr >
251+ <tr >
252+ <td align =" center " >🛑</td >
253+ <td ><a href =" https://dataclient.io/rest/api/Array " >Array</a ></td >
254+ <td >immutable lists</td >
255+ <td align =" center " >🛑</td >
256+ </tr >
257+ <tr >
258+ <td align =" center " >✅</td >
259+ <td ><a href =" https://dataclient.io/rest/api/All " >All</a ></td >
260+ <td >list of all entities of a kind</td >
261+ <td align =" center " >✅</td >
262+ </tr >
263+ <tr >
264+ <td rowSpan =" 2 " ><a href =" https://en.wikipedia.org/wiki/Associative_array " >Map</a ></td >
265+ <td align =" center " >✅</td >
266+ <td ><a href =" https://dataclient.io/rest/api/Collection " >Collection(Values)</a ></td >
267+ <td >growable maps</td >
268+ <td align =" center " >✅</td >
269+ </tr >
270+ <tr >
271+ <td align =" center " >🛑</td >
272+ <td ><a href =" https://dataclient.io/rest/api/Values " >Values</a ></td >
273+ <td >immutable maps</td >
274+ <td align =" center " >🛑</td >
275+ </tr >
276+ <tr >
277+ <td >any</td >
278+ <td align =" center " ></td >
279+ <td ><a href =" https://dataclient.io/rest/api/Query " >Query(Queryable)</a ></td >
280+ <td >memoized custom transforms</td >
281+ <td align =" center " >✅</td >
282+ </tr >
283+ </tbody ></table >
0 commit comments