File tree 4 files changed +33
-125
lines changed
4 files changed +33
-125
lines changed Original file line number Diff line number Diff line change @@ -5,31 +5,41 @@ import * as torii from "@dojoengine/torii-client";
5
5
export async function getEntities < T extends SchemaType , K extends keyof T > (
6
6
client : torii . ToriiClient ,
7
7
query : { [ P in K ] ?: Partial < T [ P ] > } ,
8
- callback : ( response : {
9
- entities ?: torii . Entities ;
10
- data : torii . Entities ;
11
- error ?: Error ;
12
- } ) => void ,
8
+ callback : ( response : { entities ?: torii . Entities ; error ?: Error } ) => void ,
13
9
limit : number = 100 , // Default limit
14
10
offset : number = 0 // Default offset
15
11
) : Promise < torii . Entities > {
16
12
const clauses = convertQueryToClause ( query ) ;
17
- const toriiQuery : torii . Query = {
18
- limit : limit ,
19
- offset : offset ,
20
- clause : {
21
- Composite : {
22
- operator : "And" ,
23
- clauses : [ clauses ] ,
13
+ let cursor = offset ;
14
+ let continueFetching = true ;
15
+ let allEntities : torii . Entities = { } ;
16
+
17
+ while ( continueFetching ) {
18
+ const toriiQuery : torii . Query = {
19
+ limit : limit ,
20
+ offset : cursor ,
21
+ clause : {
22
+ Composite : {
23
+ operator : "And" ,
24
+ clauses : [ clauses ] ,
25
+ } ,
24
26
} ,
25
- } ,
26
- } ;
27
+ } ;
28
+
29
+ try {
30
+ const entities = await client . getEntities ( toriiQuery ) ;
31
+ Object . assign ( allEntities , entities ) ;
32
+ callback ( { entities } ) ;
27
33
28
- try {
29
- const entities = await client . getEntities ( toriiQuery ) ;
30
- callback ( { data : entities } ) ;
31
- return entities ;
32
- } catch ( error ) {
33
- throw error ;
34
+ if ( Object . keys ( entities ) . length < limit ) {
35
+ continueFetching = false ;
36
+ } else {
37
+ cursor += limit ;
38
+ }
39
+ } catch ( error ) {
40
+ throw error ;
41
+ }
34
42
}
43
+
44
+ return allEntities ;
35
45
}
Original file line number Diff line number Diff line change @@ -5,17 +5,13 @@ import { SchemaType } from "./types";
5
5
export async function subscribeQuery < T extends SchemaType , K extends keyof T > (
6
6
client : torii . ToriiClient ,
7
7
query : { [ P in K ] ?: Partial < T [ P ] > } ,
8
- callback : ( response : {
9
- entities ?: torii . Entities ;
10
- data : torii . Entities ;
11
- error ?: Error ;
12
- } ) => void
8
+ callback : ( response : { entities ?: torii . Entities ; error ?: Error } ) => void
13
9
) : Promise < torii . Subscription > {
14
10
const clauses = convertQueryToClauses ( query ) ;
15
11
return client . onEntityUpdated (
16
12
clauses ,
17
- ( entities : torii . Entities , data : torii . Entities ) => {
18
- callback ( { entities, data } ) ;
13
+ ( entities : string , data : torii . Entities ) => {
14
+ callback ( { [ entities ] : data } ) ;
19
15
}
20
16
) ;
21
17
}
Original file line number Diff line number Diff line change 1
1
export * from "@dojoengine/torii-wasm" ;
2
-
3
- export * from "./utils" ;
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments