@graphql-box/connection-resolver 4.1.2 → 4.1.4

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.
Files changed (94) hide show
  1. package/lib/browser/index.js +1 -1
  2. package/lib/browser/index.js.map +1 -1
  3. package/lib/browser/production.analysis.txt +11 -11
  4. package/lib/main/index.js +13 -2
  5. package/lib/main/index.js.map +1 -1
  6. package/lib/main/main/index.js +4 -3
  7. package/lib/main/main/index.js.map +1 -1
  8. package/lib/module/__testUtils__/{generateCursorCache.js → generateCursorCache.mjs} +1 -1
  9. package/lib/module/__testUtils__/{generateCursorCache.js.map → generateCursorCache.mjs.map} +1 -1
  10. package/lib/module/__testUtils__/{generatePageResponse.js → generatePageResponse.mjs} +1 -1
  11. package/lib/module/__testUtils__/{generatePageResponse.js.map → generatePageResponse.mjs.map} +1 -1
  12. package/lib/module/__testUtils__/{generatePages.js → generatePages.mjs} +1 -1
  13. package/lib/module/__testUtils__/{generatePages.js.map → generatePages.mjs.map} +1 -1
  14. package/lib/module/defs/index.mjs +2 -0
  15. package/lib/module/defs/{index.js.map → index.mjs.map} +1 -1
  16. package/lib/module/helpers/{cacheCursors.js → cacheCursors.mjs} +1 -1
  17. package/lib/module/helpers/{cacheCursors.js.map → cacheCursors.mjs.map} +1 -1
  18. package/lib/module/helpers/{extractEdges.js → extractEdges.mjs} +1 -1
  19. package/lib/module/helpers/{extractEdges.js.map → extractEdges.mjs.map} +1 -1
  20. package/lib/module/helpers/{extractNodes.js → extractNodes.mjs} +1 -1
  21. package/lib/module/helpers/{extractNodes.js.map → extractNodes.mjs.map} +1 -1
  22. package/lib/module/helpers/{getCount.js → getCount.mjs} +1 -1
  23. package/lib/module/helpers/{getCount.js.map → getCount.mjs.map} +1 -1
  24. package/lib/module/helpers/{getCurrentPageStartAndEndIndexes.js → getCurrentPageStartAndEndIndexes.mjs} +1 -1
  25. package/lib/module/helpers/{getCurrentPageStartAndEndIndexes.js.map → getCurrentPageStartAndEndIndexes.mjs.map} +1 -1
  26. package/lib/module/helpers/{getCursor.js → getCursor.mjs} +1 -1
  27. package/lib/module/helpers/{getCursor.js.map → getCursor.mjs.map} +1 -1
  28. package/lib/module/helpers/{getDirection.js → getDirection.mjs} +1 -1
  29. package/lib/module/helpers/{getDirection.js.map → getDirection.mjs.map} +1 -1
  30. package/lib/module/helpers/{getInRangeCachedEdges.js → getInRangeCachedEdges.mjs} +1 -1
  31. package/lib/module/helpers/{getInRangeCachedEdges.js.map → getInRangeCachedEdges.mjs.map} +1 -1
  32. package/lib/module/helpers/{getIndexesOnCurrentPage.js → getIndexesOnCurrentPage.mjs} +1 -1
  33. package/lib/module/helpers/{getIndexesOnCurrentPage.js.map → getIndexesOnCurrentPage.mjs.map} +1 -1
  34. package/lib/module/helpers/{getIndexesOnLastPage.js → getIndexesOnLastPage.mjs} +1 -1
  35. package/lib/module/helpers/{getIndexesOnLastPage.js.map → getIndexesOnLastPage.mjs.map} +1 -1
  36. package/lib/module/helpers/{getPageNumbersToRequest.js → getPageNumbersToRequest.mjs} +1 -1
  37. package/lib/module/helpers/{getPageNumbersToRequest.js.map → getPageNumbersToRequest.mjs.map} +1 -1
  38. package/lib/module/helpers/{getPagesMissingFromCache.js → getPagesMissingFromCache.mjs} +1 -1
  39. package/lib/module/helpers/{getPagesMissingFromCache.js.map → getPagesMissingFromCache.mjs.map} +1 -1
  40. package/lib/module/helpers/{getResultsOnLastPage.js → getResultsOnLastPage.mjs} +1 -1
  41. package/lib/module/helpers/{getResultsOnLastPage.js.map → getResultsOnLastPage.mjs.map} +1 -1
  42. package/lib/module/helpers/{getStartAndEndCursors.js → getStartAndEndCursors.mjs} +1 -1
  43. package/lib/module/helpers/{getStartAndEndCursors.js.map → getStartAndEndCursors.mjs.map} +1 -1
  44. package/lib/module/helpers/{getStartAndEndIndexes.js → getStartAndEndIndexes.mjs} +1 -1
  45. package/lib/module/helpers/{getStartAndEndIndexes.js.map → getStartAndEndIndexes.mjs.map} +1 -1
  46. package/lib/module/helpers/{getStartAndEndPageNumbers.js → getStartAndEndPageNumbers.mjs} +1 -1
  47. package/lib/module/helpers/{getStartAndEndPageNumbers.js.map → getStartAndEndPageNumbers.mjs.map} +1 -1
  48. package/lib/module/helpers/{hasPreviousNextPage.js → hasPreviousNextPage.mjs} +1 -1
  49. package/lib/module/helpers/{hasPreviousNextPage.js.map → hasPreviousNextPage.mjs.map} +1 -1
  50. package/lib/module/helpers/{isCursorFirst.js → isCursorFirst.mjs} +1 -1
  51. package/lib/module/helpers/{isCursorFirst.js.map → isCursorFirst.mjs.map} +1 -1
  52. package/lib/module/helpers/{isCursorLast.js → isCursorLast.mjs} +1 -1
  53. package/lib/module/helpers/{isCursorLast.js.map → isCursorLast.mjs.map} +1 -1
  54. package/lib/module/helpers/{isCursorSupplied.js → isCursorSupplied.mjs} +1 -1
  55. package/lib/module/helpers/{isCursorSupplied.js.map → isCursorSupplied.mjs.map} +1 -1
  56. package/lib/module/helpers/isFirstPage.mjs +2 -0
  57. package/lib/module/helpers/{isFirstPage.js.map → isFirstPage.mjs.map} +1 -1
  58. package/lib/module/helpers/{isLastPage.js → isLastPage.mjs} +1 -1
  59. package/lib/module/helpers/{isLastPage.js.map → isLastPage.mjs.map} +1 -1
  60. package/lib/module/helpers/{makeEdges.js → makeEdges.mjs} +1 -1
  61. package/lib/module/helpers/{makeEdges.js.map → makeEdges.mjs.map} +1 -1
  62. package/lib/module/helpers/{makeEntry.js → makeEntry.mjs} +1 -1
  63. package/lib/module/helpers/{makeEntry.js.map → makeEntry.mjs.map} +1 -1
  64. package/lib/module/helpers/{mergeCachedEdges.js → mergeCachedEdges.mjs} +1 -1
  65. package/lib/module/helpers/{mergeCachedEdges.js.map → mergeCachedEdges.mjs.map} +1 -1
  66. package/lib/module/helpers/{removeConnectionInputOptions.js → removeConnectionInputOptions.mjs} +1 -1
  67. package/lib/module/helpers/{removeConnectionInputOptions.js.map → removeConnectionInputOptions.mjs.map} +1 -1
  68. package/lib/module/helpers/{requestAndCachePages.js → requestAndCachePages.mjs} +1 -1
  69. package/lib/module/helpers/{requestAndCachePages.js.map → requestAndCachePages.mjs.map} +1 -1
  70. package/lib/module/helpers/{requestOutstandingPages.js → requestOutstandingPages.mjs} +1 -1
  71. package/lib/module/helpers/{requestOutstandingPages.js.map → requestOutstandingPages.mjs.map} +1 -1
  72. package/lib/module/helpers/{resolveConnection.js → resolveConnection.mjs} +1 -1
  73. package/lib/module/helpers/{resolveConnection.js.map → resolveConnection.mjs.map} +1 -1
  74. package/lib/module/helpers/{retrieveCachedConnection.js → retrieveCachedConnection.mjs} +1 -1
  75. package/lib/module/helpers/{retrieveCachedConnection.js.map → retrieveCachedConnection.mjs.map} +1 -1
  76. package/lib/module/helpers/{retrieveCachedEdgesByPage.js → retrieveCachedEdgesByPage.mjs} +1 -1
  77. package/lib/module/helpers/{retrieveCachedEdgesByPage.js.map → retrieveCachedEdgesByPage.mjs.map} +1 -1
  78. package/lib/module/helpers/{validateCursor.js → validateCursor.mjs} +1 -1
  79. package/lib/module/helpers/{validateCursor.js.map → validateCursor.mjs.map} +1 -1
  80. package/lib/module/{index.js → index.mjs} +2 -2
  81. package/lib/module/index.mjs.map +1 -0
  82. package/lib/module/main/{index.js → index.mjs} +3 -5
  83. package/lib/module/main/index.mjs.map +1 -0
  84. package/lib/types/index.d.ts +1 -1
  85. package/lib/types/index.d.ts.map +1 -1
  86. package/lib/types/main/index.d.ts +2 -2
  87. package/lib/types/main/index.d.ts.map +1 -1
  88. package/package.json +3 -3
  89. package/src/index.ts +1 -1
  90. package/src/main/index.ts +2 -2
  91. package/lib/module/defs/index.js +0 -2
  92. package/lib/module/helpers/isFirstPage.js +0 -2
  93. package/lib/module/index.js.map +0 -1
  94. package/lib/module/main/index.js.map +0 -1
@@ -1,2 +1,2 @@
1
1
  export default (last => last ? "backward" : "forward");
2
- //# sourceMappingURL=getDirection.js.map
2
+ //# sourceMappingURL=getDirection.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/getDirection.ts"],"names":["last"],"mappings":"AAAA,gBAAgBA,IAAD,IAA+BA,IAAI,GAAG,UAAH,GAAgB,SAAlE","sourcesContent":["export default (last: number | undefined) => (last ? \"backward\" : \"forward\");\n"],"file":"getDirection.js"}
1
+ {"version":3,"sources":["../../../src/helpers/getDirection.ts"],"names":["last"],"mappings":"AAAA,gBAAgBA,IAAD,IAA+BA,IAAI,GAAG,UAAH,GAAgB,SAAlE","sourcesContent":["export default (last: number | undefined) => (last ? \"backward\" : \"forward\");\n"],"file":"getDirection.mjs"}
@@ -23,4 +23,4 @@ export default ((cachedEdgesByPage, {
23
23
  return inRange;
24
24
  }, []);
25
25
  });
26
- //# sourceMappingURL=getInRangeCachedEdges.js.map
26
+ //# sourceMappingURL=getInRangeCachedEdges.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/getInRangeCachedEdges.ts"],"names":["getCurrentPageEndIndex","getCurrentPageStartIndex","cachedEdgesByPage","endIndex","resultsPerPage","startIndex","reduce","inRange","cachedEdgesPage","i","currentPageStartIndex","pageIndex","currentPageEndIndex","totalCachedPages","length","cachedEdges","edges","slice","push","pageNumber"],"mappings":"AACA,SAASA,sBAAT,EAAiCC,wBAAjC,QAAiE,oCAAjE;AAQA,gBAAe,CAACC,iBAAD,EAAmC;AAAEC,EAAAA,QAAF;AAAYC,EAAAA,cAAZ;AAA4BC,EAAAA;AAA5B,CAAnC,KAAyF;AACtG,SAAOH,iBAAiB,CAACI,MAAlB,CAAyB,CAACC,OAAD,EAAUC,eAAV,EAA2BC,CAA3B,KAAiC;AAC/D,UAAMC,qBAAqB,GAAGT,wBAAwB,CAAC;AAAEI,MAAAA,UAAF;AAAcM,MAAAA,SAAS,EAAEF;AAAzB,KAAD,CAAtD;AAEA,UAAMG,mBAAmB,GAAGZ,sBAAsB,CAAC;AACjDG,MAAAA,QADiD;AAEjDQ,MAAAA,SAAS,EAAEF,CAFsC;AAGjDL,MAAAA,cAHiD;AAIjDS,MAAAA,gBAAgB,EAAEX,iBAAiB,CAACY;AAJa,KAAD,CAAlD;AAOA,UAAMC,WAAW,GAAGP,eAAe,CAACQ,KAAhB,CAAsBC,KAAtB,CAA4BP,qBAA5B,EAAmDE,mBAAmB,GAAG,CAAzE,CAApB;AACAL,IAAAA,OAAO,CAACW,IAAR,CAAa;AAAEF,MAAAA,KAAK,EAAED,WAAT;AAAsBI,MAAAA,UAAU,EAAEX,eAAe,CAACW;AAAlD,KAAb;AACA,WAAOZ,OAAP;AACD,GAbM,EAaJ,EAbI,CAAP;AAcD,CAfD","sourcesContent":["import { CachedEdges, Indexes } from \"../defs\";\nimport { getCurrentPageEndIndex, getCurrentPageStartIndex } from \"./getCurrentPageStartAndEndIndexes\";\n\nexport type Context = {\n endIndex: Indexes;\n resultsPerPage: number;\n startIndex: Indexes;\n};\n\nexport default (cachedEdgesByPage: CachedEdges[], { endIndex, resultsPerPage, startIndex }: Context) => {\n return cachedEdgesByPage.reduce((inRange, cachedEdgesPage, i) => {\n const currentPageStartIndex = getCurrentPageStartIndex({ startIndex, pageIndex: i });\n\n const currentPageEndIndex = getCurrentPageEndIndex({\n endIndex,\n pageIndex: i,\n resultsPerPage,\n totalCachedPages: cachedEdgesByPage.length,\n });\n\n const cachedEdges = cachedEdgesPage.edges.slice(currentPageStartIndex, currentPageEndIndex + 1);\n inRange.push({ edges: cachedEdges, pageNumber: cachedEdgesPage.pageNumber });\n return inRange;\n }, [] as CachedEdges[]);\n};\n"],"file":"getInRangeCachedEdges.js"}
1
+ {"version":3,"sources":["../../../src/helpers/getInRangeCachedEdges.ts"],"names":["getCurrentPageEndIndex","getCurrentPageStartIndex","cachedEdgesByPage","endIndex","resultsPerPage","startIndex","reduce","inRange","cachedEdgesPage","i","currentPageStartIndex","pageIndex","currentPageEndIndex","totalCachedPages","length","cachedEdges","edges","slice","push","pageNumber"],"mappings":"AACA,SAASA,sBAAT,EAAiCC,wBAAjC,QAAiE,oCAAjE;AAQA,gBAAe,CAACC,iBAAD,EAAmC;AAAEC,EAAAA,QAAF;AAAYC,EAAAA,cAAZ;AAA4BC,EAAAA;AAA5B,CAAnC,KAAyF;AACtG,SAAOH,iBAAiB,CAACI,MAAlB,CAAyB,CAACC,OAAD,EAAUC,eAAV,EAA2BC,CAA3B,KAAiC;AAC/D,UAAMC,qBAAqB,GAAGT,wBAAwB,CAAC;AAAEI,MAAAA,UAAF;AAAcM,MAAAA,SAAS,EAAEF;AAAzB,KAAD,CAAtD;AAEA,UAAMG,mBAAmB,GAAGZ,sBAAsB,CAAC;AACjDG,MAAAA,QADiD;AAEjDQ,MAAAA,SAAS,EAAEF,CAFsC;AAGjDL,MAAAA,cAHiD;AAIjDS,MAAAA,gBAAgB,EAAEX,iBAAiB,CAACY;AAJa,KAAD,CAAlD;AAOA,UAAMC,WAAW,GAAGP,eAAe,CAACQ,KAAhB,CAAsBC,KAAtB,CAA4BP,qBAA5B,EAAmDE,mBAAmB,GAAG,CAAzE,CAApB;AACAL,IAAAA,OAAO,CAACW,IAAR,CAAa;AAAEF,MAAAA,KAAK,EAAED,WAAT;AAAsBI,MAAAA,UAAU,EAAEX,eAAe,CAACW;AAAlD,KAAb;AACA,WAAOZ,OAAP;AACD,GAbM,EAaJ,EAbI,CAAP;AAcD,CAfD","sourcesContent":["import { CachedEdges, Indexes } from \"../defs\";\nimport { getCurrentPageEndIndex, getCurrentPageStartIndex } from \"./getCurrentPageStartAndEndIndexes\";\n\nexport type Context = {\n endIndex: Indexes;\n resultsPerPage: number;\n startIndex: Indexes;\n};\n\nexport default (cachedEdgesByPage: CachedEdges[], { endIndex, resultsPerPage, startIndex }: Context) => {\n return cachedEdgesByPage.reduce((inRange, cachedEdgesPage, i) => {\n const currentPageStartIndex = getCurrentPageStartIndex({ startIndex, pageIndex: i });\n\n const currentPageEndIndex = getCurrentPageEndIndex({\n endIndex,\n pageIndex: i,\n resultsPerPage,\n totalCachedPages: cachedEdgesByPage.length,\n });\n\n const cachedEdges = cachedEdgesPage.edges.slice(currentPageStartIndex, currentPageEndIndex + 1);\n inRange.push({ edges: cachedEdges, pageNumber: cachedEdgesPage.pageNumber });\n return inRange;\n }, [] as CachedEdges[]);\n};\n"],"file":"getInRangeCachedEdges.mjs"}
@@ -14,4 +14,4 @@ export default (({
14
14
  resultsPerPage,
15
15
  totalResults
16
16
  }) : resultsPerPage) - 1);
17
- //# sourceMappingURL=getIndexesOnCurrentPage.js.map
17
+ //# sourceMappingURL=getIndexesOnCurrentPage.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/getIndexesOnCurrentPage.ts"],"names":["getResultsOnLastPage","isLastPage","page","metadata","totalPages","totalResults","resultsPerPage"],"mappings":"AACA,OAAOA,oBAAP,MAAiC,wBAAjC;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAMA,gBAAe,CAAC;AACdC,EAAAA,IADc;AAEdC,EAAAA,QAAQ,EAAE;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAFI;AAGdC,EAAAA;AAHc,CAAD,KAKb,CAACL,UAAU,CAAC;AAAEC,EAAAA,IAAF;AAAQE,EAAAA;AAAR,CAAD,CAAV,GAAmCJ,oBAAoB,CAAC;AAAEM,EAAAA,cAAF;AAAkBD,EAAAA;AAAlB,CAAD,CAAvD,GAA4FC,cAA7F,IAA+G,CALjH","sourcesContent":["import { Context } from \"../defs\";\nimport getResultsOnLastPage from \"./getResultsOnLastPage\";\nimport isLastPage from \"./isLastPage\";\n\nexport type IndexesOnCurrentPageContext = {\n page: number;\n};\n\nexport default ({\n page,\n metadata: { totalPages, totalResults },\n resultsPerPage,\n}: IndexesOnCurrentPageContext & Omit<Context, \"entry\">) =>\n (isLastPage({ page, totalPages }) ? getResultsOnLastPage({ resultsPerPage, totalResults }) : resultsPerPage) - 1;\n"],"file":"getIndexesOnCurrentPage.js"}
1
+ {"version":3,"sources":["../../../src/helpers/getIndexesOnCurrentPage.ts"],"names":["getResultsOnLastPage","isLastPage","page","metadata","totalPages","totalResults","resultsPerPage"],"mappings":"AACA,OAAOA,oBAAP,MAAiC,wBAAjC;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAMA,gBAAe,CAAC;AACdC,EAAAA,IADc;AAEdC,EAAAA,QAAQ,EAAE;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAFI;AAGdC,EAAAA;AAHc,CAAD,KAKb,CAACL,UAAU,CAAC;AAAEC,EAAAA,IAAF;AAAQE,EAAAA;AAAR,CAAD,CAAV,GAAmCJ,oBAAoB,CAAC;AAAEM,EAAAA,cAAF;AAAkBD,EAAAA;AAAlB,CAAD,CAAvD,GAA4FC,cAA7F,IAA+G,CALjH","sourcesContent":["import { Context } from \"../defs\";\nimport getResultsOnLastPage from \"./getResultsOnLastPage\";\nimport isLastPage from \"./isLastPage\";\n\nexport type IndexesOnCurrentPageContext = {\n page: number;\n};\n\nexport default ({\n page,\n metadata: { totalPages, totalResults },\n resultsPerPage,\n}: IndexesOnCurrentPageContext & Omit<Context, \"entry\">) =>\n (isLastPage({ page, totalPages }) ? getResultsOnLastPage({ resultsPerPage, totalResults }) : resultsPerPage) - 1;\n"],"file":"getIndexesOnCurrentPage.mjs"}
@@ -6,4 +6,4 @@ export default (({
6
6
  resultsPerPage,
7
7
  totalResults
8
8
  }) - 1);
