@luvio/compiler 0.138.4 → 0.138.5

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.
@@ -293,17 +293,29 @@ const OPTIMIZE_PAGINATION = (0, deindent_1.default) `
293
293
  afterArgName: string,
294
294
  variables: any,
295
295
  ): void {
296
- if (typeof metadata === 'object' && metadata !== null && offsetFromToken(metadata, variables[afterArgName]) >= 0) {
296
+ if (typeof metadata === 'object' && metadata !== null) {
297
+ const requestedAfterCursor = variables[afterArgName];
298
+ const afterCursorOffset = offsetFromToken(metadata, requestedAfterCursor);
297
299
  // optimize only if after cursor is unspecified in the request or it's already loaded in metadata
298
- const length = Object.keys(metadata).length;
299
- const lastTokenAndOffset = tokenForAtMost(metadata, length);
300
- if (lastTokenAndOffset !== undefined) {
301
- const [token, offset] = lastTokenAndOffset;
302
- variables[firstArgName + '${constants_2.PAGINATION_OPTIMIZATION_ORIGINAL_VARIABLE_SUFFIX}'] = variables[firstArgName];
303
- variables[afterArgName + '${constants_2.PAGINATION_OPTIMIZATION_ORIGINAL_VARIABLE_SUFFIX}'] = variables[afterArgName];
304
- variables[firstArgName] -= variables[afterArgName] === null ? (offset + 1) : (offset - 1);
305
- variables[afterArgName] = token;
306
- }
300
+ if(afterCursorOffset >= 0) {
301
+ const requestedItems = variables[firstArgName];
302
+ const atMostOffset = afterCursorOffset + requestedItems; // The largest offset we care about for this page.
303
+ const lastTokenAndOffset = tokenForAtMost(metadata, atMostOffset);
304
+ if (lastTokenAndOffset !== undefined) {
305
+ const [token, offset] = lastTokenAndOffset;
306
+ const isSubpage = atMostOffset === offset; // We already have all the cursors we seem to need
307
+ const isExactPagination = atMostOffset === offset + requestedItems; // Using the last cursor we have to paginate
308
+
309
+ if(!(isSubpage || isExactPagination)) { // If we're asking for more than we have, only request what we're missing.
310
+ const existingItems = afterCursorOffset === 0 ? offset + 1: offset - afterCursorOffset;
311
+ const itemsToRequest = requestedItems - existingItems;
312
+ variables[firstArgName + '${constants_2.PAGINATION_OPTIMIZATION_ORIGINAL_VARIABLE_SUFFIX}'] = requestedItems;
313
+ variables[firstArgName] = itemsToRequest;
314
+ variables[afterArgName + '${constants_2.PAGINATION_OPTIMIZATION_ORIGINAL_VARIABLE_SUFFIX}'] = requestedAfterCursor;
315
+ variables[afterArgName] = token;
316
+ }
317
+ }
318
+ }
307
319
  }
308
320
  }
309
321
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-based.js","sourceRoot":"","sources":["../../../src/codegen/pagination-utils/cursor-based.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursor-based.js","sourceRoot":"","sources":["../../../src/codegen/pagination-utils/cursor-based.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luvio/compiler",
3
- "version": "0.138.4",
3
+ "version": "0.138.5",
4
4
  "description": "Luvio Compiler",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,12 +23,12 @@
23
23
  "test:debug": "node --inspect-brk ../../../node_modules/jest/bin/jest.js --config ./jest.config.js --runInBand"
24
24
  },
25
25
  "dependencies": {
26
- "@luvio/graphql-parser": "^0.138.4",
26
+ "@luvio/graphql-parser": "^0.138.5",
27
27
  "amf-client-js": "4.2.0"
28
28
  },
29
29
  "devDependencies": {
30
- "@luvio/adapter-test-library": "^0.138.4",
31
- "@luvio/engine": "^0.138.4"
30
+ "@luvio/adapter-test-library": "^0.138.5",
31
+ "@luvio/engine": "^0.138.5"
32
32
  },
33
33
  "volta": {
34
34
  "extends": "../../../package.json"