@farm.js/contentful 0.1.0-beta.104 → 0.1.0-beta.106
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/dist/content.d.ts.map +1 -1
- package/dist/content.js +19 -3
- package/package.json +3 -3
package/dist/content.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAapE,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,kFAAkF;IAClF,MAAM,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACxC,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,MAAM,CAAC;IACjF,6EAA6E;IAC7E,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IAC/D,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAapE,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,kFAAkF;IAClF,MAAM,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACxC,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,MAAM,CAAC;IACjF,6EAA6E;IAC7E,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IAC/D,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,mBAAmB,CAwGtF"}
|
package/dist/content.js
CHANGED
|
@@ -43,22 +43,38 @@ export function contentfulSource(options) {
|
|
|
43
43
|
...(options.refreshInterval !== undefined ? { refreshInterval: options.refreshInterval } : {}),
|
|
44
44
|
async fetch() {
|
|
45
45
|
const resolved = resolveClient();
|
|
46
|
-
const
|
|
46
|
+
const requestedLimit = options.query?.limit;
|
|
47
|
+
const maximumEntries = typeof requestedLimit === "number" && Number.isFinite(requestedLimit)
|
|
48
|
+
? Math.max(Math.floor(requestedLimit), 0)
|
|
49
|
+
: Infinity;
|
|
50
|
+
if (maximumEntries === 0)
|
|
51
|
+
return [];
|
|
52
|
+
const pageSize = Math.min(maximumEntries === Infinity ? PAGE_SIZE : maximumEntries, PAGE_SIZE);
|
|
47
53
|
const entries = [];
|
|
48
|
-
// getEntries pages at most 1000 entries
|
|
54
|
+
// getEntries pages at most 1000 entries per call. `limit` caps the
|
|
55
|
+
// TOTAL entries loaded - Contentful's own semantics for one call - and
|
|
56
|
+
// the loop is bounded by `total` and by page progress, so a
|
|
57
|
+
// misbehaving provider that repeats a page cannot spin config loading
|
|
58
|
+
// forever.
|
|
49
59
|
for (let skip = 0;; skip += pageSize) {
|
|
50
60
|
const page = (await resolved.getEntries({
|
|
51
61
|
...options.query,
|
|
52
62
|
content_type: options.contentType,
|
|
53
|
-
limit: pageSize,
|
|
63
|
+
limit: Math.min(pageSize, maximumEntries === Infinity ? pageSize : maximumEntries - entries.length),
|
|
54
64
|
skip,
|
|
55
65
|
}));
|
|
56
66
|
if (!page || !Array.isArray(page.items)) {
|
|
57
67
|
throw new Error(`contentfulSource(${JSON.stringify(name)}) received a response without items`);
|
|
58
68
|
}
|
|
59
69
|
entries.push(...page.items);
|
|
70
|
+
if (entries.length >= maximumEntries) {
|
|
71
|
+
entries.length = Math.min(entries.length, maximumEntries);
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
60
74
|
if (entries.length >= page.total || page.items.length === 0)
|
|
61
75
|
break;
|
|
76
|
+
if (skip + pageSize >= page.total)
|
|
77
|
+
break;
|
|
62
78
|
}
|
|
63
79
|
return entries.map((entry, index) => {
|
|
64
80
|
if (!entry?.sys?.id || !entry.fields || typeof entry.fields !== "object") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farm.js/contentful",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.106",
|
|
4
4
|
"description": "Contentful content source for Farm.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
"contentful": "^11.8.6",
|
|
29
29
|
"typescript": "^5.3.3",
|
|
30
30
|
"vitest": "^3.2.7",
|
|
31
|
-
"@farm.js/content": "0.1.0-beta.
|
|
31
|
+
"@farm.js/content": "0.1.0-beta.1"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"contentful": "^10.0.0 || ^11.0.0",
|
|
35
|
-
"@farm.js/content": "^0.1.0-beta.
|
|
35
|
+
"@farm.js/content": "^0.1.0-beta.1"
|
|
36
36
|
},
|
|
37
37
|
"peerDependenciesMeta": {
|
|
38
38
|
"@farm.js/content": {
|