9
- //# sourceMappingURL=getIndexesOnLastPage.js.map
9
+ //# sourceMappingURL=getIndexesOnLastPage.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/getIndexesOnLastPage.ts"],"names":["getResultsOnLastPage","resultsPerPage","totalResults"],"mappings":"AAAA,OAAOA,oBAAP,MAA6C,wBAA7C;AAEA,gBAAe,CAAC;AAAEC,EAAAA,cAAF;AAAkBC,EAAAA;AAAlB,CAAD,KAA8CF,oBAAoB,CAAC;AAAEC,EAAAA,cAAF;AAAkBC,EAAAA;AAAlB,CAAD,CAApB,GAAyD,CAAtH","sourcesContent":["import getResultsOnLastPage, { Params } from \"./getResultsOnLastPage\";\n\nexport default ({ resultsPerPage, totalResults }: Params) => getResultsOnLastPage({ resultsPerPage, totalResults }) - 1;\n"],"file":"getIndexesOnLastPage.js"}
1
+ {"version":3,"sources":["../../../src/helpers/getIndexesOnLastPage.ts"],"names":["getResultsOnLastPage","resultsPerPage","totalResults"],"mappings":"AAAA,OAAOA,oBAAP,MAA6C,wBAA7C;AAEA,gBAAe,CAAC;AAAEC,EAAAA,cAAF;AAAkBC,EAAAA;AAAlB,CAAD,KAA8CF,oBAAoB,CAAC;AAAEC,EAAAA,cAAF;AAAkBC,EAAAA;AAAlB,CAAD,CAApB,GAAyD,CAAtH","sourcesContent":["import getResultsOnLastPage, { Params } from \"./getResultsOnLastPage\";\n\nexport default ({ resultsPerPage, totalResults }: Params) => getResultsOnLastPage({ resultsPerPage, totalResults }) - 1;\n"],"file":"getIndexesOnLastPage.mjs"}
@@ -27,4 +27,4 @@ export default ((args, {
27
27
 
28
28
  return [..._range(startPageNumber, endPageNumber), endPageNumber];
29
29
  });
30
- //# sourceMappingURL=getPageNumbersToRequest.js.map
30
+ //# sourceMappingURL=getPageNumbersToRequest.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/getPageNumbersToRequest.ts"],"names":["getEndPageNumber","getStartPageNumber","args","endIndex","entry","page","metadata","resultsPerPage","startIndex","startPageNumber","endPageNumber"],"mappings":";AAEA,SAASA,gBAAT,EAA2BC,kBAA3B,QAAqD,6BAArD;AAOA,gBAAe,CACbC,IADa,EAEb;AAAEC,EAAAA,QAAF;AAAYC,EAAAA,KAAK,EAAE;AAAEC,IAAAA;AAAF,GAAnB;AAA6BC,EAAAA,QAA7B;AAAuCC,EAAAA,cAAvC;AAAuDC,EAAAA;AAAvD,CAFa,KAGV;AACH,QAAMC,eAAe,GAAGR,kBAAkB,CAACC,IAAD,EAAO;AAAEG,IAAAA,IAAF;AAAQG,IAAAA,UAAR;AAAoBD,IAAAA;AAApB,GAAP,CAA1C;AACA,QAAMG,aAAa,GAAGV,gBAAgB,CAACE,IAAD,EAAO;AAAEC,IAAAA,QAAF;AAAYG,IAAAA,QAAZ;AAAsBD,IAAAA,IAAtB;AAA4BE,IAAAA;AAA5B,GAAP,CAAtC;;AAEA,MAAIE,eAAe,KAAKC,aAAxB,EAAuC;AACrC,WAAO,CAACL,IAAD,CAAP;AACD;;AAED,SAAO,CAAC,GAAG,OAAMI,eAAN,EAAuBC,aAAvB,CAAJ,EAA2CA,aAA3C,CAAP;AACD,CAZD","sourcesContent":["import { range } from \"lodash\";\nimport { ConnectionInputOptions, Context, Indexes } from \"../defs\";\nimport { getEndPageNumber, getStartPageNumber } from \"./getStartAndEndPageNumbers\";\n\nexport type GetPageNumbersToRequestContext = {\n endIndex: Indexes;\n startIndex: Indexes;\n};\n\nexport default (\n args: ConnectionInputOptions,\n { endIndex, entry: { page }, metadata, resultsPerPage, startIndex }: GetPageNumbersToRequestContext & Context,\n) => {\n const startPageNumber = getStartPageNumber(args, { page, startIndex, resultsPerPage });\n const endPageNumber = getEndPageNumber(args, { endIndex, metadata, page, resultsPerPage });\n\n if (startPageNumber === endPageNumber) {\n return [page];\n }\n\n return [...range(startPageNumber, endPageNumber), endPageNumber];\n};\n"],"file":"getPageNumbersToRequest.js"}
1
+ {"version":3,"sources":["../../../src/helpers/getPageNumbersToRequest.ts"],"names":["getEndPageNumber","getStartPageNumber","args","endIndex","entry","page","metadata","resultsPerPage","startIndex","startPageNumber","endPageNumber"],"mappings":";AAEA,SAASA,gBAAT,EAA2BC,kBAA3B,QAAqD,6BAArD;AAOA,gBAAe,CACbC,IADa,EAEb;AAAEC,EAAAA,QAAF;AAAYC,EAAAA,KAAK,EAAE;AAAEC,IAAAA;AAAF,GAAnB;AAA6BC,EAAAA,QAA7B;AAAuCC,EAAAA,cAAvC;AAAuDC,EAAAA;AAAvD,CAFa,KAGV;AACH,QAAMC,eAAe,GAAGR,kBAAkB,CAACC,IAAD,EAAO;AAAEG,IAAAA,IAAF;AAAQG,IAAAA,UAAR;AAAoBD,IAAAA;AAApB,GAAP,CAA1C;AACA,QAAMG,aAAa,GAAGV,gBAAgB,CAACE,IAAD,EAAO;AAAEC,IAAAA,QAAF;AAAYG,IAAAA,QAAZ;AAAsBD,IAAAA,IAAtB;AAA4BE,IAAAA;AAA5B,GAAP,CAAtC;;AAEA,MAAIE,eAAe,KAAKC,aAAxB,EAAuC;AACrC,WAAO,CAACL,IAAD,CAAP;AACD;;AAED,SAAO,CAAC,GAAG,OAAMI,eAAN,EAAuBC,aAAvB,CAAJ,EAA2CA,aAA3C,CAAP;AACD,CAZD","sourcesContent":["import { range } from \"lodash\";\nimport { ConnectionInputOptions, Context, Indexes } from \"../defs\";\nimport { getEndPageNumber, getStartPageNumber } from \"./getStartAndEndPageNumbers\";\n\nexport type GetPageNumbersToRequestContext = {\n endIndex: Indexes;\n startIndex: Indexes;\n};\n\nexport default (\n args: ConnectionInputOptions,\n { endIndex, entry: { page }, metadata, resultsPerPage, startIndex }: GetPageNumbersToRequestContext & Context,\n) => {\n const startPageNumber = getStartPageNumber(args, { page, startIndex, resultsPerPage });\n const endPageNumber = getEndPageNumber(args, { endIndex, metadata, page, resultsPerPage });\n\n if (startPageNumber === endPageNumber) {\n return [page];\n }\n\n return [...range(startPageNumber, endPageNumber), endPageNumber];\n};\n"],"file":"getPageNumbersToRequest.mjs"}
@@ -7,4 +7,4 @@ export default (cachedEdgesByPage => {
7
7
  return missing;
8
8
  }, []);
9
9
  });
10
- //# sourceMappingURL=getPagesMissingFromCache.js.map
10
+ //# sourceMappingURL=getPagesMissingFromCache.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/getPagesMissingFromCache.ts"],"names":["cachedEdgesByPage","reduce","missing","cachedEdgesPage","edges","length","push","pageNumber"],"mappings":"AAEA,gBAAgBA,iBAAD,IAAsC;AACnD,SAAOA,iBAAiB,CAACC,MAAlB,CAAyB,CAACC,OAAD,EAAUC,eAAV,KAA8B;AAC5D,QAAI,CAACA,eAAe,CAACC,KAAhB,CAAsBC,MAA3B,EAAmC;AACjCH,MAAAA,OAAO,CAACI,IAAR,CAAaH,eAAe,CAACI,UAA7B;AACD;;AAED,WAAOL,OAAP;AACD,GANM,EAMJ,EANI,CAAP;AAOD,CARD","sourcesContent":["import { CachedEdges } from \"../defs\";\n\nexport default (cachedEdgesByPage: CachedEdges[]) => {\n return cachedEdgesByPage.reduce((missing, cachedEdgesPage) => {\n if (!cachedEdgesPage.edges.length) {\n missing.push(cachedEdgesPage.pageNumber);\n }\n\n return missing;\n }, [] as number[]);\n};\n"],"file":"getPagesMissingFromCache.js"}
1
+ {"version":3,"sources":["../../../src/helpers/getPagesMissingFromCache.ts"],"names":["cachedEdgesByPage","reduce","missing","cachedEdgesPage","edges","length","push","pageNumber"],"mappings":"AAEA,gBAAgBA,iBAAD,IAAsC;AACnD,SAAOA,iBAAiB,CAACC,MAAlB,CAAyB,CAACC,OAAD,EAAUC,eAAV,KAA8B;AAC5D,QAAI,CAACA,eAAe,CAACC,KAAhB,CAAsBC,MAA3B,EAAmC;AACjCH,MAAAA,OAAO,CAACI,IAAR,CAAaH,eAAe,CAACI,UAA7B;AACD;;AAED,WAAOL,OAAP;AACD,GANM,EAMJ,EANI,CAAP;AAOD,CARD","sourcesContent":["import { CachedEdges } from \"../defs\";\n\nexport default (cachedEdgesByPage: CachedEdges[]) => {\n return cachedEdgesByPage.reduce((missing, cachedEdgesPage) => {\n if (!cachedEdgesPage.edges.length) {\n missing.push(cachedEdgesPage.pageNumber);\n }\n\n return missing;\n }, [] as number[]);\n};\n"],"file":"getPagesMissingFromCache.mjs"}
@@ -5,4 +5,4 @@ export default (({
5
5
  const remainder = totalResults % resultsPerPage;
6
6
  return remainder === 0 ? resultsPerPage : remainder;
7
7
  });
8
- //# sourceMappingURL=getResultsOnLastPage.js.map
8
+ //# sourceMappingURL=getResultsOnLastPage.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/getResultsOnLastPage.ts"],"names":["resultsPerPage","totalResults","remainder"],"mappings":"AAKA,gBAAe,CAAC;AAAEA,EAAAA,cAAF;AAAkBC,EAAAA;AAAlB,CAAD,KAA8C;AAC3D,QAAMC,SAAS,GAAGD,YAAY,GAAGD,cAAjC;AACA,SAAOE,SAAS,KAAK,CAAd,GAAkBF,cAAlB,GAAmCE,SAA1C;AACD,CAHD","sourcesContent":["export type Params = {\n resultsPerPage: number;\n totalResults: number;\n};\n\nexport default ({ resultsPerPage, totalResults }: Params) => {\n const remainder = totalResults % resultsPerPage;\n return remainder === 0 ? resultsPerPage : remainder;\n};\n"],"file":"getResultsOnLastPage.js"}
1
+ {"version":3,"sources":["../../../src/helpers/getResultsOnLastPage.ts"],"names":["resultsPerPage","totalResults","remainder"],"mappings":"AAKA,gBAAe,CAAC;AAAEA,EAAAA,cAAF;AAAkBC,EAAAA;AAAlB,CAAD,KAA8C;AAC3D,QAAMC,SAAS,GAAGD,YAAY,GAAGD,cAAjC;AACA,SAAOE,SAAS,KAAK,CAAd,GAAkBF,cAAlB,GAAmCE,SAA1C;AACD,CAHD","sourcesContent":["export type Params = {\n resultsPerPage: number;\n totalResults: number;\n};\n\nexport default ({ resultsPerPage, totalResults }: Params) => {\n const remainder = totalResults % resultsPerPage;\n return remainder === 0 ? resultsPerPage : remainder;\n};\n"],"file":"getResultsOnLastPage.mjs"}
@@ -7,4 +7,4 @@ export const getEndCursor = edges => {
7
7
  const lastEdge = edges[edges.length - 1];
8
8
  return lastEdge === null || lastEdge === void 0 ? void 0 : lastEdge.cursor;
9
9
  };
10
- //# sourceMappingURL=getStartAndEndCursors.js.map
10
+ //# sourceMappingURL=getStartAndEndCursors.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/getStartAndEndCursors.ts"],"names":["getStartCursor","edges","cursor","getEndCursor","lastEdge","length"],"mappings":"AAEA,OAAO,MAAMA,cAAc,GAAIC,KAAD;AAAA;;AAAA,oBAAmBA,KAAK,CAAC,CAAD,CAAxB,4CAAmB,QAAUC,MAA7B;AAAA,CAAvB;AAEP,OAAO,MAAMC,YAAY,GAAIF,KAAD,IAAmB;AAC7C,QAAMG,QAAQ,GAAGH,KAAK,CAACA,KAAK,CAACI,MAAN,GAAe,CAAhB,CAAtB;AACA,SAAOD,QAAP,aAAOA,QAAP,uBAAOA,QAAQ,CAAEF,MAAjB;AACD,CAHM","sourcesContent":["import { Edge } from \"../defs\";\n\nexport const getStartCursor = (edges: Edge[]) => edges[0]?.cursor;\n\nexport const getEndCursor = (edges: Edge[]) => {\n const lastEdge = edges[edges.length - 1];\n return lastEdge?.cursor;\n};\n"],"file":"getStartAndEndCursors.js"}
1
+ {"version":3,"sources":["../../../src/helpers/getStartAndEndCursors.ts"],"names":["getStartCursor","edges","cursor","getEndCursor","lastEdge","length"],"mappings":"AAEA,OAAO,MAAMA,cAAc,GAAIC,KAAD;AAAA;;AAAA,oBAAmBA,KAAK,CAAC,CAAD,CAAxB,4CAAmB,QAAUC,MAA7B;AAAA,CAAvB;AAEP,OAAO,MAAMC,YAAY,GAAIF,KAAD,IAAmB;AAC7C,QAAMG,QAAQ,GAAGH,KAAK,CAACA,KAAK,CAACI,MAAN,GAAe,CAAhB,CAAtB;AACA,SAAOD,QAAP,aAAOA,QAAP,uBAAOA,QAAQ,CAAEF,MAAjB;AACD,CAHM","sourcesContent":["import { Edge } from \"../defs\";\n\nexport const getStartCursor = (edges: Edge[]) => edges[0]?.cursor;\n\nexport const getEndCursor = (edges: Edge[]) => {\n const lastEdge = edges[edges.length - 1];\n return lastEdge?.cursor;\n};\n"],"file":"getStartAndEndCursors.mjs"}
@@ -83,4 +83,4 @@ export const getEndIndex = (args, {
83
83
  };
84
84
  })();
85
85
  };
