@quadrokit/client 0.2.9 → 0.2.10
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/generate/codegen.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAsC,WAAW,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/generate/codegen.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAsC,WAAW,EAAE,MAAM,mBAAmB,CAAA;AA0UxF,uIAAuI;AACvI,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAYvE;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBxF"}
|
|
@@ -212,6 +212,12 @@ export interface QuadroClientConfig {
|
|
|
212
212
|
}
|
|
213
213
|
return n;
|
|
214
214
|
},
|
|
215
|
+
return(value) {
|
|
216
|
+
return it.return?.(value) ?? Promise.resolve({ done: true, value });
|
|
217
|
+
},
|
|
218
|
+
throw(e) {
|
|
219
|
+
return it.throw?.(e) ?? Promise.reject(e);
|
|
220
|
+
},
|
|
215
221
|
};
|
|
216
222
|
},
|
|
217
223
|
} as CollectionHandle<S['length'] extends 0 ? ${c.name} : SelectedEntity<${c.name}, S>>;
|
|
@@ -249,6 +255,12 @@ export interface QuadroClientConfig {
|
|
|
249
255
|
}
|
|
250
256
|
return n;
|
|
251
257
|
},
|
|
258
|
+
return(value) {
|
|
259
|
+
return it.return?.(value) ?? Promise.resolve({ done: true, value });
|
|
260
|
+
},
|
|
261
|
+
throw(e) {
|
|
262
|
+
return it.throw?.(e) ?? Promise.reject(e);
|
|
263
|
+
},
|
|
252
264
|
};
|
|
253
265
|
},
|
|
254
266
|
} as CollectionHandle<S['length'] extends 0 ? ${c.name} : SelectedEntity<${c.name}, S>>;
|
|
@@ -14,6 +14,8 @@ export interface CollectionOptions extends ListQueryParams {
|
|
|
14
14
|
page?: number;
|
|
15
15
|
pageSize?: number;
|
|
16
16
|
select?: readonly string[];
|
|
17
|
+
/** Stop iteration after this many rows (avoids walking every page). */
|
|
18
|
+
maxItems?: number;
|
|
17
19
|
}
|
|
18
20
|
export type MapRow<R> = (raw: unknown) => R;
|
|
19
21
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/runtime/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AAGxE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,gEAAgE;IAChE,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/runtime/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AAGxE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,gEAAgE;IAChE,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,CAAA;AAe3C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,GAAG,EAAE,iBAAiB,EACtB,cAAc,EAAE,iBAAiB,EACjC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAChB,gBAAgB,CAAC,CAAC,CAAC,CA0FrB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG;IACnD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA"}
|
|
@@ -37,6 +37,8 @@ export function createCollection(ctx, initialOptions, mapRow) {
|
|
|
37
37
|
async function* iteratePages() {
|
|
38
38
|
let page = initialOptions.page ?? 1;
|
|
39
39
|
const pageSize = initialOptions.pageSize ?? 50;
|
|
40
|
+
const maxItems = initialOptions.maxItems;
|
|
41
|
+
let totalYielded = 0;
|
|
40
42
|
while (true) {
|
|
41
43
|
const rows = await fetchPage(page);
|
|
42
44
|
if (!rows.length) {
|
|
@@ -49,6 +51,10 @@ export function createCollection(ctx, initialOptions, mapRow) {
|
|
|
49
51
|
seenIds.add(pk);
|
|
50
52
|
}
|
|
51
53
|
yield mapped;
|
|
54
|
+
totalYielded += 1;
|
|
55
|
+
if (maxItems !== undefined && totalYielded >= maxItems) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
52
58
|
}
|
|
53
59
|
if (rows.length < pageSize) {
|
|
54
60
|
break;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quadrokit/client",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.10",
|
|
4
4
|
"description": "Typed 4D REST client and catalog code generator for QuadroKit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"generate:fixture": "bun run src/cli.ts generate --url file://../../assets/catalog.json --out ../../.quadrokit/generated-demo"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@quadrokit/shared": "^0.2.
|
|
32
|
+
"@quadrokit/shared": "^0.2.10",
|
|
33
33
|
"undici": "^6.21.0"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|