86
- //# sourceMappingURL=getStartAndEndIndexes.js.map
86
+ //# sourceMappingURL=getStartAndEndIndexes.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/getStartAndEndIndexes.ts"],"names":["getCount","getDirection","getIndexesOnLastPage","isFirstPage","isLastPage","getStartIndex","args","entry","index","page","resultsPerPage","count","last","absolute","relative","absStartIndex","indexesRemainingAfterLastPage","Math","abs","pagesRemaining","remainder","relStartIndex","getEndIndex","metadata","totalPages","totalResults","indexesOnLastPage","absEndIndex","indexesPerPage","indexesRemainingAfterFirstPage","relEndIndex"],"mappings":"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","sourcesContent":["import { ConnectionInputOptions, Context } from \"../defs\";\nimport getCount from \"./getCount\";\nimport getDirection from \"./getDirection\";\nimport getIndexesOnLastPage from \"./getIndexesOnLastPage\";\nimport isFirstPage from \"./isFirstPage\";\nimport isLastPage from \"./isLastPage\";\n\nexport const getStartIndex = (\n args: ConnectionInputOptions,\n { entry: { index, page }, resultsPerPage }: Pick<Context, \"entry\" | \"resultsPerPage\">,\n) => {\n const count = getCount(args);\n\n return getDirection(args.last) === \"forward\"\n ? { absolute: index + 1, relative: index + 1 }\n : isFirstPage(page) && index - count < 0\n ? { absolute: 0, relative: 0 }\n : (() => {\n const absStartIndex = index - count;\n\n if (absStartIndex >= 0) {\n return { absolute: absStartIndex, relative: absStartIndex };\n }\n\n const indexesRemainingAfterLastPage = Math.abs(absStartIndex);\n const pagesRemaining = indexesRemainingAfterLastPage / resultsPerPage + 1;\n const remainder = indexesRemainingAfterLastPage % resultsPerPage;\n const relStartIndex = remainder === 0 ? 0 : page - pagesRemaining < 0 ? 0 : resultsPerPage - remainder;\n return { absolute: absStartIndex, relative: relStartIndex };\n })();\n};\n\nexport const getEndIndex = (\n args: ConnectionInputOptions,\n { entry: { index, page }, metadata: { totalPages, totalResults }, resultsPerPage }: Context,\n) => {\n const count = getCount(args);\n const indexesOnLastPage = getIndexesOnLastPage({ resultsPerPage, totalResults });\n\n return getDirection(args.last) === \"backward\"\n ? { absolute: index - 1, relative: index - 1 }\n : isLastPage({ page, totalPages }) && index + count > indexesOnLastPage\n ? { absolute: indexesOnLastPage, relative: indexesOnLastPage }\n : (() => {\n const absEndIndex = index + count;\n const indexesPerPage = resultsPerPage - 1;\n\n if (absEndIndex <= indexesPerPage) {\n return { absolute: absEndIndex, relative: absEndIndex };\n }\n\n const indexesRemainingAfterFirstPage = absEndIndex - indexesPerPage;\n const pagesRemaining = indexesRemainingAfterFirstPage / resultsPerPage;\n const remainder = indexesRemainingAfterFirstPage % resultsPerPage;\n\n const relEndIndex =\n remainder === 0 ? indexesPerPage : page + pagesRemaining > totalPages ? indexesOnLastPage : remainder - 1;\n\n return { absolute: absEndIndex, relative: relEndIndex };\n })();\n};\n"],"file":"getStartAndEndIndexes.js"}
1
+ {"version":3,"sources":["../../../src/helpers/getStartAndEndIndexes.ts"],"names":["getCount","getDirection","getIndexesOnLastPage","isFirstPage","isLastPage","getStartIndex","args","entry","index","page","resultsPerPage","count","last","absolute","relative","absStartIndex","indexesRemainingAfterLastPage","Math","abs","pagesRemaining","remainder","relStartIndex","getEndIndex","metadata","totalPages","totalResults","indexesOnLastPage","absEndIndex","indexesPerPage","indexesRemainingAfterFirstPage","relEndIndex"],"mappings":"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","sourcesContent":["import { ConnectionInputOptions, Context } from \"../defs\";\nimport getCount from \"./getCount\";\nimport getDirection from \"./getDirection\";\nimport getIndexesOnLastPage from \"./getIndexesOnLastPage\";\nimport isFirstPage from \"./isFirstPage\";\nimport isLastPage from \"./isLastPage\";\n\nexport const getStartIndex = (\n args: ConnectionInputOptions,\n { entry: { index, page }, resultsPerPage }: Pick<Context, \"entry\" | \"resultsPerPage\">,\n) => {\n const count = getCount(args);\n\n return getDirection(args.last) === \"forward\"\n ? { absolute: index + 1, relative: index + 1 }\n : isFirstPage(page) && index - count < 0\n ? { absolute: 0, relative: 0 }\n : (() => {\n const absStartIndex = index - count;\n\n if (absStartIndex >= 0) {\n return { absolute: absStartIndex, relative: absStartIndex };\n }\n\n const indexesRemainingAfterLastPage = Math.abs(absStartIndex);\n const pagesRemaining = indexesRemainingAfterLastPage / resultsPerPage + 1;\n const remainder = indexesRemainingAfterLastPage % resultsPerPage;\n const relStartIndex = remainder === 0 ? 0 : page - pagesRemaining < 0 ? 0 : resultsPerPage - remainder;\n return { absolute: absStartIndex, relative: relStartIndex };\n })();\n};\n\nexport const getEndIndex = (\n args: ConnectionInputOptions,\n { entry: { index, page }, metadata: { totalPages, totalResults }, resultsPerPage }: Context,\n) => {\n const count = getCount(args);\n const indexesOnLastPage = getIndexesOnLastPage({ resultsPerPage, totalResults });\n\n return getDirection(args.last) === \"backward\"\n ? { absolute: index - 1, relative: index - 1 }\n : isLastPage({ page, totalPages }) && index + count > indexesOnLastPage\n ? { absolute: indexesOnLastPage, relative: indexesOnLastPage }\n : (() => {\n const absEndIndex = index + count;\n const indexesPerPage = resultsPerPage - 1;\n\n if (absEndIndex <= indexesPerPage) {\n return { absolute: absEndIndex, relative: absEndIndex };\n }\n\n const indexesRemainingAfterFirstPage = absEndIndex - indexesPerPage;\n const pagesRemaining = indexesRemainingAfterFirstPage / resultsPerPage;\n const remainder = indexesRemainingAfterFirstPage % resultsPerPage;\n\n const relEndIndex =\n remainder === 0 ? indexesPerPage : page + pagesRemaining > totalPages ? indexesOnLastPage : remainder - 1;\n\n return { absolute: absEndIndex, relative: relEndIndex };\n })();\n};\n"],"file":"getStartAndEndIndexes.mjs"}
@@ -32,4 +32,4 @@ export const getEndPageNumber = (args, {
32
32
  const endPageNumber = page + Math.ceil((endIndex.absolute - indexesPerPage) / resultsPerPage);
33
33
  return endPageNumber >= totalPages ? totalPages : endPageNumber;
34
34
  };
35
- //# sourceMappingURL=getStartAndEndPageNumbers.js.map
35
+ //# sourceMappingURL=getStartAndEndPageNumbers.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/getStartAndEndPageNumbers.ts"],"names":["getDirection","isLastPage","getStartPageNumber","args","page","startIndex","resultsPerPage","last","absolute","startPageNumber","Math","ceil","abs","getEndPageNumber","endIndex","metadata","totalPages","indexesPerPage","endPageNumber"],"mappings":"AACA,OAAOA,YAAP,MAAyB,gBAAzB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAQA,OAAO,MAAMC,kBAAkB,GAAG,CAChCC,IADgC,EAEhC;AAAEC,EAAAA,IAAF;AAAQC,EAAAA,UAAR;AAAoBC,EAAAA;AAApB,CAFgC,KAG7B;AACH,MAAIN,YAAY,CAACG,IAAI,CAACI,IAAN,CAAZ,KAA4B,SAA5B,IAAyCF,UAAU,CAACG,QAAX,IAAuB,CAApE,EAAuE;AACrE,WAAOJ,IAAP;AACD;;AAED,QAAMK,eAAe,GAAGL,IAAI,GAAGM,IAAI,CAACC,IAAL,CAAUD,IAAI,CAACE,GAAL,CAASP,UAAU,CAACG,QAApB,IAAgCF,cAA1C,CAA/B;AACA,SAAOG,eAAe,IAAI,CAAnB,GAAuB,CAAvB,GAA2BA,eAAlC;AACD,CAVM;AAYP,OAAO,MAAMI,gBAAgB,GAAG,CAC9BV,IAD8B,EAE9B;AACEW,EAAAA,QADF;AAEEC,EAAAA,QAAQ,EAAE;AAAEC,IAAAA;AAAF,GAFZ;AAGEZ,EAAAA,IAHF;AAIEE,EAAAA;AAJF,CAF8B,KAQ3B;AACH,QAAMW,cAAc,GAAGX,cAAc,GAAG,CAAxC;;AAEA,MACEN,YAAY,CAACG,IAAI,CAACI,IAAN,CAAZ,KAA4B,UAA5B,IACAN,UAAU,CAAC;AAAEG,IAAAA,IAAF;AAAQY,IAAAA;AAAR,GAAD,CADV,IAEAF,QAAQ,CAACN,QAAT,IAAqBS,cAHvB,EAIE;AACA,WAAOb,IAAP;AACD;;AAED,QAAMc,aAAa,GAAGd,IAAI,GAAGM,IAAI,CAACC,IAAL,CAAU,CAACG,QAAQ,CAACN,QAAT,GAAoBS,cAArB,IAAuCX,cAAjD,CAA7B;AACA,SAAOY,aAAa,IAAIF,UAAjB,GAA8BA,UAA9B,GAA2CE,aAAlD;AACD,CArBM","sourcesContent":["import { ConnectionInputOptions, Context, Indexes } from \"../defs\";\nimport getDirection from \"./getDirection\";\nimport isLastPage from \"./isLastPage\";\n\nexport type PageNumberContext = {\n endIndex: Indexes;\n page: number;\n startIndex: Indexes;\n};\n\nexport const getStartPageNumber = (\n args: ConnectionInputOptions,\n { page, startIndex, resultsPerPage }: Omit<PageNumberContext, \"endIndex\"> & Omit<Context, \"entry\" | \"metadata\">,\n) => {\n if (getDirection(args.last) === \"forward\" || startIndex.absolute >= 0) {\n return page;\n }\n\n const startPageNumber = page - Math.ceil(Math.abs(startIndex.absolute) / resultsPerPage);\n return startPageNumber <= 1 ? 1 : startPageNumber;\n};\n\nexport const getEndPageNumber = (\n args: ConnectionInputOptions,\n {\n endIndex,\n metadata: { totalPages },\n page,\n resultsPerPage,\n }: Omit<PageNumberContext, \"startIndex\"> & Omit<Context, \"entry\">,\n) => {\n const indexesPerPage = resultsPerPage - 1;\n\n if (\n getDirection(args.last) === \"backward\" ||\n isLastPage({ page, totalPages }) ||\n endIndex.absolute <= indexesPerPage\n ) {\n return page;\n }\n\n const endPageNumber = page + Math.ceil((endIndex.absolute - indexesPerPage) / resultsPerPage);\n return endPageNumber >= totalPages ? totalPages : endPageNumber;\n};\n"],"file":"getStartAndEndPageNumbers.js"}
1
+ {"version":3,"sources":["../../../src/helpers/getStartAndEndPageNumbers.ts"],"names":["getDirection","isLastPage","getStartPageNumber","args","page","startIndex","resultsPerPage","last","absolute","startPageNumber","Math","ceil","abs","getEndPageNumber","endIndex","metadata","totalPages","indexesPerPage","endPageNumber"],"mappings":"AACA,OAAOA,YAAP,MAAyB,gBAAzB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAQA,OAAO,MAAMC,kBAAkB,GAAG,CAChCC,IADgC,EAEhC;AAAEC,EAAAA,IAAF;AAAQC,EAAAA,UAAR;AAAoBC,EAAAA;AAApB,CAFgC,KAG7B;AACH,MAAIN,YAAY,CAACG,IAAI,CAACI,IAAN,CAAZ,KAA4B,SAA5B,IAAyCF,UAAU,CAACG,QAAX,IAAuB,CAApE,EAAuE;AACrE,WAAOJ,IAAP;AACD;;AAED,QAAMK,eAAe,GAAGL,IAAI,GAAGM,IAAI,CAACC,IAAL,CAAUD,IAAI,CAACE,GAAL,CAASP,UAAU,CAACG,QAApB,IAAgCF,cAA1C,CAA/B;AACA,SAAOG,eAAe,IAAI,CAAnB,GAAuB,CAAvB,GAA2BA,eAAlC;AACD,CAVM;AAYP,OAAO,MAAMI,gBAAgB,GAAG,CAC9BV,IAD8B,EAE9B;AACEW,EAAAA,QADF;AAEEC,EAAAA,QAAQ,EAAE;AAAEC,IAAAA;AAAF,GAFZ;AAGEZ,EAAAA,IAHF;AAIEE,EAAAA;AAJF,CAF8B,KAQ3B;AACH,QAAMW,cAAc,GAAGX,cAAc,GAAG,CAAxC;;AAEA,MACEN,YAAY,CAACG,IAAI,CAACI,IAAN,CAAZ,KAA4B,UAA5B,IACAN,UAAU,CAAC;AAAEG,IAAAA,IAAF;AAAQY,IAAAA;AAAR,GAAD,CADV,IAEAF,QAAQ,CAACN,QAAT,IAAqBS,cAHvB,EAIE;AACA,WAAOb,IAAP;AACD;;AAED,QAAMc,aAAa,GAAGd,IAAI,GAAGM,IAAI,CAACC,IAAL,CAAU,CAACG,QAAQ,CAACN,QAAT,GAAoBS,cAArB,IAAuCX,cAAjD,CAA7B;AACA,SAAOY,aAAa,IAAIF,UAAjB,GAA8BA,UAA9B,GAA2CE,aAAlD;AACD,CArBM","sourcesContent":["import { ConnectionInputOptions, Context, Indexes } from \"../defs\";\nimport getDirection from \"./getDirection\";\nimport isLastPage from \"./isLastPage\";\n\nexport type PageNumberContext = {\n endIndex: Indexes;\n page: number;\n startIndex: Indexes;\n};\n\nexport const getStartPageNumber = (\n args: ConnectionInputOptions,\n { page, startIndex, resultsPerPage }: Omit<PageNumberContext, \"endIndex\"> & Omit<Context, \"entry\" | \"metadata\">,\n) => {\n if (getDirection(args.last) === \"forward\" || startIndex.absolute >= 0) {\n return page;\n }\n\n const startPageNumber = page - Math.ceil(Math.abs(startIndex.absolute) / resultsPerPage);\n return startPageNumber <= 1 ? 1 : startPageNumber;\n};\n\nexport const getEndPageNumber = (\n args: ConnectionInputOptions,\n {\n endIndex,\n metadata: { totalPages },\n page,\n resultsPerPage,\n }: Omit<PageNumberContext, \"startIndex\"> & Omit<Context, \"entry\">,\n) => {\n const indexesPerPage = resultsPerPage - 1;\n\n if (\n getDirection(args.last) === \"backward\" ||\n isLastPage({ page, totalPages }) ||\n endIndex.absolute <= indexesPerPage\n ) {\n return page;\n }\n\n const endPageNumber = page + Math.ceil((endIndex.absolute - indexesPerPage) / resultsPerPage);\n return endPageNumber >= totalPages ? totalPages : endPageNumber;\n};\n"],"file":"getStartAndEndPageNumbers.mjs"}
@@ -15,4 +15,4 @@ export const hasNextPage = ({
15
15
  resultsPerPage,
16
16
  totalResults
17
17
  });
18
- //# sourceMappingURL=hasPreviousNextPage.js.map
18
+ //# sourceMappingURL=hasPreviousNextPage.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/hasPreviousNextPage.ts"],"names":["getIndexesOnLastPage","hasPreviousPage","cachedEdgesByPage","startIndex","pageNumber","relative","hasNextPage","endIndex","metadata","totalPages","totalResults","resultsPerPage","length"],"mappings":"AACA,OAAOA,oBAAP,MAAiC,wBAAjC;AAcA,OAAO,MAAMC,eAAe,GAAG,CAAC;AAAEC,EAAAA,iBAAF;AAAqBC,EAAAA;AAArB,CAAD,KAC7BD,iBAAiB,CAAC,CAAD,CAAjB,CAAqBE,UAArB,KAAoC,CAApC,IAAyCD,UAAU,CAACE,QAAX,GAAsB,CAD1D;AAGP,OAAO,MAAMC,WAAW,GAAG,CAAC;AAC1BJ,EAAAA,iBAD0B;AAE1BK,EAAAA,QAF0B;AAG1BC,EAAAA,QAAQ,EAAE;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAHgB;AAI1BC,EAAAA;AAJ0B,CAAD,KAMzBT,iBAAiB,CAACA,iBAAiB,CAACU,MAAlB,GAA2B,CAA5B,CAAjB,CAAgDR,UAAhD,KAA+DK,UAA/D,IACAF,QAAQ,CAACF,QAAT,GAAoBL,oBAAoB,CAAC;AAAEW,EAAAA,cAAF;AAAkBD,EAAAA;AAAlB,CAAD,CAPnC","sourcesContent":["import { CachedEdges, CursorGroupMetadata, Indexes } from \"../defs\";\nimport getIndexesOnLastPage from \"./getIndexesOnLastPage\";\n\nexport type HasPreviousPageParams = {\n cachedEdgesByPage: CachedEdges[];\n startIndex: Indexes;\n};\n\nexport type HasNextPageParams = {\n cachedEdgesByPage: CachedEdges[];\n endIndex: Indexes;\n metadata: CursorGroupMetadata;\n resultsPerPage: number;\n};\n\nexport const hasPreviousPage = ({ cachedEdgesByPage, startIndex }: HasPreviousPageParams) =>\n cachedEdgesByPage[0].pageNumber !== 1 || startIndex.relative > 0;\n\nexport const hasNextPage = ({\n cachedEdgesByPage,\n endIndex,\n metadata: { totalPages, totalResults },\n resultsPerPage,\n}: HasNextPageParams) =>\n cachedEdgesByPage[cachedEdgesByPage.length - 1].pageNumber !== totalPages ||\n endIndex.relative < getIndexesOnLastPage({ resultsPerPage, totalResults });\n"],"file":"hasPreviousNextPage.js"}
1
+ {"version":3,"sources":["../../../src/helpers/hasPreviousNextPage.ts"],"names":["getIndexesOnLastPage","hasPreviousPage","cachedEdgesByPage","startIndex","pageNumber","relative","hasNextPage","endIndex","metadata","totalPages","totalResults","resultsPerPage","length"],"mappings":"AACA,OAAOA,oBAAP,MAAiC,wBAAjC;AAcA,OAAO,MAAMC,eAAe,GAAG,CAAC;AAAEC,EAAAA,iBAAF;AAAqBC,EAAAA;AAArB,CAAD,KAC7BD,iBAAiB,CAAC,CAAD,CAAjB,CAAqBE,UAArB,KAAoC,CAApC,IAAyCD,UAAU,CAACE,QAAX,GAAsB,CAD1D;AAGP,OAAO,MAAMC,WAAW,GAAG,CAAC;AAC1BJ,EAAAA,iBAD0B;AAE1BK,EAAAA,QAF0B;AAG1BC,EAAAA,QAAQ,EAAE;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAHgB;AAI1BC,EAAAA;AAJ0B,CAAD,KAMzBT,iBAAiB,CAACA,iBAAiB,CAACU,MAAlB,GAA2B,CAA5B,CAAjB,CAAgDR,UAAhD,KAA+DK,UAA/D,IACAF,QAAQ,CAACF,QAAT,GAAoBL,oBAAoB,CAAC;AAAEW,EAAAA,cAAF;AAAkBD,EAAAA;AAAlB,CAAD,CAPnC","sourcesContent":["import { CachedEdges, CursorGroupMetadata, Indexes } from \"../defs\";\nimport getIndexesOnLastPage from \"./getIndexesOnLastPage\";\n\nexport type HasPreviousPageParams = {\n cachedEdgesByPage: CachedEdges[];\n startIndex: Indexes;\n};\n\nexport type HasNextPageParams = {\n cachedEdgesByPage: CachedEdges[];\n endIndex: Indexes;\n metadata: CursorGroupMetadata;\n resultsPerPage: number;\n};\n\nexport const hasPreviousPage = ({ cachedEdgesByPage, startIndex }: HasPreviousPageParams) =>\n cachedEdgesByPage[0].pageNumber !== 1 || startIndex.relative > 0;\n\nexport const hasNextPage = ({\n cachedEdgesByPage,\n endIndex,\n metadata: { totalPages, totalResults },\n resultsPerPage,\n}: HasNextPageParams) =>\n cachedEdgesByPage[cachedEdgesByPage.length - 1].pageNumber !== totalPages ||\n endIndex.relative < getIndexesOnLastPage({ resultsPerPage, totalResults });\n"],"file":"hasPreviousNextPage.mjs"}
@@ -5,4 +5,4 @@ export default (({
5
5
  page
6
6
  }
7
7
  }) => direction === "backward" && page === 1 && index === 0);
8
- //# sourceMappingURL=isCursorFirst.js.map
8
+ //# sourceMappingURL=isCursorFirst.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/isCursorFirst.ts"],"names":["direction","entry","index","page"],"mappings":"AAOA,gBAAe,CAAC;AAAEA,EAAAA,SAAF;AAAaC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT;AAApB,CAAD,KAAmDH,SAAS,KAAK,UAAd,IAA4BG,IAAI,KAAK,CAArC,IAA0CD,KAAK,KAAK,CAAtH","sourcesContent":["import { CursorCacheEntry, Direction } from \"../defs\";\n\nexport type Params = {\n direction: Direction;\n entry: CursorCacheEntry;\n};\n\nexport default ({ direction, entry: { index, page } }: Params) => direction === \"backward\" && page === 1 && index === 0;\n"],"file":"isCursorFirst.js"}
1
+ {"version":3,"sources":["../../../src/helpers/isCursorFirst.ts"],"names":["direction","entry","index","page"],"mappings":"AAOA,gBAAe,CAAC;AAAEA,EAAAA,SAAF;AAAaC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT;AAApB,CAAD,KAAmDH,SAAS,KAAK,UAAd,IAA4BG,IAAI,KAAK,CAArC,IAA0CD,KAAK,KAAK,CAAtH","sourcesContent":["import { CursorCacheEntry, Direction } from \"../defs\";\n\nexport type Params = {\n direction: Direction;\n entry: CursorCacheEntry;\n};\n\nexport default ({ direction, entry: { index, page } }: Params) => direction === \"backward\" && page === 1 && index === 0;\n"],"file":"isCursorFirst.mjs"}
@@ -12,4 +12,4 @@ export default (({
12
12
  resultsPerPage,
13
13
  totalResults
14
14
  }));
15
- //# sourceMappingURL=isCursorLast.js.map
15
+ //# sourceMappingURL=isCursorLast.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/isCursorLast.ts"],"names":["getIndexesOnLastPage","direction","entry","index","page","resultsPerPage","totalPages","totalResults"],"mappings":"AACA,OAAOA,oBAAP,MAAiC,wBAAjC;AAUA,gBAAe,CAAC;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAApB;AAAqCC,EAAAA,cAArC;AAAqDC,EAAAA,UAArD;AAAiEC,EAAAA;AAAjE,CAAD,KACbN,SAAS,KAAK,SAAd,IAA2BG,IAAI,KAAKE,UAApC,IAAkDH,KAAK,KAAKH,oBAAoB,CAAC;AAAEK,EAAAA,cAAF;AAAkBE,EAAAA;AAAlB,CAAD,CADlF","sourcesContent":["import { CursorCacheEntry, Direction } from \"../defs\";\nimport getIndexesOnLastPage from \"./getIndexesOnLastPage\";\n\nexport type Params = {\n direction: Direction;\n entry: CursorCacheEntry;\n resultsPerPage: number;\n totalPages: number;\n totalResults: number;\n};\n\nexport default ({ direction, entry: { index, page }, resultsPerPage, totalPages, totalResults }: Params) =>\n direction === \"forward\" && page === totalPages && index === getIndexesOnLastPage({ resultsPerPage, totalResults });\n"],"file":"isCursorLast.js"}
1
+ {"version":3,"sources":["../../../src/helpers/isCursorLast.ts"],"names":["getIndexesOnLastPage","direction","entry","index","page","resultsPerPage","totalPages","totalResults"],"mappings":"AACA,OAAOA,oBAAP,MAAiC,wBAAjC;AAUA,gBAAe,CAAC;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAApB;AAAqCC,EAAAA,cAArC;AAAqDC,EAAAA,UAArD;AAAiEC,EAAAA;AAAjE,CAAD,KACbN,SAAS,KAAK,SAAd,IAA2BG,IAAI,KAAKE,UAApC,IAAkDH,KAAK,KAAKH,oBAAoB,CAAC;AAAEK,EAAAA,cAAF;AAAkBE,EAAAA;AAAlB,CAAD,CADlF","sourcesContent":["import { CursorCacheEntry, Direction } from \"../defs\";\nimport getIndexesOnLastPage from \"./getIndexesOnLastPage\";\n\nexport type Params = {\n direction: Direction;\n entry: CursorCacheEntry;\n resultsPerPage: number;\n totalPages: number;\n totalResults: number;\n};\n\nexport default ({ direction, entry: { index, page }, resultsPerPage, totalPages, totalResults }: Params) =>\n direction === \"forward\" && page === totalPages && index === getIndexesOnLastPage({ resultsPerPage, totalResults });\n"],"file":"isCursorLast.mjs"}
@@ -2,4 +2,4 @@ export default (({
2
2
  after,
3
3
  before
4
4
  }) => !!(after || before));
5
- //# sourceMappingURL=isCursorSupplied.js.map
5
+ //# sourceMappingURL=isCursorSupplied.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/isCursorSupplied.ts"],"names":["after","before"],"mappings":"AAEA,gBAAe,CAAC;AAAEA,EAAAA,KAAF;AAASC,EAAAA;AAAT,CAAD,KAA6D,CAAC,EAAED,KAAK,IAAIC,MAAX,CAA7E","sourcesContent":["import { ConnectionInputOptions, PlainObject } from \"../defs\";\n\nexport default ({ after, before }: PlainObject & ConnectionInputOptions) => !!(after || before);\n"],"file":"isCursorSupplied.js"}
1
+ {"version":3,"sources":["../../../src/helpers/isCursorSupplied.ts"],"names":["after","before"],"mappings":"AAEA,gBAAe,CAAC;AAAEA,EAAAA,KAAF;AAASC,EAAAA;AAAT,CAAD,KAA6D,CAAC,EAAED,KAAK,IAAIC,MAAX,CAA7E","sourcesContent":["import { ConnectionInputOptions, PlainObject } from \"../defs\";\n\nexport default ({ after, before }: PlainObject & ConnectionInputOptions) => !!(after || before);\n"],"file":"isCursorSupplied.mjs"}
@@ -0,0 +1,2 @@
1
+ export default (page => page === 1);
2
+ //# sourceMappingURL=isFirstPage.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/isFirstPage.ts"],"names":["page"],"mappings":"AAAA,gBAAgBA,IAAD,IAAkBA,IAAI,KAAK,CAA1C","sourcesContent":["export default (page: number) => page === 1;\n"],"file":"isFirstPage.js"}
1
+ {"version":3,"sources":["../../../src/helpers/isFirstPage.ts"],"names":["page"],"mappings":"AAAA,gBAAgBA,IAAD,IAAkBA,IAAI,KAAK,CAA1C","sourcesContent":["export default (page: number) => page === 1;\n"],"file":"isFirstPage.mjs"}
@@ -2,4 +2,4 @@ export default (({
2
2
  page,
3
3
  totalPages
4
4
  }) => page === totalPages);
5
- //# sourceMappingURL=isLastPage.js.map
5
+ //# sourceMappingURL=isLastPage.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/isLastPage.ts"],"names":["page","totalPages"],"mappings":"AAKA,gBAAe,CAAC;AAAEA,EAAAA,IAAF;AAAQC,EAAAA;AAAR,CAAD,KAAkCD,IAAI,KAAKC,UAA1D","sourcesContent":["export type Params = {\n page: number;\n totalPages: number;\n};\n\nexport default ({ page, totalPages }: Params) => page === totalPages;\n"],"file":"isLastPage.js"}
1
+ {"version":3,"sources":["../../../src/helpers/isLastPage.ts"],"names":["page","totalPages"],"mappings":"AAKA,gBAAe,CAAC;AAAEA,EAAAA,IAAF;AAAQC,EAAAA;AAAR,CAAD,KAAkCD,IAAI,KAAKC,UAA1D","sourcesContent":["export type Params = {\n page: number;\n totalPages: number;\n};\n\nexport default ({ page, totalPages }: Params) => page === totalPages;\n"],"file":"isLastPage.mjs"}
@@ -2,4 +2,4 @@ export default ((nodes, makeCursor) => nodes.map(node => ({
2
2
  node,
3
3
  cursor: makeCursor(node)
4
4
  })));
5
- //# sourceMappingURL=makeEdges.js.map
5
+ //# sourceMappingURL=makeEdges.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/makeEdges.ts"],"names":["nodes","makeCursor","map","node","cursor"],"mappings":"AAEA,gBAAe,CAACA,KAAD,EAAgBC,UAAhB,KACbD,KAAK,CAACE,GAAN,CAAUC,IAAI,KAAK;AAAEA,EAAAA,IAAF;AAAQC,EAAAA,MAAM,EAAEH,UAAU,CAACE,IAAD;AAA1B,CAAL,CAAd,CADF","sourcesContent":["import { Node } from \"../defs\";\n\nexport default (nodes: Node[], makeCursor: (node: Node) => string) =>\n nodes.map(node => ({ node, cursor: makeCursor(node) }));\n"],"file":"makeEdges.js"}
1
+ {"version":3,"sources":["../../../src/helpers/makeEdges.ts"],"names":["nodes","makeCursor","map","node","cursor"],"mappings":"AAEA,gBAAe,CAACA,KAAD,EAAgBC,UAAhB,KACbD,KAAK,CAACE,GAAN,CAAUC,IAAI,KAAK;AAAEA,EAAAA,IAAF;AAAQC,EAAAA,MAAM,EAAEH,UAAU,CAACE,IAAD;AAA1B,CAAL,CAAd,CADF","sourcesContent":["import { Node } from \"../defs\";\n\nexport default (nodes: Node[], makeCursor: (node: Node) => string) =>\n nodes.map(node => ({ node, cursor: makeCursor(node) }));\n"],"file":"makeEdges.mjs"}
@@ -22,4 +22,4 @@ export default ((args, {
22
22
  page: 1
23
23
  };
24
24
  });
25
- //# sourceMappingURL=makeEntry.js.map
25
+ //# sourceMappingURL=makeEntry.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/makeEntry.ts"],"names":["getDirection","getIndexesOnLastPage","args","metadata","totalPages","totalResults","resultsPerPage","last","index","page"],"mappings":"AACA,OAAOA,YAAP,MAAyB,gBAAzB;AACA,OAAOC,oBAAP,MAAiC,wBAAjC;AAOA,gBAAe,CAACC,IAAD,EAA+B;AAAEC,EAAAA,QAAQ,EAAE;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAZ;AAA0CC,EAAAA;AAA1C,CAA/B,KAAuG;AACpH,MAAIN,YAAY,CAACE,IAAI,CAACK,IAAN,CAAZ,KAA4B,UAAhC,EAA4C;AAC1C,WAAO;AAAEC,MAAAA,KAAK,EAAEP,oBAAoB,CAAC;AAAEK,QAAAA,cAAF;AAAkBD,QAAAA;AAAlB,OAAD,CAApB,GAAyD,CAAlE;AAAqEI,MAAAA,IAAI,EAAEL;AAA3E,KAAP;AACD;;AAED,SAAO;AAAEI,IAAAA,KAAK,EAAE,CAAC,CAAV;AAAaC,IAAAA,IAAI,EAAE;AAAnB,GAAP;AACD,CAND","sourcesContent":["import { ConnectionInputOptions, CursorGroupMetadata } from \"..\";\nimport getDirection from \"./getDirection\";\nimport getIndexesOnLastPage from \"./getIndexesOnLastPage\";\n\nexport type Context = {\n metadata: CursorGroupMetadata;\n resultsPerPage: number;\n};\n\nexport default (args: ConnectionInputOptions, { metadata: { totalPages, totalResults }, resultsPerPage }: Context) => {\n if (getDirection(args.last) === \"backward\") {\n return { index: getIndexesOnLastPage({ resultsPerPage, totalResults }) + 1, page: totalPages };\n }\n\n return { index: -1, page: 1 };\n};\n"],"file":"makeEntry.js"}
1
+ {"version":3,"sources":["../../../src/helpers/makeEntry.ts"],"names":["getDirection","getIndexesOnLastPage","args","metadata","totalPages","totalResults","resultsPerPage","last","index","page"],"mappings":"AACA,OAAOA,YAAP,MAAyB,gBAAzB;AACA,OAAOC,oBAAP,MAAiC,wBAAjC;AAOA,gBAAe,CAACC,IAAD,EAA+B;AAAEC,EAAAA,QAAQ,EAAE;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAZ;AAA0CC,EAAAA;AAA1C,CAA/B,KAAuG;AACpH,MAAIN,YAAY,CAACE,IAAI,CAACK,IAAN,CAAZ,KAA4B,UAAhC,EAA4C;AAC1C,WAAO;AAAEC,MAAAA,KAAK,EAAEP,oBAAoB,CAAC;AAAEK,QAAAA,cAAF;AAAkBD,QAAAA;AAAlB,OAAD,CAApB,GAAyD,CAAlE;AAAqEI,MAAAA,IAAI,EAAEL;AAA3E,KAAP;AACD;;AAED,SAAO;AAAEI,IAAAA,KAAK,EAAE,CAAC,CAAV;AAAaC,IAAAA,IAAI,EAAE;AAAnB,GAAP;AACD,CAND","sourcesContent":["import { ConnectionInputOptions, CursorGroupMetadata } from \"..\";\nimport getDirection from \"./getDirection\";\nimport getIndexesOnLastPage from \"./getIndexesOnLastPage\";\n\nexport type Context = {\n metadata: CursorGroupMetadata;\n resultsPerPage: number;\n};\n\nexport default (args: ConnectionInputOptions, { metadata: { totalPages, totalResults }, resultsPerPage }: Context) => {\n if (getDirection(args.last) === \"backward\") {\n return { index: getIndexesOnLastPage({ resultsPerPage, totalResults }) + 1, page: totalPages };\n }\n\n return { index: -1, page: 1 };\n};\n"],"file":"makeEntry.mjs"}
@@ -9,4 +9,4 @@ export default ((cachedEdges, missingCachedEdges) => cachedEdges.reduce((mergedC
9
9
 
10
10
  return [...mergedCachedEdges, cachedEdge];
11
11
  }, []));
12
- //# sourceMappingURL=mergeCachedEdges.js.map
12
+ //# sourceMappingURL=mergeCachedEdges.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/mergeCachedEdges.ts"],"names":["cachedEdges","missingCachedEdges","reduce","mergedCachedEdges","cachedEdge","edges","length","missingCachedEdge","find","missing","pageNumber"],"mappings":"AAEA,gBAAe,CAACA,WAAD,EAA6BC,kBAA7B,KACbD,WAAW,CAACE,MAAZ,CAAmB,CAACC,iBAAD,EAAoBC,UAApB,KAAmC;AACpD,MAAI,CAACA,UAAU,CAACC,KAAX,CAAiBC,MAAtB,EAA8B;AAC5B,UAAMC,iBAAiB,GAAGN,kBAAkB,CAACO,IAAnB,CAAwBC,OAAO,IAAIA,OAAO,CAACC,UAAR,KAAuBN,UAAU,CAACM,UAArE,CAA1B;;AAEA,QAAIH,iBAAJ,EAAuB;AACrB,aAAO,CAAC,GAAGJ,iBAAJ,EAAuBI,iBAAvB,CAAP;AACD;AACF;;AAED,SAAO,CAAC,GAAGJ,iBAAJ,EAAuBC,UAAvB,CAAP;AACD,CAVD,EAUG,EAVH,CADF","sourcesContent":["import { CachedEdges } from \"../defs\";\n\nexport default (cachedEdges: CachedEdges[], missingCachedEdges: CachedEdges[]) =>\n cachedEdges.reduce((mergedCachedEdges, cachedEdge) => {\n if (!cachedEdge.edges.length) {\n const missingCachedEdge = missingCachedEdges.find(missing => missing.pageNumber === cachedEdge.pageNumber);\n\n if (missingCachedEdge) {\n return [...mergedCachedEdges, missingCachedEdge];\n }\n }\n\n return [...mergedCachedEdges, cachedEdge];\n }, [] as CachedEdges[]);\n"],"file":"mergeCachedEdges.js"}
1
+ {"version":3,"sources":["../../../src/helpers/mergeCachedEdges.ts"],"names":["cachedEdges","missingCachedEdges","reduce","mergedCachedEdges","cachedEdge","edges","length","missingCachedEdge","find","missing","pageNumber"],"mappings":"AAEA,gBAAe,CAACA,WAAD,EAA6BC,kBAA7B,KACbD,WAAW,CAACE,MAAZ,CAAmB,CAACC,iBAAD,EAAoBC,UAApB,KAAmC;AACpD,MAAI,CAACA,UAAU,CAACC,KAAX,CAAiBC,MAAtB,EAA8B;AAC5B,UAAMC,iBAAiB,GAAGN,kBAAkB,CAACO,IAAnB,CAAwBC,OAAO,IAAIA,OAAO,CAACC,UAAR,KAAuBN,UAAU,CAACM,UAArE,CAA1B;;AAEA,QAAIH,iBAAJ,EAAuB;AACrB,aAAO,CAAC,GAAGJ,iBAAJ,EAAuBI,iBAAvB,CAAP;AACD;AACF;;AAED,SAAO,CAAC,GAAGJ,iBAAJ,EAAuBC,UAAvB,CAAP;AACD,CAVD,EAUG,EAVH,CADF","sourcesContent":["import { CachedEdges } from \"../defs\";\n\nexport default (cachedEdges: CachedEdges[], missingCachedEdges: CachedEdges[]) =>\n cachedEdges.reduce((mergedCachedEdges, cachedEdge) => {\n if (!cachedEdge.edges.length) {\n const missingCachedEdge = missingCachedEdges.find(missing => missing.pageNumber === cachedEdge.pageNumber);\n\n if (missingCachedEdge) {\n return [...mergedCachedEdges, missingCachedEdge];\n }\n }\n\n return [...mergedCachedEdges, cachedEdge];\n }, [] as CachedEdges[]);\n"],"file":"mergeCachedEdges.mjs"}
@@ -1,4 +1,4 @@
1
1
  import _pickBy from "lodash/pickBy";
2
2
  const connectionInputOptions = ["after", "before", "first", "last"];
3
3
  export default (args => _pickBy(args, (_value, key) => !connectionInputOptions.includes(key)));
4
- //# sourceMappingURL=removeConnectionInputOptions.js.map
4
+ //# sourceMappingURL=removeConnectionInputOptions.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/removeConnectionInputOptions.ts"],"names":["connectionInputOptions","args","_value","key","includes"],"mappings":";AAEA,MAAMA,sBAAsB,GAAG,CAAC,OAAD,EAAU,QAAV,EAAoB,OAApB,EAA6B,MAA7B,CAA/B;AAEA,gBAAkCC,IAAnB,IAA+B,QAAOA,IAAP,EAAa,CAACC,MAAD,EAASC,GAAT,KAAiB,CAACH,sBAAsB,CAACI,QAAvB,CAAgCD,GAAhC,CAA/B,CAA9C","sourcesContent":["import { pickBy } from \"lodash\";\n\nconst connectionInputOptions = [\"after\", \"before\", \"first\", \"last\"];\n\nexport default <O extends object>(args: O) => pickBy(args, (_value, key) => !connectionInputOptions.includes(key));\n"],"file":"removeConnectionInputOptions.js"}
1
+ {"version":3,"sources":["../../../src/helpers/removeConnectionInputOptions.ts"],"names":["connectionInputOptions","args","_value","key","includes"],"mappings":";AAEA,MAAMA,sBAAsB,GAAG,CAAC,OAAD,EAAU,QAAV,EAAoB,OAApB,EAA6B,MAA7B,CAA/B;AAEA,gBAAkCC,IAAnB,IAA+B,QAAOA,IAAP,EAAa,CAACC,MAAD,EAASC,GAAT,KAAiB,CAACH,sBAAsB,CAACI,QAAvB,CAAgCD,GAAhC,CAA/B,CAA9C","sourcesContent":["import { pickBy } from \"lodash\";\n\nconst connectionInputOptions = [\"after\", \"before\", \"first\", \"last\"];\n\nexport default <O extends object>(args: O) => pickBy(args, (_value, key) => !connectionInputOptions.includes(key));\n"],"file":"removeConnectionInputOptions.mjs"}
@@ -51,4 +51,4 @@ const requestAndCachePages = async (pages, {
51
51
  };
52
52
 
53
53
  export default requestAndCachePages;
54
- //# sourceMappingURL=requestAndCachePages.js.map
54
+ //# sourceMappingURL=requestAndCachePages.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/requestAndCachePages.ts"],"names":["cacheCursors","makeEdges","requestAndCachePages","pages","cursorCache","getters","groupCursor","makeIDCursor","resourceResolver","errors","cachedEdges","Promise","all","map","page","data","pageResultData","pageResultErrors","headers","pageResultHeaders","length","edges","nodes","node","id","group","totalPages","totalResults","pageNumber","push"],"mappings":";AAEA,OAAOA,YAAP,MAAyB,gBAAzB;AACA,OAAOC,SAAP,MAAsB,aAAtB;;AAUA,MAAMC,oBAAoB,GAAG,OAC3BC,KAD2B,EAE3B;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,OAAf;AAAwBC,EAAAA,WAAxB;AAAqCC,EAAAA,YAArC;AAAmDC,EAAAA;AAAnD,CAF2B,KAGxB;AACH,QAAMC,MAAe,GAAG,EAAxB;AAEA,QAAMC,WAAW,GAAG,MAAMC,OAAO,CAACC,GAAR,CACxBT,KAAK,CAACU,GAAN,CAAU,MAAMC,IAAN,IAAc;AACtB,UAAM;AAAEC,MAAAA,IAAI,EAAEC,cAAR;AAAwBP,MAAAA,MAAM,EAAEQ,gBAAhC;AAAkDC,MAAAA,OAAO,EAAEC;AAA3D,QAAiF,MAAMX,gBAAgB,CAAC;AAC5GM,MAAAA;AAD4G,KAAD,CAA7G;;AAIA,QAAIE,cAAc,IAAI,EAACC,gBAAD,aAACA,gBAAD,eAACA,gBAAgB,CAAEG,MAAnB,CAAtB,EAAiD;AAC/C,YAAMC,KAAK,GAAGpB,SAAS,CAACI,OAAO,CAACiB,KAAR,CAAcN,cAAd,CAAD,EAAgCO,IAAI,IAAIhB,YAAY,CAACgB,IAAI,CAACC,EAAN,CAApD,CAAvB;AAEA,YAAMxB,YAAY,CAACI,WAAD,EAAc;AAC9BiB,QAAAA,KAD8B;AAE9BI,QAAAA,KAAK,EAAEnB,WAFuB;AAG9BY,QAAAA,OAAO,EAAEC,iBAHqB;AAI9BL,QAAAA,IAJ8B;AAK9BY,QAAAA,UAAU,EAAErB,OAAO,CAACqB,UAAR,CAAmBV,cAAnB,CALkB;AAM9BW,QAAAA,YAAY,EAAEtB,OAAO,CAACsB,YAAR,CAAqBX,cAArB;AANgB,OAAd,CAAlB;AASA,aAAO;AAAEK,QAAAA,KAAF;AAASO,QAAAA,UAAU,EAAEd;AAArB,OAAP;AACD;;AAED,QAAIG,gBAAJ,aAAIA,gBAAJ,eAAIA,gBAAgB,CAAEG,MAAtB,EAA8B;AAC5BX,MAAAA,MAAM,CAACoB,IAAP,CAAY,GAAGZ,gBAAf;AACD;;AAED,WAAO;AAAEI,MAAAA,KAAK,EAAE,EAAT;AAAaO,MAAAA,UAAU,EAAEd;AAAzB,KAAP;AACD,GAzBD,CADwB,CAA1B;AA6BA,SAAO;AAAEJ,IAAAA,WAAF;AAAeD,IAAAA;AAAf,GAAP;AACD,CApCD;;AAsCA,eAAeP,oBAAf","sourcesContent":["import Cachemap from \"@cachemap/core\";\nimport { Getters, Node, PlainObject, ResourceResolver } from \"../defs\";\nimport cacheCursors from \"./cacheCursors\";\nimport makeEdges from \"./makeEdges\";\n\nexport type Context<Resource extends PlainObject, ResourceNode extends Node> = {\n cursorCache: Cachemap;\n getters: Getters<Resource, ResourceNode>;\n groupCursor: string;\n makeIDCursor: (id: string | number) => string;\n resourceResolver: ResourceResolver<Resource>;\n};\n\nconst requestAndCachePages = async <Resource extends PlainObject, ResourceNode extends Node>(\n pages: number[],\n { cursorCache, getters, groupCursor, makeIDCursor, resourceResolver }: Context<Resource, ResourceNode>,\n) => {\n const errors: Error[] = [];\n\n const cachedEdges = await Promise.all(\n pages.map(async page => {\n const { data: pageResultData, errors: pageResultErrors, headers: pageResultHeaders } = await resourceResolver({\n page,\n });\n\n if (pageResultData && !pageResultErrors?.length) {\n const edges = makeEdges(getters.nodes(pageResultData), node => makeIDCursor(node.id));\n\n await cacheCursors(cursorCache, {\n edges,\n group: groupCursor,\n headers: pageResultHeaders,\n page,\n totalPages: getters.totalPages(pageResultData),\n totalResults: getters.totalResults(pageResultData),\n });\n\n return { edges, pageNumber: page };\n }\n\n if (pageResultErrors?.length) {\n errors.push(...pageResultErrors);\n }\n\n return { edges: [], pageNumber: page };\n }),\n );\n\n return { cachedEdges, errors };\n};\n\nexport default requestAndCachePages;\n"],"file":"requestAndCachePages.js"}
1
+ {"version":3,"sources":["../../../src/helpers/requestAndCachePages.ts"],"names":["cacheCursors","makeEdges","requestAndCachePages","pages","cursorCache","getters","groupCursor","makeIDCursor","resourceResolver","errors","cachedEdges","Promise","all","map","page","data","pageResultData","pageResultErrors","headers","pageResultHeaders","length","edges","nodes","node","id","group","totalPages","totalResults","pageNumber","push"],"mappings":";AAEA,OAAOA,YAAP,MAAyB,gBAAzB;AACA,OAAOC,SAAP,MAAsB,aAAtB;;AAUA,MAAMC,oBAAoB,GAAG,OAC3BC,KAD2B,EAE3B;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,OAAf;AAAwBC,EAAAA,WAAxB;AAAqCC,EAAAA,YAArC;AAAmDC,EAAAA;AAAnD,CAF2B,KAGxB;AACH,QAAMC,MAAe,GAAG,EAAxB;AAEA,QAAMC,WAAW,GAAG,MAAMC,OAAO,CAACC,GAAR,CACxBT,KAAK,CAACU,GAAN,CAAU,MAAMC,IAAN,IAAc;AACtB,UAAM;AAAEC,MAAAA,IAAI,EAAEC,cAAR;AAAwBP,MAAAA,MAAM,EAAEQ,gBAAhC;AAAkDC,MAAAA,OAAO,EAAEC;AAA3D,QAAiF,MAAMX,gBAAgB,CAAC;AAC5GM,MAAAA;AAD4G,KAAD,CAA7G;;AAIA,QAAIE,cAAc,IAAI,EAACC,gBAAD,aAACA,gBAAD,eAACA,gBAAgB,CAAEG,MAAnB,CAAtB,EAAiD;AAC/C,YAAMC,KAAK,GAAGpB,SAAS,CAACI,OAAO,CAACiB,KAAR,CAAcN,cAAd,CAAD,EAAgCO,IAAI,IAAIhB,YAAY,CAACgB,IAAI,CAACC,EAAN,CAApD,CAAvB;AAEA,YAAMxB,YAAY,CAACI,WAAD,EAAc;AAC9BiB,QAAAA,KAD8B;AAE9BI,QAAAA,KAAK,EAAEnB,WAFuB;AAG9BY,QAAAA,OAAO,EAAEC,iBAHqB;AAI9BL,QAAAA,IAJ8B;AAK9BY,QAAAA,UAAU,EAAErB,OAAO,CAACqB,UAAR,CAAmBV,cAAnB,CALkB;AAM9BW,QAAAA,YAAY,EAAEtB,OAAO,CAACsB,YAAR,CAAqBX,cAArB;AANgB,OAAd,CAAlB;AASA,aAAO;AAAEK,QAAAA,KAAF;AAASO,QAAAA,UAAU,EAAEd;AAArB,OAAP;AACD;;AAED,QAAIG,gBAAJ,aAAIA,gBAAJ,eAAIA,gBAAgB,CAAEG,MAAtB,EAA8B;AAC5BX,MAAAA,MAAM,CAACoB,IAAP,CAAY,GAAGZ,gBAAf;AACD;;AAED,WAAO;AAAEI,MAAAA,KAAK,EAAE,EAAT;AAAaO,MAAAA,UAAU,EAAEd;AAAzB,KAAP;AACD,GAzBD,CADwB,CAA1B;AA6BA,SAAO;AAAEJ,IAAAA,WAAF;AAAeD,IAAAA;AAAf,GAAP;AACD,CApCD;;AAsCA,eAAeP,oBAAf","sourcesContent":["import Cachemap from \"@cachemap/core\";\nimport { Getters, Node, PlainObject, ResourceResolver } from \"../defs\";\nimport cacheCursors from \"./cacheCursors\";\nimport makeEdges from \"./makeEdges\";\n\nexport type Context<Resource extends PlainObject, ResourceNode extends Node> = {\n cursorCache: Cachemap;\n getters: Getters<Resource, ResourceNode>;\n groupCursor: string;\n makeIDCursor: (id: string | number) => string;\n resourceResolver: ResourceResolver<Resource>;\n};\n\nconst requestAndCachePages = async <Resource extends PlainObject, ResourceNode extends Node>(\n pages: number[],\n { cursorCache, getters, groupCursor, makeIDCursor, resourceResolver }: Context<Resource, ResourceNode>,\n) => {\n const errors: Error[] = [];\n\n const cachedEdges = await Promise.all(\n pages.map(async page => {\n const { data: pageResultData, errors: pageResultErrors, headers: pageResultHeaders } = await resourceResolver({\n page,\n });\n\n if (pageResultData && !pageResultErrors?.length) {\n const edges = makeEdges(getters.nodes(pageResultData), node => makeIDCursor(node.id));\n\n await cacheCursors(cursorCache, {\n edges,\n group: groupCursor,\n headers: pageResultHeaders,\n page,\n totalPages: getters.totalPages(pageResultData),\n totalResults: getters.totalResults(pageResultData),\n });\n\n return { edges, pageNumber: page };\n }\n\n if (pageResultErrors?.length) {\n errors.push(...pageResultErrors);\n }\n\n return { edges: [], pageNumber: page };\n }),\n );\n\n return { cachedEdges, errors };\n};\n\nexport default requestAndCachePages;\n"],"file":"requestAndCachePages.mjs"}
@@ -54,4 +54,4 @@ export default (async ({
54
54
  pageResults
55
55
  };
56
56
  });
57
- //# sourceMappingURL=requestOutstandingPages.js.map
57
+ //# sourceMappingURL=requestOutstandingPages.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/requestOutstandingPages.ts"],"names":["count","direction","page","results","resultsPerPage","totalPages","totalResults","requestCallback","resultsOnLastPage","outstanding","toRequest","Math","ceil","promises","i","push","nextPage","missingPages","pageResults","Promise","allSettled","reduce","pages","status","rest","value"],"mappings":";AAYA,gBAAe,OACb;AAAEA,EAAAA,KAAF;AAASC,EAAAA,SAAT;AAAoBC,EAAAA,IAApB;AAA0BC,EAAAA,OAA1B;AAAmCC,EAAAA,cAAnC;AAAmDC,EAAAA,UAAnD;AAA+DC,EAAAA;AAA/D,CADa,EAEbC,eAFa,KAGV;AACH,QAAMC,iBAAiB,GAAGF,YAAY,GAAGD,UAAzC;AACA,QAAMI,WAAW,GAAGT,KAAK,GAAGG,OAA5B;AACA,MAAIO,SAAJ;;AAEA,MAAIT,SAAS,KAAK,SAAlB,EAA6B;AAC3BS,IAAAA,SAAS,GAAGC,IAAI,CAACC,IAAL,CAAUH,WAAW,GAAGL,cAAxB,CAAZ;AACD,GAFD,MAEO;AACL,QAAIF,IAAI,KAAKG,UAAb,EAAyB;AACvB,UAAIL,KAAK,IAAIQ,iBAAb,EAAgC;AAC9BE,QAAAA,SAAS,GAAG,CAAZ;AACD,OAFD,MAEO;AACLA,QAAAA,SAAS,GAAGC,IAAI,CAACC,IAAL,CAAUZ,KAAK,GAAGQ,iBAAiB,GAAGJ,cAAtC,IAAwD,CAApE;AACD;AACF,KAND,MAMO;AACLM,MAAAA,SAAS,GAAGC,IAAI,CAACC,IAAL,CAAUH,WAAW,GAAGL,cAAxB,CAAZ;AACD;AACF;;AAED,QAAMS,QAAQ,GAAG,EAAjB;;AAEA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,SAApB,EAA+BI,CAAC,IAAI,CAApC,EAAuC;AACrCD,IAAAA,QAAQ,CAACE,IAAT,CAAcR,eAAe,CAAC;AAAES,MAAAA,QAAQ,EAAEf,SAAS,KAAK,SAAd,GAA0BC,IAAI,GAAGY,CAAjC,GAAqCZ,IAAI,GAAGY;AAAxD,KAAD,CAA7B;AACD;;AAED,QAAMG,YAAsB,GAAG,EAA/B;AAEA,QAAMC,WAAW,GAAG,CAAC,MAAMC,OAAO,CAACC,UAAR,CAAmBP,QAAnB,CAAP,EAAqCQ,MAArC,CAA4C,CAACC,KAAD,EAAQ;AAAEC,IAAAA,MAAF;AAAU,OAAGC;AAAb,GAAR,EAA6BV,CAA7B,KAAmC;AACjG,QAAIS,MAAM,KAAK,WAAf,EAA4B;AAC1BD,MAAAA,KAAK,CAACP,IAAN,CAAYS,IAAD,CAAyBC,KAApC;AACD;;AAED,QAAIF,MAAM,KAAK,UAAf,EAA2B;AACzBN,MAAAA,YAAY,CAACF,IAAb,CAAkBd,SAAS,KAAK,SAAd,GAA0BC,IAAI,GAAGY,CAAjC,GAAqCZ,IAAI,GAAGY,CAA9D;AACD;;AAED,WAAOQ,KAAP;AACD,GAVmB,EAUjB,EAViB,CAApB;AAYA,SAAO;AACLL,IAAAA,YADK;AAELC,IAAAA;AAFK,GAAP;AAID,CA9CD","sourcesContent":["export type RequestMissingPagesParams = {\n count: number;\n direction: \"forward\" | \"backward\";\n page: number;\n results: number;\n resultsPerPage: number;\n totalPages: number;\n totalResults: number;\n};\n\nexport type RequestMissingPagesCallback = (params: { nextPage: number }) => Promise<any>;\n\nexport default async (\n { count, direction, page, results, resultsPerPage, totalPages, totalResults }: RequestMissingPagesParams,\n requestCallback: RequestMissingPagesCallback,\n) => {\n const resultsOnLastPage = totalResults % totalPages;\n const outstanding = count - results;\n let toRequest: number;\n\n if (direction === \"forward\") {\n toRequest = Math.ceil(outstanding / resultsPerPage);\n } else {\n if (page === totalPages) {\n if (count <= resultsOnLastPage) {\n toRequest = 1;\n } else {\n toRequest = Math.ceil(count - resultsOnLastPage / resultsPerPage) + 1;\n }\n } else {\n toRequest = Math.ceil(outstanding / resultsPerPage);\n }\n }\n\n const promises = [];\n\n for (let i = 0; i < toRequest; i += 1) {\n promises.push(requestCallback({ nextPage: direction === \"forward\" ? page + i : page - i }));\n }\n\n const missingPages: number[] = [];\n\n const pageResults = (await Promise.allSettled(promises)).reduce((pages, { status, ...rest }, i) => {\n if (status === \"fulfilled\") {\n pages.push((rest as { value: any }).value);\n }\n\n if (status === \"rejected\") {\n missingPages.push(direction === \"forward\" ? page + i : page - i);\n }\n\n return pages;\n }, [] as any[]);\n\n return {\n missingPages,\n pageResults,\n };\n};\n"],"file":"requestOutstandingPages.js"}
1
+ {"version":3,"sources":["../../../src/helpers/requestOutstandingPages.ts"],"names":["count","direction","page","results","resultsPerPage","totalPages","totalResults","requestCallback","resultsOnLastPage","outstanding","toRequest","Math","ceil","promises","i","push","nextPage","missingPages","pageResults","Promise","allSettled","reduce","pages","status","rest","value"],"mappings":";AAYA,gBAAe,OACb;AAAEA,EAAAA,KAAF;AAASC,EAAAA,SAAT;AAAoBC,EAAAA,IAApB;AAA0BC,EAAAA,OAA1B;AAAmCC,EAAAA,cAAnC;AAAmDC,EAAAA,UAAnD;AAA+DC,EAAAA;AAA/D,CADa,EAEbC,eAFa,KAGV;AACH,QAAMC,iBAAiB,GAAGF,YAAY,GAAGD,UAAzC;AACA,QAAMI,WAAW,GAAGT,KAAK,GAAGG,OAA5B;AACA,MAAIO,SAAJ;;AAEA,MAAIT,SAAS,KAAK,SAAlB,EAA6B;AAC3BS,IAAAA,SAAS,GAAGC,IAAI,CAACC,IAAL,CAAUH,WAAW,GAAGL,cAAxB,CAAZ;AACD,GAFD,MAEO;AACL,QAAIF,IAAI,KAAKG,UAAb,EAAyB;AACvB,UAAIL,KAAK,IAAIQ,iBAAb,EAAgC;AAC9BE,QAAAA,SAAS,GAAG,CAAZ;AACD,OAFD,MAEO;AACLA,QAAAA,SAAS,GAAGC,IAAI,CAACC,IAAL,CAAUZ,KAAK,GAAGQ,iBAAiB,GAAGJ,cAAtC,IAAwD,CAApE;AACD;AACF,KAND,MAMO;AACLM,MAAAA,SAAS,GAAGC,IAAI,CAACC,IAAL,CAAUH,WAAW,GAAGL,cAAxB,CAAZ;AACD;AACF;;AAED,QAAMS,QAAQ,GAAG,EAAjB;;AAEA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,SAApB,EAA+BI,CAAC,IAAI,CAApC,EAAuC;AACrCD,IAAAA,QAAQ,CAACE,IAAT,CAAcR,eAAe,CAAC;AAAES,MAAAA,QAAQ,EAAEf,SAAS,KAAK,SAAd,GAA0BC,IAAI,GAAGY,CAAjC,GAAqCZ,IAAI,GAAGY;AAAxD,KAAD,CAA7B;AACD;;AAED,QAAMG,YAAsB,GAAG,EAA/B;AAEA,QAAMC,WAAW,GAAG,CAAC,MAAMC,OAAO,CAACC,UAAR,CAAmBP,QAAnB,CAAP,EAAqCQ,MAArC,CAA4C,CAACC,KAAD,EAAQ;AAAEC,IAAAA,MAAF;AAAU,OAAGC;AAAb,GAAR,EAA6BV,CAA7B,KAAmC;AACjG,QAAIS,MAAM,KAAK,WAAf,EAA4B;AAC1BD,MAAAA,KAAK,CAACP,IAAN,CAAYS,IAAD,CAAyBC,KAApC;AACD;;AAED,QAAIF,MAAM,KAAK,UAAf,EAA2B;AACzBN,MAAAA,YAAY,CAACF,IAAb,CAAkBd,SAAS,KAAK,SAAd,GAA0BC,IAAI,GAAGY,CAAjC,GAAqCZ,IAAI,GAAGY,CAA9D;AACD;;AAED,WAAOQ,KAAP;AACD,GAVmB,EAUjB,EAViB,CAApB;AAYA,SAAO;AACLL,IAAAA,YADK;AAELC,IAAAA;AAFK,GAAP;AAID,CA9CD","sourcesContent":["export type RequestMissingPagesParams = {\n count: number;\n direction: \"forward\" | \"backward\";\n page: number;\n results: number;\n resultsPerPage: number;\n totalPages: number;\n totalResults: number;\n};\n\nexport type RequestMissingPagesCallback = (params: { nextPage: number }) => Promise<any>;\n\nexport default async (\n { count, direction, page, results, resultsPerPage, totalPages, totalResults }: RequestMissingPagesParams,\n requestCallback: RequestMissingPagesCallback,\n) => {\n const resultsOnLastPage = totalResults % totalPages;\n const outstanding = count - results;\n let toRequest: number;\n\n if (direction === \"forward\") {\n toRequest = Math.ceil(outstanding / resultsPerPage);\n } else {\n if (page === totalPages) {\n if (count <= resultsOnLastPage) {\n toRequest = 1;\n } else {\n toRequest = Math.ceil(count - resultsOnLastPage / resultsPerPage) + 1;\n }\n } else {\n toRequest = Math.ceil(outstanding / resultsPerPage);\n }\n }\n\n const promises = [];\n\n for (let i = 0; i < toRequest; i += 1) {\n promises.push(requestCallback({ nextPage: direction === \"forward\" ? page + i : page - i }));\n }\n\n const missingPages: number[] = [];\n\n const pageResults = (await Promise.allSettled(promises)).reduce((pages, { status, ...rest }, i) => {\n if (status === \"fulfilled\") {\n pages.push((rest as { value: any }).value);\n }\n\n if (status === \"rejected\") {\n missingPages.push(direction === \"forward\" ? page + i : page - i);\n }\n\n return pages;\n }, [] as any[]);\n\n return {\n missingPages,\n pageResults,\n };\n};\n"],"file":"requestOutstandingPages.mjs"}
@@ -75,4 +75,4 @@ const resolveConnection = async (args, {
75
75
  };
76
76
 
77
77
  export default resolveConnection;
78
- //# sourceMappingURL=resolveConnection.js.map
78
+ //# sourceMappingURL=resolveConnection.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/resolveConnection.ts"],"names":["extractEdges","extractNodes","getInRangeCachedEdges","getEndCursor","getStartCursor","mergeCachedEdges","requestAndCachePages","retrieveCachedConnection","resolveConnection","args","cursorCache","getters","groupCursor","makeIDCursor","resourceResolver","resultsPerPage","cachedEdges","hasNextPage","hasPreviousPage","indexes","missingPages","totalResults","length","edges","errors","nodes","pageInfo","endCursor","startCursor","totalCount","missingCachedEdges","mergedCachedEdges","endIndex","end","startIndex","start"],"mappings":";AAEA,OAAOA,YAAP,MAAyB,gBAAzB;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,OAAOC,qBAAP,MAAkC,yBAAlC;AACA,SAASC,YAAT,EAAuBC,cAAvB,QAA6C,yBAA7C;AACA,OAAOC,gBAAP,MAA6B,oBAA7B;AACA,OAAOC,oBAAP,MAAiC,wBAAjC;AACA,OAAOC,wBAAP,MAAqC,4BAArC;;AAWA,MAAMC,iBAAiB,GAAG,OACxBC,IADwB,EAExB;AACEC,EAAAA,WADF;AAEEC,EAAAA,OAFF;AAGEC,EAAAA,WAHF;AAIEC,EAAAA,YAJF;AAKEC,EAAAA,gBALF;AAMEC,EAAAA;AANF,CAFwB,KAUrB;AACH,QAAM;AACJC,IAAAA,WADI;AAEJC,IAAAA,WAFI;AAGJC,IAAAA,eAHI;AAIJC,IAAAA,OAJI;AAKJC,IAAAA,YALI;AAMJC,IAAAA;AANI,MAOF,MAAMd,wBAAwB,CAACE,IAAD,EAAO;AACvCC,IAAAA,WADuC;AAEvCE,IAAAA,WAFuC;AAGvCG,IAAAA;AAHuC,GAAP,CAPlC;;AAaA,MAAI,CAACK,YAAY,CAACE,MAAlB,EAA0B;AACxB,UAAMC,KAAK,GAAGvB,YAAY,CAACgB,WAAD,CAA1B;AAEA,WAAO;AACLO,MAAAA,KADK;AAELC,MAAAA,MAAM,EAAE,EAFH;AAGLC,MAAAA,KAAK,EAAExB,YAAY,CAACsB,KAAD,CAHd;AAILG,MAAAA,QAAQ,EAAE;AACRC,QAAAA,SAAS,EAAExB,YAAY,CAACoB,KAAD,CADf;AAERN,QAAAA,WAFQ;AAGRC,QAAAA,eAHQ;AAIRU,QAAAA,WAAW,EAAExB,cAAc,CAACmB,KAAD;AAJnB,OAJL;AAULM,MAAAA,UAAU,EAAER;AAVP,KAAP;AAYD;;AAED,QAAM;AAAEL,IAAAA,WAAW,EAAEc,kBAAf;AAAmCN,IAAAA;AAAnC,MAA8C,MAAMlB,oBAAoB,CAAyBc,YAAzB,EAAuC;AACnHV,IAAAA,WADmH;AAEnHC,IAAAA,OAFmH;AAGnHC,IAAAA,WAHmH;AAInHC,IAAAA,YAJmH;AAKnHC,IAAAA;AALmH,GAAvC,CAA9E;AAQA,QAAMiB,iBAAiB,GAAG7B,qBAAqB,CAACG,gBAAgB,CAACW,WAAD,EAAcc,kBAAd,CAAjB,EAAoD;AACjGE,IAAAA,QAAQ,EAAEb,OAAO,CAACc,GAD+E;AAEjGlB,IAAAA,cAFiG;AAGjGmB,IAAAA,UAAU,EAAEf,OAAO,CAACgB;AAH6E,GAApD,CAA/C;AAMA,QAAMZ,KAAK,GAAGvB,YAAY,CAAC+B,iBAAD,CAA1B;AAEA,SAAO;AACLR,IAAAA,KADK;AAELC,IAAAA,MAFK;AAGLC,IAAAA,KAAK,EAAExB,YAAY,CAACsB,KAAD,CAHd;AAILG,IAAAA,QAAQ,EAAE;AACRC,MAAAA,SAAS,EAAExB,YAAY,CAACoB,KAAD,CADf;AAERN,MAAAA,WAFQ;AAGRC,MAAAA,eAHQ;AAIRU,MAAAA,WAAW,EAAExB,cAAc,CAACmB,KAAD;AAJnB,KAJL;AAULM,IAAAA,UAAU,EAAER;AAVP,GAAP;AAYD,CArED;;AAuEA,eAAeb,iBAAf","sourcesContent":["import Cachemap from \"@cachemap/core\";\nimport { ConnectionInputOptions, Getters, Node, PlainObject, ResourceResolver } from \"../defs\";\nimport extractEdges from \"./extractEdges\";\nimport extractNodes from \"./extractNodes\";\nimport getInRangeCachedEdges from \"./getInRangeCachedEdges\";\nimport { getEndCursor, getStartCursor } from \"./getStartAndEndCursors\";\nimport mergeCachedEdges from \"./mergeCachedEdges\";\nimport requestAndCachePages from \"./requestAndCachePages\";\nimport retrieveCachedConnection from \"./retrieveCachedConnection\";\n\nexport type Context<Resource extends PlainObject, ResourceNode extends Node> = {\n cursorCache: Cachemap;\n getters: Getters<Resource, ResourceNode>;\n groupCursor: string;\n makeIDCursor: (id: string | number) => string;\n resourceResolver: ResourceResolver<Resource>;\n resultsPerPage: number;\n};\n\nconst resolveConnection = async <Resource extends PlainObject, ResourceNode extends Node>(\n args: PlainObject & ConnectionInputOptions,\n {\n cursorCache,\n getters,\n groupCursor,\n makeIDCursor,\n resourceResolver,\n resultsPerPage,\n }: Context<Resource, ResourceNode>,\n) => {\n const {\n cachedEdges,\n hasNextPage,\n hasPreviousPage,\n indexes,\n missingPages,\n totalResults,\n } = await retrieveCachedConnection(args, {\n cursorCache,\n groupCursor,\n resultsPerPage,\n });\n\n if (!missingPages.length) {\n const edges = extractEdges(cachedEdges);\n\n return {\n edges,\n errors: [],\n nodes: extractNodes(edges),\n pageInfo: {\n endCursor: getEndCursor(edges),\n hasNextPage,\n hasPreviousPage,\n startCursor: getStartCursor(edges),\n },\n totalCount: totalResults,\n };\n }\n\n const { cachedEdges: missingCachedEdges, errors } = await requestAndCachePages<Resource, ResourceNode>(missingPages, {\n cursorCache,\n getters,\n groupCursor,\n makeIDCursor,\n resourceResolver,\n });\n\n const mergedCachedEdges = getInRangeCachedEdges(mergeCachedEdges(cachedEdges, missingCachedEdges), {\n endIndex: indexes.end,\n resultsPerPage,\n startIndex: indexes.start,\n });\n\n const edges = extractEdges(mergedCachedEdges);\n\n return {\n edges,\n errors,\n nodes: extractNodes(edges),\n pageInfo: {\n endCursor: getEndCursor(edges),\n hasNextPage,\n hasPreviousPage,\n startCursor: getStartCursor(edges),\n },\n totalCount: totalResults,\n };\n};\n\nexport default resolveConnection;\n"],"file":"resolveConnection.js"}
1
+ {"version":3,"sources":["../../../src/helpers/resolveConnection.ts"],"names":["extractEdges","extractNodes","getInRangeCachedEdges","getEndCursor","getStartCursor","mergeCachedEdges","requestAndCachePages","retrieveCachedConnection","resolveConnection","args","cursorCache","getters","groupCursor","makeIDCursor","resourceResolver","resultsPerPage","cachedEdges","hasNextPage","hasPreviousPage","indexes","missingPages","totalResults","length","edges","errors","nodes","pageInfo","endCursor","startCursor","totalCount","missingCachedEdges","mergedCachedEdges","endIndex","end","startIndex","start"],"mappings":";AAEA,OAAOA,YAAP,MAAyB,gBAAzB;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,OAAOC,qBAAP,MAAkC,yBAAlC;AACA,SAASC,YAAT,EAAuBC,cAAvB,QAA6C,yBAA7C;AACA,OAAOC,gBAAP,MAA6B,oBAA7B;AACA,OAAOC,oBAAP,MAAiC,wBAAjC;AACA,OAAOC,wBAAP,MAAqC,4BAArC;;AAWA,MAAMC,iBAAiB,GAAG,OACxBC,IADwB,EAExB;AACEC,EAAAA,WADF;AAEEC,EAAAA,OAFF;AAGEC,EAAAA,WAHF;AAIEC,EAAAA,YAJF;AAKEC,EAAAA,gBALF;AAMEC,EAAAA;AANF,CAFwB,KAUrB;AACH,QAAM;AACJC,IAAAA,WADI;AAEJC,IAAAA,WAFI;AAGJC,IAAAA,eAHI;AAIJC,IAAAA,OAJI;AAKJC,IAAAA,YALI;AAMJC,IAAAA;AANI,MAOF,MAAMd,wBAAwB,CAACE,IAAD,EAAO;AACvCC,IAAAA,WADuC;AAEvCE,IAAAA,WAFuC;AAGvCG,IAAAA;AAHuC,GAAP,CAPlC;;AAaA,MAAI,CAACK,YAAY,CAACE,MAAlB,EAA0B;AACxB,UAAMC,KAAK,GAAGvB,YAAY,CAACgB,WAAD,CAA1B;AAEA,WAAO;AACLO,MAAAA,KADK;AAELC,MAAAA,MAAM,EAAE,EAFH;AAGLC,MAAAA,KAAK,EAAExB,YAAY,CAACsB,KAAD,CAHd;AAILG,MAAAA,QAAQ,EAAE;AACRC,QAAAA,SAAS,EAAExB,YAAY,CAACoB,KAAD,CADf;AAERN,QAAAA,WAFQ;AAGRC,QAAAA,eAHQ;AAIRU,QAAAA,WAAW,EAAExB,cAAc,CAACmB,KAAD;AAJnB,OAJL;AAULM,MAAAA,UAAU,EAAER;AAVP,KAAP;AAYD;;AAED,QAAM;AAAEL,IAAAA,WAAW,EAAEc,kBAAf;AAAmCN,IAAAA;AAAnC,MAA8C,MAAMlB,oBAAoB,CAAyBc,YAAzB,EAAuC;AACnHV,IAAAA,WADmH;AAEnHC,IAAAA,OAFmH;AAGnHC,IAAAA,WAHmH;AAInHC,IAAAA,YAJmH;AAKnHC,IAAAA;AALmH,GAAvC,CAA9E;AAQA,QAAMiB,iBAAiB,GAAG7B,qBAAqB,CAACG,gBAAgB,CAACW,WAAD,EAAcc,kBAAd,CAAjB,EAAoD;AACjGE,IAAAA,QAAQ,EAAEb,OAAO,CAACc,GAD+E;AAEjGlB,IAAAA,cAFiG;AAGjGmB,IAAAA,UAAU,EAAEf,OAAO,CAACgB;AAH6E,GAApD,CAA/C;AAMA,QAAMZ,KAAK,GAAGvB,YAAY,CAAC+B,iBAAD,CAA1B;AAEA,SAAO;AACLR,IAAAA,KADK;AAELC,IAAAA,MAFK;AAGLC,IAAAA,KAAK,EAAExB,YAAY,CAACsB,KAAD,CAHd;AAILG,IAAAA,QAAQ,EAAE;AACRC,MAAAA,SAAS,EAAExB,YAAY,CAACoB,KAAD,CADf;AAERN,MAAAA,WAFQ;AAGRC,MAAAA,eAHQ;AAIRU,MAAAA,WAAW,EAAExB,cAAc,CAACmB,KAAD;AAJnB,KAJL;AAULM,IAAAA,UAAU,EAAER;AAVP,GAAP;AAYD,CArED;;AAuEA,eAAeb,iBAAf","sourcesContent":["import Cachemap from \"@cachemap/core\";\nimport { ConnectionInputOptions, Getters, Node, PlainObject, ResourceResolver } from \"../defs\";\nimport extractEdges from \"./extractEdges\";\nimport extractNodes from \"./extractNodes\";\nimport getInRangeCachedEdges from \"./getInRangeCachedEdges\";\nimport { getEndCursor, getStartCursor } from \"./getStartAndEndCursors\";\nimport mergeCachedEdges from \"./mergeCachedEdges\";\nimport requestAndCachePages from \"./requestAndCachePages\";\nimport retrieveCachedConnection from \"./retrieveCachedConnection\";\n\nexport type Context<Resource extends PlainObject, ResourceNode extends Node> = {\n cursorCache: Cachemap;\n getters: Getters<Resource, ResourceNode>;\n groupCursor: string;\n makeIDCursor: (id: string | number) => string;\n resourceResolver: ResourceResolver<Resource>;\n resultsPerPage: number;\n};\n\nconst resolveConnection = async <Resource extends PlainObject, ResourceNode extends Node>(\n args: PlainObject & ConnectionInputOptions,\n {\n cursorCache,\n getters,\n groupCursor,\n makeIDCursor,\n resourceResolver,\n resultsPerPage,\n }: Context<Resource, ResourceNode>,\n) => {\n const {\n cachedEdges,\n hasNextPage,\n hasPreviousPage,\n indexes,\n missingPages,\n totalResults,\n } = await retrieveCachedConnection(args, {\n cursorCache,\n groupCursor,\n resultsPerPage,\n });\n\n if (!missingPages.length) {\n const edges = extractEdges(cachedEdges);\n\n return {\n edges,\n errors: [],\n nodes: extractNodes(edges),\n pageInfo: {\n endCursor: getEndCursor(edges),\n hasNextPage,\n hasPreviousPage,\n startCursor: getStartCursor(edges),\n },\n totalCount: totalResults,\n };\n }\n\n const { cachedEdges: missingCachedEdges, errors } = await requestAndCachePages<Resource, ResourceNode>(missingPages, {\n cursorCache,\n getters,\n groupCursor,\n makeIDCursor,\n resourceResolver,\n });\n\n const mergedCachedEdges = getInRangeCachedEdges(mergeCachedEdges(cachedEdges, missingCachedEdges), {\n endIndex: indexes.end,\n resultsPerPage,\n startIndex: indexes.start,\n });\n\n const edges = extractEdges(mergedCachedEdges);\n\n return {\n edges,\n errors,\n nodes: extractNodes(edges),\n pageInfo: {\n endCursor: getEndCursor(edges),\n hasNextPage,\n hasPreviousPage,\n startCursor: getStartCursor(edges),\n },\n totalCount: totalResults,\n };\n};\n\nexport default resolveConnection;\n"],"file":"resolveConnection.mjs"}
@@ -67,4 +67,4 @@ export default (async (args, {
67
67
  totalResults: metadata.totalResults
68
68
  };
69
69
  });
70
- //# sourceMappingURL=retrieveCachedConnection.js.map
70
+ //# sourceMappingURL=retrieveCachedConnection.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/retrieveCachedConnection.ts"],"names":["getCursor","getInRangeCachedEdges","getPageNumbersToRequest","getPagesMissingFromCache","getEndIndex","getStartIndex","hasNextPage","hasPreviousPage","makeEntry","retrieveCachedEdgesByPage","args","cursorCache","groupCursor","resultsPerPage","metadata","get","cursor","entry","startIndex","endIndex","promises","pageNumbersToRequest","forEach","pageNumber","push","cachedEdgesByPage","Promise","all","missingPages","cachedEdges","length","indexes","end","start","totalResults"],"mappings":";AAEA,OAAOA,SAAP,MAAsB,aAAtB;AACA,OAAOC,qBAAP,MAAkC,yBAAlC;AACA,OAAOC,uBAAP,MAAoC,2BAApC;AACA,OAAOC,wBAAP,MAAqC,4BAArC;AACA,SAASC,WAAT,EAAsBC,aAAtB,QAA2C,yBAA3C;AACA,SAASC,WAAT,EAAsBC,eAAtB,QAA6C,uBAA7C;AACA,OAAOC,SAAP,MAAsB,aAAtB;AACA,OAAOC,yBAAP,MAAsC,6BAAtC;AAQA,gBAAe,OAAOC,IAAP,EAAqC;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,WAAf;AAA4BC,EAAAA;AAA5B,CAArC,KAA+F;AAC5G,QAAMC,QAAQ,GAAI,MAAMH,WAAW,CAACI,GAAZ,CAAiB,GAAEH,WAAY,WAA/B,CAAxB;AACA,QAAMI,MAAM,GAAGhB,SAAS,CAACU,IAAD,CAAxB;AACA,QAAMO,KAAK,GAAGD,MAAM,GAAG,MAAML,WAAW,CAACI,GAAZ,CAAgBC,MAAhB,CAAT,GAAmCR,SAAS,CAACE,IAAD,EAAO;AAAEI,IAAAA,QAAF;AAAYD,IAAAA;AAAZ,GAAP,CAAhE;AACA,QAAMK,UAAU,GAAGb,aAAa,CAACK,IAAD,EAAO;AAAEO,IAAAA,KAAF;AAASJ,IAAAA;AAAT,GAAP,CAAhC;AACA,QAAMM,QAAQ,GAAGf,WAAW,CAACM,IAAD,EAAO;AAAEO,IAAAA,KAAF;AAASH,IAAAA,QAAT;AAAmBD,IAAAA;AAAnB,GAAP,CAA5B;AACA,QAAMO,QAAgC,GAAG,EAAzC;AACA,QAAMC,oBAAoB,GAAGnB,uBAAuB,CAACQ,IAAD,EAAO;AAAES,IAAAA,QAAF;AAAYF,IAAAA,KAAZ;AAAmBH,IAAAA,QAAnB;AAA6BD,IAAAA,cAA7B;AAA6CK,IAAAA;AAA7C,GAAP,CAApD;AAEAG,EAAAA,oBAAoB,CAACC,OAArB,CAA6BC,UAAU,IAAI;AACzCH,IAAAA,QAAQ,CAACI,IAAT,CAAcf,yBAAyB,CAACE,WAAD,EAAc;AAAEC,MAAAA,WAAF;AAAeW,MAAAA;AAAf,KAAd,CAAvC;AACD,GAFD;AAIA,QAAME,iBAAiB,GAAG,MAAMC,OAAO,CAACC,GAAR,CAAYP,QAAZ,CAAhC;AACA,QAAMQ,YAAY,GAAGzB,wBAAwB,CAACsB,iBAAD,CAA7C;AAEA,SAAO;AACLI,IAAAA,WAAW,EAAE,CAACD,YAAY,CAACE,MAAd,GACT7B,qBAAqB,CAACwB,iBAAD,EAAoB;AAAEN,MAAAA,QAAF;AAAYN,MAAAA,cAAZ;AAA4BK,MAAAA;AAA5B,KAApB,CADZ,GAETO,iBAHC;AAILnB,IAAAA,WAAW,EAAEA,WAAW,CAAC;AACvBmB,MAAAA,iBADuB;AAEvBN,MAAAA,QAFuB;AAGvBL,MAAAA,QAHuB;AAIvBD,MAAAA;AAJuB,KAAD,CAJnB;AAULN,IAAAA,eAAe,EAAEA,eAAe,CAAC;AAAEkB,MAAAA,iBAAF;AAAqBP,MAAAA;AAArB,KAAD,CAV3B;AAWLa,IAAAA,OAAO,EAAE;AAAEC,MAAAA,GAAG,EAAEb,QAAP;AAAiBc,MAAAA,KAAK,EAAEf;AAAxB,KAXJ;AAYLU,IAAAA,YAZK;AAaLM,IAAAA,YAAY,EAAEpB,QAAQ,CAACoB;AAblB,GAAP;AAeD,CA/BD","sourcesContent":["import Cachemap from \"@cachemap/core\";\nimport { CachedEdges, ConnectionInputOptions, CursorGroupMetadata } from \"../defs\";\nimport getCursor from \"./getCursor\";\nimport getInRangeCachedEdges from \"./getInRangeCachedEdges\";\nimport getPageNumbersToRequest from \"./getPageNumbersToRequest\";\nimport getPagesMissingFromCache from \"./getPagesMissingFromCache\";\nimport { getEndIndex, getStartIndex } from \"./getStartAndEndIndexes\";\nimport { hasNextPage, hasPreviousPage } from \"./hasPreviousNextPage\";\nimport makeEntry from \"./makeEntry\";\nimport retrieveCachedEdgesByPage from \"./retrieveCachedEdgesByPage\";\n\nexport type Context = {\n cursorCache: Cachemap;\n groupCursor: string;\n resultsPerPage: number;\n};\n\nexport default async (args: ConnectionInputOptions, { cursorCache, groupCursor, resultsPerPage }: Context) => {\n const metadata = (await cursorCache.get(`${groupCursor}-metadata`)) as CursorGroupMetadata;\n const cursor = getCursor(args);\n const entry = cursor ? await cursorCache.get(cursor) : makeEntry(args, { metadata, resultsPerPage });\n const startIndex = getStartIndex(args, { entry, resultsPerPage });\n const endIndex = getEndIndex(args, { entry, metadata, resultsPerPage });\n const promises: Promise<CachedEdges>[] = [];\n const pageNumbersToRequest = getPageNumbersToRequest(args, { endIndex, entry, metadata, resultsPerPage, startIndex });\n\n pageNumbersToRequest.forEach(pageNumber => {\n promises.push(retrieveCachedEdgesByPage(cursorCache, { groupCursor, pageNumber }));\n });\n\n const cachedEdgesByPage = await Promise.all(promises);\n const missingPages = getPagesMissingFromCache(cachedEdgesByPage);\n\n return {\n cachedEdges: !missingPages.length\n ? getInRangeCachedEdges(cachedEdgesByPage, { endIndex, resultsPerPage, startIndex })\n : cachedEdgesByPage,\n hasNextPage: hasNextPage({\n cachedEdgesByPage,\n endIndex,\n metadata,\n resultsPerPage,\n }),\n hasPreviousPage: hasPreviousPage({ cachedEdgesByPage, startIndex }),\n indexes: { end: endIndex, start: startIndex },\n missingPages,\n totalResults: metadata.totalResults,\n };\n};\n"],"file":"retrieveCachedConnection.js"}
1
+ {"version":3,"sources":["../../../src/helpers/retrieveCachedConnection.ts"],"names":["getCursor","getInRangeCachedEdges","getPageNumbersToRequest","getPagesMissingFromCache","getEndIndex","getStartIndex","hasNextPage","hasPreviousPage","makeEntry","retrieveCachedEdgesByPage","args","cursorCache","groupCursor","resultsPerPage","metadata","get","cursor","entry","startIndex","endIndex","promises","pageNumbersToRequest","forEach","pageNumber","push","cachedEdgesByPage","Promise","all","missingPages","cachedEdges","length","indexes","end","start","totalResults"],"mappings":";AAEA,OAAOA,SAAP,MAAsB,aAAtB;AACA,OAAOC,qBAAP,MAAkC,yBAAlC;AACA,OAAOC,uBAAP,MAAoC,2BAApC;AACA,OAAOC,wBAAP,MAAqC,4BAArC;AACA,SAASC,WAAT,EAAsBC,aAAtB,QAA2C,yBAA3C;AACA,SAASC,WAAT,EAAsBC,eAAtB,QAA6C,uBAA7C;AACA,OAAOC,SAAP,MAAsB,aAAtB;AACA,OAAOC,yBAAP,MAAsC,6BAAtC;AAQA,gBAAe,OAAOC,IAAP,EAAqC;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,WAAf;AAA4BC,EAAAA;AAA5B,CAArC,KAA+F;AAC5G,QAAMC,QAAQ,GAAI,MAAMH,WAAW,CAACI,GAAZ,CAAiB,GAAEH,WAAY,WAA/B,CAAxB;AACA,QAAMI,MAAM,GAAGhB,SAAS,CAACU,IAAD,CAAxB;AACA,QAAMO,KAAK,GAAGD,MAAM,GAAG,MAAML,WAAW,CAACI,GAAZ,CAAgBC,MAAhB,CAAT,GAAmCR,SAAS,CAACE,IAAD,EAAO;AAAEI,IAAAA,QAAF;AAAYD,IAAAA;AAAZ,GAAP,CAAhE;AACA,QAAMK,UAAU,GAAGb,aAAa,CAACK,IAAD,EAAO;AAAEO,IAAAA,KAAF;AAASJ,IAAAA;AAAT,GAAP,CAAhC;AACA,QAAMM,QAAQ,GAAGf,WAAW,CAACM,IAAD,EAAO;AAAEO,IAAAA,KAAF;AAASH,IAAAA,QAAT;AAAmBD,IAAAA;AAAnB,GAAP,CAA5B;AACA,QAAMO,QAAgC,GAAG,EAAzC;AACA,QAAMC,oBAAoB,GAAGnB,uBAAuB,CAACQ,IAAD,EAAO;AAAES,IAAAA,QAAF;AAAYF,IAAAA,KAAZ;AAAmBH,IAAAA,QAAnB;AAA6BD,IAAAA,cAA7B;AAA6CK,IAAAA;AAA7C,GAAP,CAApD;AAEAG,EAAAA,oBAAoB,CAACC,OAArB,CAA6BC,UAAU,IAAI;AACzCH,IAAAA,QAAQ,CAACI,IAAT,CAAcf,yBAAyB,CAACE,WAAD,EAAc;AAAEC,MAAAA,WAAF;AAAeW,MAAAA;AAAf,KAAd,CAAvC;AACD,GAFD;AAIA,QAAME,iBAAiB,GAAG,MAAMC,OAAO,CAACC,GAAR,CAAYP,QAAZ,CAAhC;AACA,QAAMQ,YAAY,GAAGzB,wBAAwB,CAACsB,iBAAD,CAA7C;AAEA,SAAO;AACLI,IAAAA,WAAW,EAAE,CAACD,YAAY,CAACE,MAAd,GACT7B,qBAAqB,CAACwB,iBAAD,EAAoB;AAAEN,MAAAA,QAAF;AAAYN,MAAAA,cAAZ;AAA4BK,MAAAA;AAA5B,KAApB,CADZ,GAETO,iBAHC;AAILnB,IAAAA,WAAW,EAAEA,WAAW,CAAC;AACvBmB,MAAAA,iBADuB;AAEvBN,MAAAA,QAFuB;AAGvBL,MAAAA,QAHuB;AAIvBD,MAAAA;AAJuB,KAAD,CAJnB;AAULN,IAAAA,eAAe,EAAEA,eAAe,CAAC;AAAEkB,MAAAA,iBAAF;AAAqBP,MAAAA;AAArB,KAAD,CAV3B;AAWLa,IAAAA,OAAO,EAAE;AAAEC,MAAAA,GAAG,EAAEb,QAAP;AAAiBc,MAAAA,KAAK,EAAEf;AAAxB,KAXJ;AAYLU,IAAAA,YAZK;AAaLM,IAAAA,YAAY,EAAEpB,QAAQ,CAACoB;AAblB,GAAP;AAeD,CA/BD","sourcesContent":["import Cachemap from \"@cachemap/core\";\nimport { CachedEdges, ConnectionInputOptions, CursorGroupMetadata } from \"../defs\";\nimport getCursor from \"./getCursor\";\nimport getInRangeCachedEdges from \"./getInRangeCachedEdges\";\nimport getPageNumbersToRequest from \"./getPageNumbersToRequest\";\nimport getPagesMissingFromCache from \"./getPagesMissingFromCache\";\nimport { getEndIndex, getStartIndex } from \"./getStartAndEndIndexes\";\nimport { hasNextPage, hasPreviousPage } from \"./hasPreviousNextPage\";\nimport makeEntry from \"./makeEntry\";\nimport retrieveCachedEdgesByPage from \"./retrieveCachedEdgesByPage\";\n\nexport type Context = {\n cursorCache: Cachemap;\n groupCursor: string;\n resultsPerPage: number;\n};\n\nexport default async (args: ConnectionInputOptions, { cursorCache, groupCursor, resultsPerPage }: Context) => {\n const metadata = (await cursorCache.get(`${groupCursor}-metadata`)) as CursorGroupMetadata;\n const cursor = getCursor(args);\n const entry = cursor ? await cursorCache.get(cursor) : makeEntry(args, { metadata, resultsPerPage });\n const startIndex = getStartIndex(args, { entry, resultsPerPage });\n const endIndex = getEndIndex(args, { entry, metadata, resultsPerPage });\n const promises: Promise<CachedEdges>[] = [];\n const pageNumbersToRequest = getPageNumbersToRequest(args, { endIndex, entry, metadata, resultsPerPage, startIndex });\n\n pageNumbersToRequest.forEach(pageNumber => {\n promises.push(retrieveCachedEdgesByPage(cursorCache, { groupCursor, pageNumber }));\n });\n\n const cachedEdgesByPage = await Promise.all(promises);\n const missingPages = getPagesMissingFromCache(cachedEdgesByPage);\n\n return {\n cachedEdges: !missingPages.length\n ? getInRangeCachedEdges(cachedEdgesByPage, { endIndex, resultsPerPage, startIndex })\n : cachedEdgesByPage,\n hasNextPage: hasNextPage({\n cachedEdgesByPage,\n endIndex,\n metadata,\n resultsPerPage,\n }),\n hasPreviousPage: hasPreviousPage({ cachedEdgesByPage, startIndex }),\n indexes: { end: endIndex, start: startIndex },\n missingPages,\n totalResults: metadata.totalResults,\n };\n};\n"],"file":"retrieveCachedConnection.mjs"}
@@ -32,4 +32,4 @@ export default (async (cursorCache, {
32
32
  pageNumber
33
33
  };
34
34
  });
35
- //# sourceMappingURL=retrieveCachedEdgesByPage.js.map
35
+ //# sourceMappingURL=retrieveCachedEdgesByPage.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/retrieveCachedEdgesByPage.ts"],"names":["cursorCache","groupCursor","pageNumber","entries","metadata","export","filterByValue","keyChain","comparator","edges","reduce","cached","key","index","node","cacheability","checkTTL","cursor"],"mappings":";AAQA,gBAAe,OAAOA,WAAP,EAA8B;AAAEC,EAAAA,WAAF;AAAeC,EAAAA;AAAf,CAA9B,KAAuE;AACpF,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,MAAyB,MAAMJ,WAAW,CAACK,MAAZ,CAAmB;AACtDC,IAAAA,aAAa,EAAE,CACb;AAAEC,MAAAA,QAAQ,EAAE,MAAZ;AAAoBC,MAAAA,UAAU,EAAEN;AAAhC,KADa,EAEb;AAAEK,MAAAA,QAAQ,EAAE,OAAZ;AAAqBC,MAAAA,UAAU,EAAEP;AAAjC,KAFa;AADuC,GAAnB,CAArC;AAOA,SAAO;AACLQ,IAAAA,KAAK,EAAEN,OAAO,CAACO,MAAR,CAAe,CAACC,MAAD,EAAS,CAACC,GAAD,EAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,KAAN,CAAT,KAAoC;AACxD,UAAIV,QAAQ,CAACS,KAAD,CAAR,CAAgBE,YAAhB,CAA6BC,QAA7B,EAAJ,EAA6C;AAC3CL,QAAAA,MAAM,CAACE,KAAD,CAAN,GAAgB;AAAEI,UAAAA,MAAM,EAAEL,GAAV;AAAeE,UAAAA;AAAf,SAAhB;AACD;;AAED,aAAOH,MAAP;AACD,KANM,EAMJ,EANI,CADF;AAQLT,IAAAA;AARK,GAAP;AAUD,CAlBD","sourcesContent":["import Cachemap, { ExportResult } from \"@cachemap/core\";\nimport { Edge } from \"../defs\";\n\nexport type Context = {\n groupCursor: string;\n pageNumber: number;\n};\n\nexport default async (cursorCache: Cachemap, { groupCursor, pageNumber }: Context) => {\n const { entries, metadata } = (await cursorCache.export({\n filterByValue: [\n { keyChain: \"page\", comparator: pageNumber },\n { keyChain: \"group\", comparator: groupCursor },\n ],\n })) as ExportResult;\n\n return {\n edges: entries.reduce((cached, [key, { index, node }]) => {\n if (metadata[index].cacheability.checkTTL()) {\n cached[index] = { cursor: key, node };\n }\n\n return cached;\n }, [] as Edge[]),\n pageNumber,\n };\n};\n"],"file":"retrieveCachedEdgesByPage.js"}
1
+ {"version":3,"sources":["../../../src/helpers/retrieveCachedEdgesByPage.ts"],"names":["cursorCache","groupCursor","pageNumber","entries","metadata","export","filterByValue","keyChain","comparator","edges","reduce","cached","key","index","node","cacheability","checkTTL","cursor"],"mappings":";AAQA,gBAAe,OAAOA,WAAP,EAA8B;AAAEC,EAAAA,WAAF;AAAeC,EAAAA;AAAf,CAA9B,KAAuE;AACpF,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,MAAyB,MAAMJ,WAAW,CAACK,MAAZ,CAAmB;AACtDC,IAAAA,aAAa,EAAE,CACb;AAAEC,MAAAA,QAAQ,EAAE,MAAZ;AAAoBC,MAAAA,UAAU,EAAEN;AAAhC,KADa,EAEb;AAAEK,MAAAA,QAAQ,EAAE,OAAZ;AAAqBC,MAAAA,UAAU,EAAEP;AAAjC,KAFa;AADuC,GAAnB,CAArC;AAOA,SAAO;AACLQ,IAAAA,KAAK,EAAEN,OAAO,CAACO,MAAR,CAAe,CAACC,MAAD,EAAS,CAACC,GAAD,EAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,KAAN,CAAT,KAAoC;AACxD,UAAIV,QAAQ,CAACS,KAAD,CAAR,CAAgBE,YAAhB,CAA6BC,QAA7B,EAAJ,EAA6C;AAC3CL,QAAAA,MAAM,CAACE,KAAD,CAAN,GAAgB;AAAEI,UAAAA,MAAM,EAAEL,GAAV;AAAeE,UAAAA;AAAf,SAAhB;AACD;;AAED,aAAOH,MAAP;AACD,KANM,EAMJ,EANI,CADF;AAQLT,IAAAA;AARK,GAAP;AAUD,CAlBD","sourcesContent":["import Cachemap, { ExportResult } from \"@cachemap/core\";\nimport { Edge } from \"../defs\";\n\nexport type Context = {\n groupCursor: string;\n pageNumber: number;\n};\n\nexport default async (cursorCache: Cachemap, { groupCursor, pageNumber }: Context) => {\n const { entries, metadata } = (await cursorCache.export({\n filterByValue: [\n { keyChain: \"page\", comparator: pageNumber },\n { keyChain: \"group\", comparator: groupCursor },\n ],\n })) as ExportResult;\n\n return {\n edges: entries.reduce((cached, [key, { index, node }]) => {\n if (metadata[index].cacheability.checkTTL()) {\n cached[index] = { cursor: key, node };\n }\n\n return cached;\n }, [] as Edge[]),\n pageNumber,\n };\n};\n"],"file":"retrieveCachedEdgesByPage.mjs"}
@@ -68,4 +68,4 @@ export default (async ({
68
68
 
69
69
  return undefined;
70
70
  });
71
- //# sourceMappingURL=validateCursor.js.map
71
+ //# sourceMappingURL=validateCursor.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/validateCursor.ts"],"names":["GraphQLError","getCursor","getDirection","isCursorFirst","isCursorLast","after","before","first","last","fieldNodes","cursorCache","groupCursor","resultsPerPage","metadata","get","cursor","entry","direction","undefined"],"mappings":";AACA,SAASA,YAAT,QAAiD,SAAjD;AAEA,OAAOC,SAAP,MAAsB,aAAtB;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AAQA,gBAAe,OACb;AAAEC,EAAAA,KAAF;AAASC,EAAAA,MAAT;AAAiBC,EAAAA,KAAjB;AAAwBC,EAAAA;AAAxB,CADa,EAEb;AAAEC,EAAAA;AAAF,CAFa,EAGb;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,WAAf;AAA4BC,EAAAA;AAA5B,CAHa,KAIV;AACH,MAAIP,KAAK,IAAI,CAACE,KAAV,IAAmB,CAACC,IAAxB,EAA8B;AAC5B,WAAO,IAAIR,YAAJ,CACL,4FADK,EAELS,UAFK,CAAP;AAID;;AAED,MAAIJ,KAAK,IAAIG,IAAb,EAAmB;AACjB,WAAO,IAAIR,YAAJ,CACL,6FADK,EAELS,UAFK,CAAP;AAID;;AAED,MAAIH,MAAM,IAAI,CAACE,IAAX,IAAmB,CAACD,KAAxB,EAA+B;AAC7B,WAAO,IAAIP,YAAJ,CACL,4FADK,EAELS,UAFK,CAAP;AAID;;AAED,MAAIH,MAAM,IAAIC,KAAd,EAAqB;AACnB,WAAO,IAAIP,YAAJ,CACL,+FADK,EAELS,UAFK,CAAP;AAID;;AAED,QAAMI,QAAQ,GAAI,MAAMH,WAAW,CAACI,GAAZ,CAAiB,GAAEH,WAAY,WAA/B,CAAxB;;AAEA,MAAI,CAACE,QAAL,EAAe;AACb,WAAO,IAAIb,YAAJ,CAAiB,8DAAjB,EAAiFS,UAAjF,CAAP;AACD;;AAED,QAAMM,MAAM,GAAGd,SAAS,CAAC;AAAEI,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAAD,CAAxB;AACA,QAAMU,KAAK,GAAI,MAAMN,WAAW,CAACI,GAAZ,CAAgBC,MAAhB,CAArB;;AAEA,MAAI,CAACC,KAAL,EAAY;AACV,WAAO,IAAIhB,YAAJ,CAAkB,cAAae,MAAO,sBAAtC,EAA6DN,UAA7D,CAAP;AACD;;AAED,QAAMQ,SAAS,GAAGf,YAAY,CAACM,IAAD,CAA9B;;AAEA,MAAIJ,YAAY,CAAC;AAAEa,IAAAA,SAAF;AAAaD,IAAAA,KAAb;AAAoBJ,IAAAA,cAApB;AAAoC,OAAGC;AAAvC,GAAD,CAAhB,EAAqE;AACnE,WAAO,IAAIb,YAAJ,CAAkB,cAAae,MAAO,kDAAtC,EAAyFN,UAAzF,CAAP;AACD;;AAED,MAAIN,aAAa,CAAC;AAAEc,IAAAA,SAAF;AAAaD,IAAAA;AAAb,GAAD,CAAjB,EAAyC;AACvC,WAAO,IAAIhB,YAAJ,CAAkB,cAAae,MAAO,oDAAtC,EAA2FN,UAA3F,CAAP;AACD;;AAED,SAAOS,SAAP;AACD,CAzDD","sourcesContent":["import Cachemap from \"@cachemap/core\";\nimport { GraphQLError, GraphQLResolveInfo } from \"graphql\";\nimport { ConnectionInputOptions, CursorCacheEntry, CursorGroupMetadata } from \"../defs\";\nimport getCursor from \"./getCursor\";\nimport getDirection from \"./getDirection\";\nimport isCursorFirst from \"./isCursorFirst\";\nimport isCursorLast from \"./isCursorLast\";\n\nexport type Context = {\n cursorCache: Cachemap;\n groupCursor: string;\n resultsPerPage: number;\n};\n\nexport default async (\n { after, before, first, last }: ConnectionInputOptions,\n { fieldNodes }: GraphQLResolveInfo,\n { cursorCache, groupCursor, resultsPerPage }: Context,\n) => {\n if (after && !first && !last) {\n return new GraphQLError(\n \"Invalid connection argument combination. `after` must be used in combination with `first`.\",\n fieldNodes,\n );\n }\n\n if (after && last) {\n return new GraphQLError(\n \"Invalid connection argument combination. `after` cannot be used in combination with `last`.\",\n fieldNodes,\n );\n }\n\n if (before && !last && !first) {\n return new GraphQLError(\n \"Invalid connection argument combination. `before` must be used in combination with `last`.\",\n fieldNodes,\n );\n }\n\n if (before && first) {\n return new GraphQLError(\n \"Invalid connection argument combination. `before` cannot be used in combination with `first`.\",\n fieldNodes,\n );\n }\n\n const metadata = (await cursorCache.get(`${groupCursor}-metadata`)) as CursorGroupMetadata | undefined;\n\n if (!metadata) {\n return new GraphQLError(\"Curser cannot be supplied without previously being provided.\", fieldNodes);\n }\n\n const cursor = getCursor({ after, before }) as string;\n const entry = (await cursorCache.get(cursor)) as CursorCacheEntry | undefined;\n\n if (!entry) {\n return new GraphQLError(`The cursor ${cursor} could not be found.`, fieldNodes);\n }\n\n const direction = getDirection(last);\n\n if (isCursorLast({ direction, entry, resultsPerPage, ...metadata })) {\n return new GraphQLError(`The cursor ${cursor} is the last, you cannot go forward any further.`, fieldNodes);\n }\n\n if (isCursorFirst({ direction, entry })) {\n return new GraphQLError(`The cursor ${cursor} is the first, you cannot go backward any further.`, fieldNodes);\n }\n\n return undefined;\n};\n"],"file":"validateCursor.js"}
1
+ {"version":3,"sources":["../../../src/helpers/validateCursor.ts"],"names":["GraphQLError","getCursor","getDirection","isCursorFirst","isCursorLast","after","before","first","last","fieldNodes","cursorCache","groupCursor","resultsPerPage","metadata","get","cursor","entry","direction","undefined"],"mappings":";AACA,SAASA,YAAT,QAAiD,SAAjD;AAEA,OAAOC,SAAP,MAAsB,aAAtB;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AAQA,gBAAe,OACb;AAAEC,EAAAA,KAAF;AAASC,EAAAA,MAAT;AAAiBC,EAAAA,KAAjB;AAAwBC,EAAAA;AAAxB,CADa,EAEb;AAAEC,EAAAA;AAAF,CAFa,EAGb;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,WAAf;AAA4BC,EAAAA;AAA5B,CAHa,KAIV;AACH,MAAIP,KAAK,IAAI,CAACE,KAAV,IAAmB,CAACC,IAAxB,EAA8B;AAC5B,WAAO,IAAIR,YAAJ,CACL,4FADK,EAELS,UAFK,CAAP;AAID;;AAED,MAAIJ,KAAK,IAAIG,IAAb,EAAmB;AACjB,WAAO,IAAIR,YAAJ,CACL,6FADK,EAELS,UAFK,CAAP;AAID;;AAED,MAAIH,MAAM,IAAI,CAACE,IAAX,IAAmB,CAACD,KAAxB,EAA+B;AAC7B,WAAO,IAAIP,YAAJ,CACL,4FADK,EAELS,UAFK,CAAP;AAID;;AAED,MAAIH,MAAM,IAAIC,KAAd,EAAqB;AACnB,WAAO,IAAIP,YAAJ,CACL,+FADK,EAELS,UAFK,CAAP;AAID;;AAED,QAAMI,QAAQ,GAAI,MAAMH,WAAW,CAACI,GAAZ,CAAiB,GAAEH,WAAY,WAA/B,CAAxB;;AAEA,MAAI,CAACE,QAAL,EAAe;AACb,WAAO,IAAIb,YAAJ,CAAiB,8DAAjB,EAAiFS,UAAjF,CAAP;AACD;;AAED,QAAMM,MAAM,GAAGd,SAAS,CAAC;AAAEI,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAAD,CAAxB;AACA,QAAMU,KAAK,GAAI,MAAMN,WAAW,CAACI,GAAZ,CAAgBC,MAAhB,CAArB;;AAEA,MAAI,CAACC,KAAL,EAAY;AACV,WAAO,IAAIhB,YAAJ,CAAkB,cAAae,MAAO,sBAAtC,EAA6DN,UAA7D,CAAP;AACD;;AAED,QAAMQ,SAAS,GAAGf,YAAY,CAACM,IAAD,CAA9B;;AAEA,MAAIJ,YAAY,CAAC;AAAEa,IAAAA,SAAF;AAAaD,IAAAA,KAAb;AAAoBJ,IAAAA,cAApB;AAAoC,OAAGC;AAAvC,GAAD,CAAhB,EAAqE;AACnE,WAAO,IAAIb,YAAJ,CAAkB,cAAae,MAAO,kDAAtC,EAAyFN,UAAzF,CAAP;AACD;;AAED,MAAIN,aAAa,CAAC;AAAEc,IAAAA,SAAF;AAAaD,IAAAA;AAAb,GAAD,CAAjB,EAAyC;AACvC,WAAO,IAAIhB,YAAJ,CAAkB,cAAae,MAAO,oDAAtC,EAA2FN,UAA3F,CAAP;AACD;;AAED,SAAOS,SAAP;AACD,CAzDD","sourcesContent":["import Cachemap from \"@cachemap/core\";\nimport { GraphQLError, GraphQLResolveInfo } from \"graphql\";\nimport { ConnectionInputOptions, CursorCacheEntry, CursorGroupMetadata } from \"../defs\";\nimport getCursor from \"./getCursor\";\nimport getDirection from \"./getDirection\";\nimport isCursorFirst from \"./isCursorFirst\";\nimport isCursorLast from \"./isCursorLast\";\n\nexport type Context = {\n cursorCache: Cachemap;\n groupCursor: string;\n resultsPerPage: number;\n};\n\nexport default async (\n { after, before, first, last }: ConnectionInputOptions,\n { fieldNodes }: GraphQLResolveInfo,\n { cursorCache, groupCursor, resultsPerPage }: Context,\n) => {\n if (after && !first && !last) {\n return new GraphQLError(\n \"Invalid connection argument combination. `after` must be used in combination with `first`.\",\n fieldNodes,\n );\n }\n\n if (after && last) {\n return new GraphQLError(\n \"Invalid connection argument combination. `after` cannot be used in combination with `last`.\",\n fieldNodes,\n );\n }\n\n if (before && !last && !first) {\n return new GraphQLError(\n \"Invalid connection argument combination. `before` must be used in combination with `last`.\",\n fieldNodes,\n );\n }\n\n if (before && first) {\n return new GraphQLError(\n \"Invalid connection argument combination. `before` cannot be used in combination with `first`.\",\n fieldNodes,\n );\n }\n\n const metadata = (await cursorCache.get(`${groupCursor}-metadata`)) as CursorGroupMetadata | undefined;\n\n if (!metadata) {\n return new GraphQLError(\"Curser cannot be supplied without previously being provided.\", fieldNodes);\n }\n\n const cursor = getCursor({ after, before }) as string;\n const entry = (await cursorCache.get(cursor)) as CursorCacheEntry | undefined;\n\n if (!entry) {\n return new GraphQLError(`The cursor ${cursor} could not be found.`, fieldNodes);\n }\n\n const direction = getDirection(last);\n\n if (isCursorLast({ direction, entry, resultsPerPage, ...metadata })) {\n return new GraphQLError(`The cursor ${cursor} is the last, you cannot go forward any further.`, fieldNodes);\n }\n\n if (isCursorFirst({ direction, entry })) {\n return new GraphQLError(`The cursor ${cursor} is the first, you cannot go backward any further.`, fieldNodes);\n }\n\n return undefined;\n};\n"],"file":"validateCursor.mjs"}
@@ -1,4 +1,4 @@
1
1
  export * from "./defs";
2
2
  export { default as removeConnectionInputOptions } from "./helpers/removeConnectionInputOptions";
3
- export { default } from "./main";
4
- //# sourceMappingURL=index.js.map
3
+ export { default, connectionResolver } from "./main";
4
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts"],"names":["default","removeConnectionInputOptions","connectionResolver"],"mappings":"AAAA,cAAc,QAAd;AACA,SAASA,OAAO,IAAIC,4BAApB,QAAwD,wCAAxD;AACA,SAASD,OAAT,EAAkBE,kBAAlB,QAA4C,QAA5C","sourcesContent":["export * from \"./defs\";\nexport { default as removeConnectionInputOptions } from \"./helpers/removeConnectionInputOptions\";\nexport { default, connectionResolver } from \"./main\";\n"],"file":"index.mjs"}
@@ -3,8 +3,7 @@ import isCursorSupplied from "../helpers/isCursorSupplied";
3
3
  import requestAndCachePages from "../helpers/requestAndCachePages";
4
4
  import resolveConnection from "../helpers/resolveConnection";
5
5
  import validateCursor from "../helpers/validateCursor";
6
-
7
- const main = ({
6
+ export const connectionResolver = ({
8
7
  cursorCache,
9
8
  createMakeCursors,
10
9
  createResourceResolver,
@@ -80,6 +79,5 @@ const main = ({
80
79
  throw e;
81
80
  }
82
81
  };
83
-
84
- export default main;
85
- //# sourceMappingURL=index.js.map
82
+ export default connectionResolver;
83
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/main/index.ts"],"names":["isCursorSupplied","requestAndCachePages","resolveConnection","validateCursor","connectionResolver","cursorCache","createMakeCursors","createResourceResolver","getters","resolver","result","resultsPerPage","source","args","context","info","makeGroupCursor","makeIDCursor","resourceResolver","groupCursor","cursorError","edges","errors","nodes","pageInfo","hasNextPage","hasPreviousPage","totalCount","has","e"],"mappings":";AAEA,OAAOA,gBAAP,MAA6B,6BAA7B;AACA,OAAOC,oBAAP,MAAiC,iCAAjC;AACA,OAAOC,iBAAP,MAA8B,8BAA9B;AACA,OAAOC,cAAP,MAA2B,2BAA3B;AAEA,OAAO,MAAMC,kBAAkB,GAAG,CAMhC;AACAC,EAAAA,WADA;AAEAC,EAAAA,iBAFA;AAGAC,EAAAA,sBAHA;AAIAC,EAAAA,OAJA;AAKAC,EAAAA,QAAQ,GAAGC,MAAM,IAAIA,MALrB;AAMAC,EAAAA;AANA,CANgC,KAa8C,OAC9EC,MAD8E,EAE9EC,IAF8E,EAG9EC,OAH8E,EAI9EC,IAJ8E,KAKtD;AACxB,MAAI;AACF,UAAM;AAAEC,MAAAA,eAAF;AAAmBC,MAAAA;AAAnB,QAAoCX,iBAAiB,CAACM,MAAD,EAASC,IAAT,EAAeC,OAAf,EAAwBC,IAAxB,CAA3D;AACA,UAAMG,gBAAgB,GAAGX,sBAAsB,CAACK,MAAD,EAASC,IAAT,EAAeC,OAAf,EAAwBC,IAAxB,CAA/C;AACA,UAAMI,WAAW,GAAGH,eAAe,EAAnC;;AAEA,QAAIhB,gBAAgB,CAACa,IAAD,CAApB,EAA4B;AAC1B,YAAMO,WAAW,GAAG,MAAMjB,cAAc,CAACU,IAAD,EAAOE,IAAP,EAAa;AACnDV,QAAAA,WADmD;AAEnDc,QAAAA,WAFmD;AAGnDR,QAAAA;AAHmD,OAAb,CAAxC;;AAMA,UAAIS,WAAJ,EAAiB;AACf,eAAOX,QAAQ,CAAC;AACdY,UAAAA,KAAK,EAAE,EADO;AAEdC,UAAAA,MAAM,EAAE,CAACF,WAAD,CAFM;AAGdG,UAAAA,KAAK,EAAE,EAHO;AAIdC,UAAAA,QAAQ,EAAE;AACRC,YAAAA,WAAW,EAAE,KADL;AAERC,YAAAA,eAAe,EAAE;AAFT,WAJI;AAQdC,UAAAA,UAAU,EAAE;AARE,SAAD,CAAf;AAUD;;AAED,aAAOlB,QAAQ,CACb,MAAMP,iBAAiB,CAACW,IAAD,EAAO;AAC5BR,QAAAA,WAD4B;AAE5BG,QAAAA,OAF4B;AAG5BW,QAAAA,WAH4B;AAI5BF,QAAAA,YAJ4B;AAK5BC,QAAAA,gBAL4B;AAM5BP,QAAAA;AAN4B,OAAP,CADV,CAAf;AAUD;;AAED,QAAI,MAAMN,WAAW,CAACuB,GAAZ,CAAiB,GAAET,WAAY,WAA/B,CAAV,EAAsD;AACpD,aAAOV,QAAQ,CACb,MAAMP,iBAAiB,CAACW,IAAD,EAAO;AAC5BR,QAAAA,WAD4B;AAE5BG,QAAAA,OAF4B;AAG5BW,QAAAA,WAH4B;AAI5BF,QAAAA,YAJ4B;AAK5BC,QAAAA,gBAL4B;AAM5BP,QAAAA;AAN4B,OAAP,CADV,CAAf;AAUD;;AAED,UAAMV,oBAAoB,CAAyB,CAAC,CAAD,CAAzB,EAA8B;AACtDI,MAAAA,WADsD;AAEtDG,MAAAA,OAFsD;AAGtDW,MAAAA,WAHsD;AAItDF,MAAAA,YAJsD;AAKtDC,MAAAA;AALsD,KAA9B,CAA1B;AAQA,WAAOT,QAAQ,CACb,MAAMP,iBAAiB,CAACW,IAAD,EAAO;AAC5BR,MAAAA,WAD4B;AAE5BG,MAAAA,OAF4B;AAG5BW,MAAAA,WAH4B;AAI5BF,MAAAA,YAJ4B;AAK5BC,MAAAA,gBAL4B;AAM5BP,MAAAA;AAN4B,KAAP,CADV,CAAf;AAUD,GApED,CAoEE,OAAOkB,CAAP,EAAU;AACV,UAAMA,CAAN;AACD;AACF,CA1FM;AA4FP,eAAezB,kBAAf","sourcesContent":["import { GraphQLResolveInfo } from \"graphql\";\nimport { Connection, ConnectionInputOptions, ConnectionResolverUserOptions, Node, PlainObject } from \"../defs\";\nimport isCursorSupplied from \"../helpers/isCursorSupplied\";\nimport requestAndCachePages from \"../helpers/requestAndCachePages\";\nimport resolveConnection from \"../helpers/resolveConnection\";\nimport validateCursor from \"../helpers/validateCursor\";\n\nexport const connectionResolver = <\n Source extends PlainObject | undefined,\n Args extends PlainObject,\n Ctx extends PlainObject,\n Resource extends PlainObject,\n ResourceNode extends Node\n>({\n cursorCache,\n createMakeCursors,\n createResourceResolver,\n getters,\n resolver = result => result,\n resultsPerPage,\n}: ConnectionResolverUserOptions<Source, Args, Ctx, Resource, ResourceNode>) => async (\n source: Source,\n args: Args & ConnectionInputOptions,\n context: Ctx,\n info: GraphQLResolveInfo,\n): Promise<Connection> => {\n try {\n const { makeGroupCursor, makeIDCursor } = createMakeCursors(source, args, context, info);\n const resourceResolver = createResourceResolver(source, args, context, info);\n const groupCursor = makeGroupCursor();\n\n if (isCursorSupplied(args)) {\n const cursorError = await validateCursor(args, info, {\n cursorCache,\n groupCursor,\n resultsPerPage,\n });\n\n if (cursorError) {\n return resolver({\n edges: [],\n errors: [cursorError],\n nodes: [],\n pageInfo: {\n hasNextPage: false,\n hasPreviousPage: false,\n },\n totalCount: 0,\n });\n }\n\n return resolver(\n await resolveConnection(args, {\n cursorCache,\n getters,\n groupCursor,\n makeIDCursor,\n resourceResolver,\n resultsPerPage,\n }),\n );\n }\n\n if (await cursorCache.has(`${groupCursor}-metadata`)) {\n return resolver(\n await resolveConnection(args, {\n cursorCache,\n getters,\n groupCursor,\n makeIDCursor,\n resourceResolver,\n resultsPerPage,\n }),\n );\n }\n\n await requestAndCachePages<Resource, ResourceNode>([1], {\n cursorCache,\n getters,\n groupCursor,\n makeIDCursor,\n resourceResolver,\n });\n\n return resolver(\n await resolveConnection(args, {\n cursorCache,\n getters,\n groupCursor,\n makeIDCursor,\n resourceResolver,\n resultsPerPage,\n }),\n );\n } catch (e) {\n throw e;\n }\n};\n\nexport default connectionResolver;\n"],"file":"index.mjs"}