@graphql-box/connection-resolver 4.1.4 → 5.0.0

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 (490) hide show
  1. package/README.md +1 -5
  2. package/dist/cjs/index.cjs +703 -0
  3. package/dist/cjs/index.cjs.map +1 -0
  4. package/dist/esm/index.mjs +700 -0
  5. package/dist/esm/index.mjs.map +1 -0
  6. package/dist/types/cjs/__testUtils__/generateCursorCache.d.cts +10 -0
  7. package/dist/types/cjs/__testUtils__/generateCursorCache.d.cts.map +1 -0
  8. package/dist/types/cjs/__testUtils__/generatePageResponse.d.cts +9 -0
  9. package/dist/types/cjs/__testUtils__/generatePageResponse.d.cts.map +1 -0
  10. package/dist/types/cjs/__testUtils__/generatePages.d.cts +2 -0
  11. package/dist/types/cjs/__testUtils__/generatePages.d.cts.map +1 -0
  12. package/dist/types/cjs/helpers/cacheCursors.d.cts +12 -0
  13. package/dist/types/cjs/helpers/cacheCursors.d.cts.map +1 -0
  14. package/dist/types/cjs/helpers/extractEdges.d.cts +3 -0
  15. package/dist/types/cjs/helpers/extractEdges.d.cts.map +1 -0
  16. package/dist/types/cjs/helpers/extractNodes.d.cts +3 -0
  17. package/dist/types/cjs/helpers/extractNodes.d.cts.map +1 -0
  18. package/dist/types/cjs/helpers/getCount.d.cts +3 -0
  19. package/dist/types/cjs/helpers/getCount.d.cts.map +1 -0
  20. package/dist/types/cjs/helpers/getCurrentPageStartAndEndIndexes.d.cts +14 -0
  21. package/dist/types/cjs/helpers/getCurrentPageStartAndEndIndexes.d.cts.map +1 -0
  22. package/dist/types/cjs/helpers/getCursor.d.cts +3 -0
  23. package/dist/types/cjs/helpers/getCursor.d.cts.map +1 -0
  24. package/dist/types/cjs/helpers/getDirection.d.cts +3 -0
  25. package/dist/types/cjs/helpers/getDirection.d.cts.map +1 -0
  26. package/dist/types/cjs/helpers/getInRangeCachedEdges.d.cts +8 -0
  27. package/dist/types/cjs/helpers/getInRangeCachedEdges.d.cts.map +1 -0
  28. package/dist/types/cjs/helpers/getIndexesOnCurrentPage.d.cts +10 -0
  29. package/dist/types/cjs/helpers/getIndexesOnCurrentPage.d.cts.map +1 -0
  30. package/dist/types/cjs/helpers/getIndexesOnLastPage.d.cts +3 -0
  31. package/dist/types/cjs/helpers/getIndexesOnLastPage.d.cts.map +1 -0
  32. package/dist/types/cjs/helpers/getPageNumbersToRequest.d.cts +12 -0
  33. package/dist/types/cjs/helpers/getPageNumbersToRequest.d.cts.map +1 -0
  34. package/dist/types/cjs/helpers/getPagesMissingFromCache.d.cts +3 -0
  35. package/dist/types/cjs/helpers/getPagesMissingFromCache.d.cts.map +1 -0
  36. package/dist/types/cjs/helpers/getResultsOnLastPage.d.cts +6 -0
  37. package/dist/types/cjs/helpers/getResultsOnLastPage.d.cts.map +1 -0
  38. package/dist/types/cjs/helpers/getStartAndEndCursors.d.cts +4 -0
  39. package/dist/types/cjs/helpers/getStartAndEndCursors.d.cts.map +1 -0
  40. package/dist/types/cjs/helpers/getStartAndEndIndexes.d.cts +15 -0
  41. package/dist/types/cjs/helpers/getStartAndEndIndexes.d.cts.map +1 -0
  42. package/dist/types/cjs/helpers/getStartAndEndPageNumbers.d.cts +13 -0
  43. package/dist/types/cjs/helpers/getStartAndEndPageNumbers.d.cts.map +1 -0
  44. package/dist/types/cjs/helpers/hasPreviousNextPage.d.cts +14 -0
  45. package/dist/types/cjs/helpers/hasPreviousNextPage.d.cts.map +1 -0
  46. package/dist/types/cjs/helpers/isCursorFirst.d.cts +7 -0
  47. package/dist/types/cjs/helpers/isCursorFirst.d.cts.map +1 -0
  48. package/dist/types/cjs/helpers/isCursorLast.d.cts +10 -0
  49. package/dist/types/cjs/helpers/isCursorLast.d.cts.map +1 -0
  50. package/dist/types/cjs/helpers/isCursorSupplied.d.cts +4 -0
  51. package/dist/types/cjs/helpers/isCursorSupplied.d.cts.map +1 -0
  52. package/dist/types/cjs/helpers/isFirstPage.d.cts +2 -0
  53. package/dist/types/cjs/helpers/isFirstPage.d.cts.map +1 -0
  54. package/dist/types/cjs/helpers/isLastPage.d.cts +6 -0
  55. package/dist/types/cjs/helpers/isLastPage.d.cts.map +1 -0
  56. package/dist/types/cjs/helpers/makeEdges.d.cts +6 -0
  57. package/dist/types/cjs/helpers/makeEdges.d.cts.map +1 -0
  58. package/dist/types/cjs/helpers/makeEntry.d.cts +10 -0
  59. package/dist/types/cjs/helpers/makeEntry.d.cts.map +1 -0
  60. package/dist/types/cjs/helpers/mergeCachedEdges.d.cts +3 -0
  61. package/dist/types/cjs/helpers/mergeCachedEdges.d.cts.map +1 -0
  62. package/dist/types/cjs/helpers/removeConnectionInputOptions.d.cts +2 -0
  63. package/dist/types/cjs/helpers/removeConnectionInputOptions.d.cts.map +1 -0
  64. package/dist/types/cjs/helpers/requestAndCachePages.d.cts +21 -0
  65. package/dist/types/cjs/helpers/requestAndCachePages.d.cts.map +1 -0
  66. package/dist/types/cjs/helpers/requestOutstandingPages.d.cts +18 -0
  67. package/dist/types/cjs/helpers/requestOutstandingPages.d.cts.map +1 -0
  68. package/dist/types/cjs/helpers/resolveConnection.d.cts +24 -0
  69. package/dist/types/cjs/helpers/resolveConnection.d.cts.map +1 -0
  70. package/dist/types/cjs/helpers/retrieveCachedConnection.d.cts +25 -0
  71. package/dist/types/cjs/helpers/retrieveCachedConnection.d.cts.map +1 -0
  72. package/dist/types/cjs/helpers/retrieveCachedEdgesByPage.d.cts +11 -0
  73. package/dist/types/cjs/helpers/retrieveCachedEdgesByPage.d.cts.map +1 -0
  74. package/dist/types/cjs/helpers/retrieveEntry.d.cts +8 -0
  75. package/dist/types/cjs/helpers/retrieveEntry.d.cts.map +1 -0
  76. package/dist/types/cjs/helpers/validateCursor.d.cts +10 -0
  77. package/dist/types/cjs/helpers/validateCursor.d.cts.map +1 -0
  78. package/dist/types/cjs/index.d.cts +4 -0
  79. package/dist/types/cjs/index.d.cts.map +1 -0
  80. package/dist/types/cjs/main/index.d.cts +5 -0
  81. package/dist/types/cjs/main/index.d.cts.map +1 -0
  82. package/{lib/types/defs/index.d.ts → dist/types/cjs/types.d.cts} +22 -27
  83. package/dist/types/cjs/types.d.cts.map +1 -0
  84. package/dist/types/esm/__testUtils__/generateCursorCache.d.ts +10 -0
  85. package/dist/types/esm/__testUtils__/generateCursorCache.d.ts.map +1 -0
  86. package/dist/types/esm/__testUtils__/generatePageResponse.d.ts +9 -0
  87. package/dist/types/esm/__testUtils__/generatePageResponse.d.ts.map +1 -0
  88. package/dist/types/esm/__testUtils__/generatePages.d.ts +2 -0
  89. package/dist/types/esm/__testUtils__/generatePages.d.ts.map +1 -0
  90. package/dist/types/esm/helpers/cacheCursors.d.ts +12 -0
  91. package/dist/types/esm/helpers/cacheCursors.d.ts.map +1 -0
  92. package/dist/types/esm/helpers/extractEdges.d.ts +3 -0
  93. package/dist/types/esm/helpers/extractEdges.d.ts.map +1 -0
  94. package/dist/types/esm/helpers/extractNodes.d.ts +3 -0
  95. package/dist/types/esm/helpers/extractNodes.d.ts.map +1 -0
  96. package/dist/types/esm/helpers/getCount.d.ts +3 -0
  97. package/dist/types/esm/helpers/getCount.d.ts.map +1 -0
  98. package/{lib/types → dist/types/esm}/helpers/getCurrentPageStartAndEndIndexes.d.ts +3 -3
  99. package/dist/types/esm/helpers/getCurrentPageStartAndEndIndexes.d.ts.map +1 -0
  100. package/dist/types/esm/helpers/getCursor.d.ts +3 -0
  101. package/dist/types/esm/helpers/getCursor.d.ts.map +1 -0
  102. package/dist/types/esm/helpers/getDirection.d.ts +3 -0
  103. package/dist/types/esm/helpers/getDirection.d.ts.map +1 -0
  104. package/dist/types/esm/helpers/getInRangeCachedEdges.d.ts +8 -0
  105. package/dist/types/esm/helpers/getInRangeCachedEdges.d.ts.map +1 -0
  106. package/dist/types/esm/helpers/getIndexesOnCurrentPage.d.ts +10 -0
  107. package/dist/types/esm/helpers/getIndexesOnCurrentPage.d.ts.map +1 -0
  108. package/dist/types/esm/helpers/getIndexesOnLastPage.d.ts +3 -0
  109. package/dist/types/esm/helpers/getIndexesOnLastPage.d.ts.map +1 -0
  110. package/dist/types/esm/helpers/getPageNumbersToRequest.d.ts +12 -0
  111. package/dist/types/esm/helpers/getPageNumbersToRequest.d.ts.map +1 -0
  112. package/dist/types/esm/helpers/getPagesMissingFromCache.d.ts +3 -0
  113. package/dist/types/esm/helpers/getPagesMissingFromCache.d.ts.map +1 -0
  114. package/dist/types/esm/helpers/getResultsOnLastPage.d.ts +6 -0
  115. package/dist/types/esm/helpers/getResultsOnLastPage.d.ts.map +1 -0
  116. package/dist/types/esm/helpers/getStartAndEndCursors.d.ts +4 -0
  117. package/dist/types/esm/helpers/getStartAndEndCursors.d.ts.map +1 -0
  118. package/dist/types/esm/helpers/getStartAndEndIndexes.d.ts +15 -0
  119. package/dist/types/esm/helpers/getStartAndEndIndexes.d.ts.map +1 -0
  120. package/dist/types/esm/helpers/getStartAndEndPageNumbers.d.ts +13 -0
  121. package/dist/types/esm/helpers/getStartAndEndPageNumbers.d.ts.map +1 -0
  122. package/{lib/types → dist/types/esm}/helpers/hasPreviousNextPage.d.ts +3 -3
  123. package/dist/types/esm/helpers/hasPreviousNextPage.d.ts.map +1 -0
  124. package/dist/types/esm/helpers/isCursorFirst.d.ts +7 -0
  125. package/dist/types/esm/helpers/isCursorFirst.d.ts.map +1 -0
  126. package/dist/types/esm/helpers/isCursorLast.d.ts +10 -0
  127. package/dist/types/esm/helpers/isCursorLast.d.ts.map +1 -0
  128. package/dist/types/esm/helpers/isCursorSupplied.d.ts +4 -0
  129. package/dist/types/esm/helpers/isCursorSupplied.d.ts.map +1 -0
  130. package/dist/types/esm/helpers/isFirstPage.d.ts +2 -0
  131. package/dist/types/esm/helpers/isFirstPage.d.ts.map +1 -0
  132. package/dist/types/esm/helpers/isLastPage.d.ts +6 -0
  133. package/dist/types/esm/helpers/isLastPage.d.ts.map +1 -0
  134. package/dist/types/esm/helpers/makeEdges.d.ts +6 -0
  135. package/dist/types/esm/helpers/makeEdges.d.ts.map +1 -0
  136. package/dist/types/esm/helpers/makeEntry.d.ts +10 -0
  137. package/dist/types/esm/helpers/makeEntry.d.ts.map +1 -0
  138. package/dist/types/esm/helpers/mergeCachedEdges.d.ts +3 -0
  139. package/dist/types/esm/helpers/mergeCachedEdges.d.ts.map +1 -0
  140. package/dist/types/esm/helpers/removeConnectionInputOptions.d.ts +2 -0
  141. package/dist/types/esm/helpers/removeConnectionInputOptions.d.ts.map +1 -0
  142. package/dist/types/esm/helpers/requestAndCachePages.d.ts +21 -0
  143. package/dist/types/esm/helpers/requestAndCachePages.d.ts.map +1 -0
  144. package/dist/types/esm/helpers/requestOutstandingPages.d.ts +18 -0
  145. package/dist/types/esm/helpers/requestOutstandingPages.d.ts.map +1 -0
  146. package/dist/types/esm/helpers/resolveConnection.d.ts +24 -0
  147. package/dist/types/esm/helpers/resolveConnection.d.ts.map +1 -0
  148. package/{lib/types → dist/types/esm}/helpers/retrieveCachedConnection.d.ts +5 -6
  149. package/dist/types/esm/helpers/retrieveCachedConnection.d.ts.map +1 -0
  150. package/dist/types/esm/helpers/retrieveCachedEdgesByPage.d.ts +11 -0
  151. package/dist/types/esm/helpers/retrieveCachedEdgesByPage.d.ts.map +1 -0
  152. package/dist/types/esm/helpers/retrieveEntry.d.ts +8 -0
  153. package/dist/types/esm/helpers/retrieveEntry.d.ts.map +1 -0
  154. package/dist/types/esm/helpers/validateCursor.d.ts +10 -0
  155. package/dist/types/esm/helpers/validateCursor.d.ts.map +1 -0
  156. package/dist/types/esm/index.d.ts +4 -0
  157. package/dist/types/esm/index.d.ts.map +1 -0
  158. package/dist/types/esm/main/index.d.ts +5 -0
  159. package/dist/types/esm/main/index.d.ts.map +1 -0
  160. package/dist/types/esm/types.d.ts +77 -0
  161. package/dist/types/esm/types.d.ts.map +1 -0
  162. package/dist/types/tsconfig.build.tsbuildinfo +1 -0
  163. package/package.json +54 -38
  164. package/src/__testUtils__/generateCursorCache.ts +20 -14
  165. package/src/__testUtils__/generatePageResponse.ts +17 -12
  166. package/src/__testUtils__/generatePages.ts +5 -5
  167. package/src/helpers/cacheCursors.ts +10 -7
  168. package/src/helpers/extractEdges.ts +3 -3
  169. package/src/helpers/extractNodes.ts +2 -2
  170. package/src/helpers/getCount.test.ts +10 -6
  171. package/src/helpers/getCount.ts +2 -2
  172. package/src/helpers/getCurrentPageStartAndEndIndexes.ts +1 -1
  173. package/src/helpers/getCursor.test.ts +10 -6
  174. package/src/helpers/getCursor.ts +2 -2
  175. package/src/helpers/getDirection.test.ts +10 -6
  176. package/src/helpers/getDirection.ts +3 -1
  177. package/src/helpers/getInRangeCachedEdges.ts +10 -7
  178. package/src/helpers/getIndexesOnCurrentPage.test.ts +14 -10
  179. package/src/helpers/getIndexesOnCurrentPage.ts +11 -6
  180. package/src/helpers/getIndexesOnLastPage.test.ts +10 -6
  181. package/src/helpers/getIndexesOnLastPage.ts +3 -2
  182. package/src/helpers/getPageNumbersToRequest.test.ts +15 -11
  183. package/src/helpers/getPageNumbersToRequest.ts +17 -6
  184. package/src/helpers/getPagesMissingFromCache.ts +5 -5
  185. package/src/helpers/getResultsOnLastPage.test.ts +10 -6
  186. package/src/helpers/getResultsOnLastPage.ts +1 -1
  187. package/src/helpers/getStartAndEndCursors.ts +1 -1
  188. package/src/helpers/getStartAndEndIndexes.test.ts +77 -57
  189. package/src/helpers/getStartAndEndIndexes.ts +28 -22
  190. package/src/helpers/getStartAndEndPageNumbers.test.ts +46 -28
  191. package/src/helpers/getStartAndEndPageNumbers.ts +12 -12
  192. package/src/helpers/hasPreviousNextPage.test.ts +17 -8
  193. package/src/helpers/hasPreviousNextPage.ts +6 -4
  194. package/src/helpers/isCursorFirst.test.ts +13 -7
  195. package/src/helpers/isCursorFirst.ts +3 -2
  196. package/src/helpers/isCursorLast.test.ts +27 -23
  197. package/src/helpers/isCursorLast.ts +4 -4
  198. package/src/helpers/isCursorSupplied.test.ts +18 -10
  199. package/src/helpers/isCursorSupplied.ts +3 -2
  200. package/src/helpers/isFirstPage.test.ts +10 -6
  201. package/src/helpers/isFirstPage.ts +1 -1
  202. package/src/helpers/isLastPage.test.ts +10 -6
  203. package/src/helpers/isLastPage.ts +1 -1
  204. package/src/helpers/makeEdges.ts +3 -3
  205. package/src/helpers/makeEntry.ts +8 -5
  206. package/src/helpers/mergeCachedEdges.ts +5 -5
  207. package/src/helpers/removeConnectionInputOptions.test.ts +10 -8
  208. package/src/helpers/removeConnectionInputOptions.ts +4 -3
  209. package/src/helpers/requestAndCachePages.ts +14 -11
  210. package/src/helpers/requestOutstandingPages.ts +18 -19
  211. package/src/helpers/resolveConnection.ts +20 -34
  212. package/src/helpers/retrieveCachedConnection.test.ts +703 -338
  213. package/src/helpers/retrieveCachedConnection.ts +28 -20
  214. package/src/helpers/retrieveCachedEdgesByPage.ts +10 -10
  215. package/src/helpers/retrieveEntry.ts +32 -0
  216. package/src/helpers/validateCursor.test.ts +88 -61
  217. package/src/helpers/validateCursor.ts +30 -26
  218. package/src/index.ts +3 -3
  219. package/src/main/__snapshots__/index.test.ts.snap +258 -258
  220. package/src/main/index.test.ts +405 -287
  221. package/src/main/index.ts +37 -35
  222. package/src/{defs/index.ts → types.ts} +12 -18
  223. package/tsconfig.build.json +10 -0
  224. package/tsconfig.json +11 -0
  225. package/lib/browser/index.js +0 -2
  226. package/lib/browser/index.js.map +0 -1
  227. package/lib/browser/production.analysis.txt +0 -314
  228. package/lib/main/__testUtils__/generateCursorCache.js +0 -88
  229. package/lib/main/__testUtils__/generateCursorCache.js.map +0 -1
  230. package/lib/main/__testUtils__/generatePageResponse.js +0 -33
  231. package/lib/main/__testUtils__/generatePageResponse.js.map +0 -1
  232. package/lib/main/__testUtils__/generatePages.js +0 -23
  233. package/lib/main/__testUtils__/generatePages.js.map +0 -1
  234. package/lib/main/defs/index.js +0 -2
  235. package/lib/main/defs/index.js.map +0 -1
  236. package/lib/main/helpers/cacheCursors.js +0 -40
  237. package/lib/main/helpers/cacheCursors.js.map +0 -1
  238. package/lib/main/helpers/extractEdges.js +0 -11
  239. package/lib/main/helpers/extractEdges.js.map +0 -1
  240. package/lib/main/helpers/extractNodes.js +0 -11
  241. package/lib/main/helpers/extractNodes.js.map +0 -1
  242. package/lib/main/helpers/getCount.js +0 -14
  243. package/lib/main/helpers/getCount.js.map +0 -1
  244. package/lib/main/helpers/getCurrentPageStartAndEndIndexes.js +0 -23
  245. package/lib/main/helpers/getCurrentPageStartAndEndIndexes.js.map +0 -1
  246. package/lib/main/helpers/getCursor.js +0 -14
  247. package/lib/main/helpers/getCursor.js.map +0 -1
  248. package/lib/main/helpers/getDirection.js +0 -11
  249. package/lib/main/helpers/getDirection.js.map +0 -1
  250. package/lib/main/helpers/getInRangeCachedEdges.js +0 -36
  251. package/lib/main/helpers/getInRangeCachedEdges.js.map +0 -1
  252. package/lib/main/helpers/getIndexesOnCurrentPage.js +0 -30
  253. package/lib/main/helpers/getIndexesOnCurrentPage.js.map +0 -1
  254. package/lib/main/helpers/getIndexesOnLastPage.js +0 -21
  255. package/lib/main/helpers/getIndexesOnLastPage.js.map +0 -1
  256. package/lib/main/helpers/getPageNumbersToRequest.js +0 -43
  257. package/lib/main/helpers/getPageNumbersToRequest.js.map +0 -1
  258. package/lib/main/helpers/getPagesMissingFromCache.js +0 -19
  259. package/lib/main/helpers/getPagesMissingFromCache.js.map +0 -1
  260. package/lib/main/helpers/getResultsOnLastPage.js +0 -17
  261. package/lib/main/helpers/getResultsOnLastPage.js.map +0 -1
  262. package/lib/main/helpers/getStartAndEndCursors.js +0 -22
  263. package/lib/main/helpers/getStartAndEndCursors.js.map +0 -1
  264. package/lib/main/helpers/getStartAndEndIndexes.js +0 -105
  265. package/lib/main/helpers/getStartAndEndIndexes.js.map +0 -1
  266. package/lib/main/helpers/getStartAndEndPageNumbers.js +0 -51
  267. package/lib/main/helpers/getStartAndEndPageNumbers.js.map +0 -1
  268. package/lib/main/helpers/hasPreviousNextPage.js +0 -33
  269. package/lib/main/helpers/hasPreviousNextPage.js.map +0 -1
  270. package/lib/main/helpers/isCursorFirst.js +0 -17
  271. package/lib/main/helpers/isCursorFirst.js.map +0 -1
  272. package/lib/main/helpers/isCursorLast.js +0 -27
  273. package/lib/main/helpers/isCursorLast.js.map +0 -1
  274. package/lib/main/helpers/isCursorSupplied.js +0 -14
  275. package/lib/main/helpers/isCursorSupplied.js.map +0 -1
  276. package/lib/main/helpers/isFirstPage.js +0 -11
  277. package/lib/main/helpers/isFirstPage.js.map +0 -1
  278. package/lib/main/helpers/isLastPage.js +0 -14
  279. package/lib/main/helpers/isLastPage.js.map +0 -1
  280. package/lib/main/helpers/makeEdges.js +0 -14
  281. package/lib/main/helpers/makeEdges.js.map +0 -1
  282. package/lib/main/helpers/makeEntry.js +0 -38
  283. package/lib/main/helpers/makeEntry.js.map +0 -1
  284. package/lib/main/helpers/mergeCachedEdges.js +0 -21
  285. package/lib/main/helpers/mergeCachedEdges.js.map +0 -1
  286. package/lib/main/helpers/removeConnectionInputOptions.js +0 -17
  287. package/lib/main/helpers/removeConnectionInputOptions.js.map +0 -1
  288. package/lib/main/helpers/requestAndCachePages.js +0 -66
  289. package/lib/main/helpers/requestAndCachePages.js.map +0 -1
  290. package/lib/main/helpers/requestOutstandingPages.js +0 -67
  291. package/lib/main/helpers/requestOutstandingPages.js.map +0 -1
  292. package/lib/main/helpers/resolveConnection.js +0 -95
  293. package/lib/main/helpers/resolveConnection.js.map +0 -1
  294. package/lib/main/helpers/retrieveCachedConnection.js +0 -90
  295. package/lib/main/helpers/retrieveCachedConnection.js.map +0 -1
  296. package/lib/main/helpers/retrieveCachedEdgesByPage.js +0 -45
  297. package/lib/main/helpers/retrieveCachedEdgesByPage.js.map +0 -1
  298. package/lib/main/helpers/validateCursor.js +0 -88
  299. package/lib/main/helpers/validateCursor.js.map +0 -1
  300. package/lib/main/index.js +0 -52
  301. package/lib/main/index.js.map +0 -1
  302. package/lib/main/main/index.js +0 -100
  303. package/lib/main/main/index.js.map +0 -1
  304. package/lib/module/__testUtils__/generateCursorCache.mjs +0 -71
  305. package/lib/module/__testUtils__/generateCursorCache.mjs.map +0 -1
  306. package/lib/module/__testUtils__/generatePageResponse.mjs +0 -23
  307. package/lib/module/__testUtils__/generatePageResponse.mjs.map +0 -1
  308. package/lib/module/__testUtils__/generatePages.mjs +0 -11
  309. package/lib/module/__testUtils__/generatePages.mjs.map +0 -1
  310. package/lib/module/defs/index.mjs +0 -2
  311. package/lib/module/defs/index.mjs.map +0 -1
  312. package/lib/module/helpers/cacheCursors.mjs +0 -30
  313. package/lib/module/helpers/cacheCursors.mjs.map +0 -1
  314. package/lib/module/helpers/extractEdges.mjs +0 -2
  315. package/lib/module/helpers/extractEdges.mjs.map +0 -1
  316. package/lib/module/helpers/extractNodes.mjs +0 -2
  317. package/lib/module/helpers/extractNodes.mjs.map +0 -1
  318. package/lib/module/helpers/getCount.mjs +0 -5
  319. package/lib/module/helpers/getCount.mjs.map +0 -1
  320. package/lib/module/helpers/getCurrentPageStartAndEndIndexes.mjs +0 -11
  321. package/lib/module/helpers/getCurrentPageStartAndEndIndexes.mjs.map +0 -1
  322. package/lib/module/helpers/getCursor.mjs +0 -5
  323. package/lib/module/helpers/getCursor.mjs.map +0 -1
  324. package/lib/module/helpers/getDirection.mjs +0 -2
  325. package/lib/module/helpers/getDirection.mjs.map +0 -1
  326. package/lib/module/helpers/getInRangeCachedEdges.mjs +0 -26
  327. package/lib/module/helpers/getInRangeCachedEdges.mjs.map +0 -1
  328. package/lib/module/helpers/getIndexesOnCurrentPage.mjs +0 -17
  329. package/lib/module/helpers/getIndexesOnCurrentPage.mjs.map +0 -1
  330. package/lib/module/helpers/getIndexesOnLastPage.mjs +0 -9
  331. package/lib/module/helpers/getIndexesOnLastPage.mjs.map +0 -1
  332. package/lib/module/helpers/getPageNumbersToRequest.mjs +0 -30
  333. package/lib/module/helpers/getPageNumbersToRequest.mjs.map +0 -1
  334. package/lib/module/helpers/getPagesMissingFromCache.mjs +0 -10
  335. package/lib/module/helpers/getPagesMissingFromCache.mjs.map +0 -1
  336. package/lib/module/helpers/getResultsOnLastPage.mjs +0 -8
  337. package/lib/module/helpers/getResultsOnLastPage.mjs.map +0 -1
  338. package/lib/module/helpers/getStartAndEndCursors.mjs +0 -10
  339. package/lib/module/helpers/getStartAndEndCursors.mjs.map +0 -1
  340. package/lib/module/helpers/getStartAndEndIndexes.mjs +0 -86
  341. package/lib/module/helpers/getStartAndEndIndexes.mjs.map +0 -1
  342. package/lib/module/helpers/getStartAndEndPageNumbers.mjs +0 -35
  343. package/lib/module/helpers/getStartAndEndPageNumbers.mjs.map +0 -1
  344. package/lib/module/helpers/hasPreviousNextPage.mjs +0 -18
  345. package/lib/module/helpers/hasPreviousNextPage.mjs.map +0 -1
  346. package/lib/module/helpers/isCursorFirst.mjs +0 -8
  347. package/lib/module/helpers/isCursorFirst.mjs.map +0 -1
  348. package/lib/module/helpers/isCursorLast.mjs +0 -15
  349. package/lib/module/helpers/isCursorLast.mjs.map +0 -1
  350. package/lib/module/helpers/isCursorSupplied.mjs +0 -5
  351. package/lib/module/helpers/isCursorSupplied.mjs.map +0 -1
  352. package/lib/module/helpers/isFirstPage.mjs +0 -2
  353. package/lib/module/helpers/isFirstPage.mjs.map +0 -1
  354. package/lib/module/helpers/isLastPage.mjs +0 -5
  355. package/lib/module/helpers/isLastPage.mjs.map +0 -1
  356. package/lib/module/helpers/makeEdges.mjs +0 -5
  357. package/lib/module/helpers/makeEdges.mjs.map +0 -1
  358. package/lib/module/helpers/makeEntry.mjs +0 -25
  359. package/lib/module/helpers/makeEntry.mjs.map +0 -1
  360. package/lib/module/helpers/mergeCachedEdges.mjs +0 -12
  361. package/lib/module/helpers/mergeCachedEdges.mjs.map +0 -1
  362. package/lib/module/helpers/removeConnectionInputOptions.mjs +0 -4
  363. package/lib/module/helpers/removeConnectionInputOptions.mjs.map +0 -1
  364. package/lib/module/helpers/requestAndCachePages.mjs +0 -54
  365. package/lib/module/helpers/requestAndCachePages.mjs.map +0 -1
  366. package/lib/module/helpers/requestOutstandingPages.mjs +0 -57
  367. package/lib/module/helpers/requestOutstandingPages.mjs.map +0 -1
  368. package/lib/module/helpers/resolveConnection.mjs +0 -78
  369. package/lib/module/helpers/resolveConnection.mjs.map +0 -1
  370. package/lib/module/helpers/retrieveCachedConnection.mjs +0 -70
  371. package/lib/module/helpers/retrieveCachedConnection.mjs.map +0 -1
  372. package/lib/module/helpers/retrieveCachedEdgesByPage.mjs +0 -35
  373. package/lib/module/helpers/retrieveCachedEdgesByPage.mjs.map +0 -1
  374. package/lib/module/helpers/validateCursor.mjs +0 -71
  375. package/lib/module/helpers/validateCursor.mjs.map +0 -1
  376. package/lib/module/index.mjs +0 -4
  377. package/lib/module/index.mjs.map +0 -1
  378. package/lib/module/main/index.mjs +0 -83
  379. package/lib/module/main/index.mjs.map +0 -1
  380. package/lib/types/__testUtils__/generateCursorCache.d.ts +0 -11
  381. package/lib/types/__testUtils__/generateCursorCache.d.ts.map +0 -1
  382. package/lib/types/__testUtils__/generatePageResponse.d.ts +0 -18
  383. package/lib/types/__testUtils__/generatePageResponse.d.ts.map +0 -1
  384. package/lib/types/__testUtils__/generatePages.d.ts +0 -3
  385. package/lib/types/__testUtils__/generatePages.d.ts.map +0 -1
  386. package/lib/types/defs/index.d.ts.map +0 -1
  387. package/lib/types/helpers/cacheCursors.d.ts +0 -13
  388. package/lib/types/helpers/cacheCursors.d.ts.map +0 -1
  389. package/lib/types/helpers/extractEdges.d.ts +0 -4
  390. package/lib/types/helpers/extractEdges.d.ts.map +0 -1
  391. package/lib/types/helpers/extractNodes.d.ts +0 -4
  392. package/lib/types/helpers/extractNodes.d.ts.map +0 -1
  393. package/lib/types/helpers/getCount.d.ts +0 -4
  394. package/lib/types/helpers/getCount.d.ts.map +0 -1
  395. package/lib/types/helpers/getCount.test.d.ts +0 -2
  396. package/lib/types/helpers/getCount.test.d.ts.map +0 -1
  397. package/lib/types/helpers/getCurrentPageStartAndEndIndexes.d.ts.map +0 -1
  398. package/lib/types/helpers/getCursor.d.ts +0 -4
  399. package/lib/types/helpers/getCursor.d.ts.map +0 -1
  400. package/lib/types/helpers/getCursor.test.d.ts +0 -2
  401. package/lib/types/helpers/getCursor.test.d.ts.map +0 -1
  402. package/lib/types/helpers/getDirection.d.ts +0 -3
  403. package/lib/types/helpers/getDirection.d.ts.map +0 -1
  404. package/lib/types/helpers/getDirection.test.d.ts +0 -2
  405. package/lib/types/helpers/getDirection.test.d.ts.map +0 -1
  406. package/lib/types/helpers/getInRangeCachedEdges.d.ts +0 -9
  407. package/lib/types/helpers/getInRangeCachedEdges.d.ts.map +0 -1
  408. package/lib/types/helpers/getIndexesOnCurrentPage.d.ts +0 -7
  409. package/lib/types/helpers/getIndexesOnCurrentPage.d.ts.map +0 -1
  410. package/lib/types/helpers/getIndexesOnCurrentPage.test.d.ts +0 -2
  411. package/lib/types/helpers/getIndexesOnCurrentPage.test.d.ts.map +0 -1
  412. package/lib/types/helpers/getIndexesOnLastPage.d.ts +0 -4
  413. package/lib/types/helpers/getIndexesOnLastPage.d.ts.map +0 -1
  414. package/lib/types/helpers/getIndexesOnLastPage.test.d.ts +0 -2
  415. package/lib/types/helpers/getIndexesOnLastPage.test.d.ts.map +0 -1
  416. package/lib/types/helpers/getPageNumbersToRequest.d.ts +0 -8
  417. package/lib/types/helpers/getPageNumbersToRequest.d.ts.map +0 -1
  418. package/lib/types/helpers/getPageNumbersToRequest.test.d.ts +0 -2
  419. package/lib/types/helpers/getPageNumbersToRequest.test.d.ts.map +0 -1
  420. package/lib/types/helpers/getPagesMissingFromCache.d.ts +0 -4
  421. package/lib/types/helpers/getPagesMissingFromCache.d.ts.map +0 -1
  422. package/lib/types/helpers/getResultsOnLastPage.d.ts +0 -7
  423. package/lib/types/helpers/getResultsOnLastPage.d.ts.map +0 -1
  424. package/lib/types/helpers/getResultsOnLastPage.test.d.ts +0 -2
  425. package/lib/types/helpers/getResultsOnLastPage.test.d.ts.map +0 -1
  426. package/lib/types/helpers/getStartAndEndCursors.d.ts +0 -4
  427. package/lib/types/helpers/getStartAndEndCursors.d.ts.map +0 -1
  428. package/lib/types/helpers/getStartAndEndIndexes.d.ts +0 -10
  429. package/lib/types/helpers/getStartAndEndIndexes.d.ts.map +0 -1
  430. package/lib/types/helpers/getStartAndEndIndexes.test.d.ts +0 -2
  431. package/lib/types/helpers/getStartAndEndIndexes.test.d.ts.map +0 -1
  432. package/lib/types/helpers/getStartAndEndPageNumbers.d.ts +0 -9
  433. package/lib/types/helpers/getStartAndEndPageNumbers.d.ts.map +0 -1
  434. package/lib/types/helpers/getStartAndEndPageNumbers.test.d.ts +0 -2
  435. package/lib/types/helpers/getStartAndEndPageNumbers.test.d.ts.map +0 -1
  436. package/lib/types/helpers/hasPreviousNextPage.d.ts.map +0 -1
  437. package/lib/types/helpers/hasPreviousNextPage.test.d.ts +0 -2
  438. package/lib/types/helpers/hasPreviousNextPage.test.d.ts.map +0 -1
  439. package/lib/types/helpers/isCursorFirst.d.ts +0 -8
  440. package/lib/types/helpers/isCursorFirst.d.ts.map +0 -1
  441. package/lib/types/helpers/isCursorFirst.test.d.ts +0 -2
  442. package/lib/types/helpers/isCursorFirst.test.d.ts.map +0 -1
  443. package/lib/types/helpers/isCursorLast.d.ts +0 -11
  444. package/lib/types/helpers/isCursorLast.d.ts.map +0 -1
  445. package/lib/types/helpers/isCursorLast.test.d.ts +0 -2
  446. package/lib/types/helpers/isCursorLast.test.d.ts.map +0 -1
  447. package/lib/types/helpers/isCursorSupplied.d.ts +0 -4
  448. package/lib/types/helpers/isCursorSupplied.d.ts.map +0 -1
  449. package/lib/types/helpers/isCursorSupplied.test.d.ts +0 -2
  450. package/lib/types/helpers/isCursorSupplied.test.d.ts.map +0 -1
  451. package/lib/types/helpers/isFirstPage.d.ts +0 -3
  452. package/lib/types/helpers/isFirstPage.d.ts.map +0 -1
  453. package/lib/types/helpers/isFirstPage.test.d.ts +0 -2
  454. package/lib/types/helpers/isFirstPage.test.d.ts.map +0 -1
  455. package/lib/types/helpers/isLastPage.d.ts +0 -7
  456. package/lib/types/helpers/isLastPage.d.ts.map +0 -1
  457. package/lib/types/helpers/isLastPage.test.d.ts +0 -2
  458. package/lib/types/helpers/isLastPage.test.d.ts.map +0 -1
  459. package/lib/types/helpers/makeEdges.d.ts +0 -7
  460. package/lib/types/helpers/makeEdges.d.ts.map +0 -1
  461. package/lib/types/helpers/makeEntry.d.ts +0 -11
  462. package/lib/types/helpers/makeEntry.d.ts.map +0 -1
  463. package/lib/types/helpers/mergeCachedEdges.d.ts +0 -4
  464. package/lib/types/helpers/mergeCachedEdges.d.ts.map +0 -1
  465. package/lib/types/helpers/removeConnectionInputOptions.d.ts +0 -3
  466. package/lib/types/helpers/removeConnectionInputOptions.d.ts.map +0 -1
  467. package/lib/types/helpers/removeConnectionInputOptions.test.d.ts +0 -2
  468. package/lib/types/helpers/removeConnectionInputOptions.test.d.ts.map +0 -1
  469. package/lib/types/helpers/requestAndCachePages.d.ts +0 -21
  470. package/lib/types/helpers/requestAndCachePages.d.ts.map +0 -1
  471. package/lib/types/helpers/requestOutstandingPages.d.ts +0 -18
  472. package/lib/types/helpers/requestOutstandingPages.d.ts.map +0 -1
  473. package/lib/types/helpers/resolveConnection.d.ts +0 -24
  474. package/lib/types/helpers/resolveConnection.d.ts.map +0 -1
  475. package/lib/types/helpers/retrieveCachedConnection.d.ts.map +0 -1
  476. package/lib/types/helpers/retrieveCachedConnection.test.d.ts +0 -2
  477. package/lib/types/helpers/retrieveCachedConnection.test.d.ts.map +0 -1
  478. package/lib/types/helpers/retrieveCachedEdgesByPage.d.ts +0 -12
  479. package/lib/types/helpers/retrieveCachedEdgesByPage.d.ts.map +0 -1
  480. package/lib/types/helpers/validateCursor.d.ts +0 -11
  481. package/lib/types/helpers/validateCursor.d.ts.map +0 -1
  482. package/lib/types/helpers/validateCursor.test.d.ts +0 -2
  483. package/lib/types/helpers/validateCursor.test.d.ts.map +0 -1
  484. package/lib/types/index.d.ts +0 -4
  485. package/lib/types/index.d.ts.map +0 -1
  486. package/lib/types/main/index.d.ts +0 -5
  487. package/lib/types/main/index.d.ts.map +0 -1
  488. package/lib/types/main/index.test.d.ts +0 -2
  489. package/lib/types/main/index.test.d.ts.map +0 -1
  490. package/package-lock.json +0 -18
@@ -1,105 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getEndIndex = exports.getStartIndex = void 0;
9
-
10
- var _getCount = _interopRequireDefault(require("./getCount"));
11
-
12
- var _getDirection = _interopRequireDefault(require("./getDirection"));
13
-
14
- var _getIndexesOnLastPage = _interopRequireDefault(require("./getIndexesOnLastPage"));
15
-
16
- var _isFirstPage = _interopRequireDefault(require("./isFirstPage"));
17
-
18
- var _isLastPage = _interopRequireDefault(require("./isLastPage"));
19
-
20
- const getStartIndex = (args, {
21
- entry: {
22
- index,
23
- page
24
- },
25
- resultsPerPage
26
- }) => {
27
- const count = (0, _getCount.default)(args);
28
- return (0, _getDirection.default)(args.last) === "forward" ? {
29
- absolute: index + 1,
30
- relative: index + 1
31
- } : (0, _isFirstPage.default)(page) && index - count < 0 ? {
32
- absolute: 0,
33
- relative: 0
34
- } : (() => {
35
- const absStartIndex = index - count;
36
-
37
- if (absStartIndex >= 0) {
38
- return {
39
- absolute: absStartIndex,
40
- relative: absStartIndex
41
- };
42
- }
43
-
44
- const indexesRemainingAfterLastPage = Math.abs(absStartIndex);
45
- const pagesRemaining = indexesRemainingAfterLastPage / resultsPerPage + 1;
46
- const remainder = indexesRemainingAfterLastPage % resultsPerPage;
47
- const relStartIndex = remainder === 0 ? 0 : page - pagesRemaining < 0 ? 0 : resultsPerPage - remainder;
48
- return {
49
- absolute: absStartIndex,
50
- relative: relStartIndex
51
- };
52
- })();
53
- };
54
-
55
- exports.getStartIndex = getStartIndex;
56
-
57
- const getEndIndex = (args, {
58
- entry: {
59
- index,
60
- page
61
- },
62
- metadata: {
63
- totalPages,
64
- totalResults
65
- },
66
- resultsPerPage
67
- }) => {
68
- const count = (0, _getCount.default)(args);
69
- const indexesOnLastPage = (0, _getIndexesOnLastPage.default)({
70
- resultsPerPage,
71
- totalResults
72
- });
73
- return (0, _getDirection.default)(args.last) === "backward" ? {
74
- absolute: index - 1,
75
- relative: index - 1
76
- } : (0, _isLastPage.default)({
77
- page,
78
- totalPages
79
- }) && index + count > indexesOnLastPage ? {
80
- absolute: indexesOnLastPage,
81
- relative: indexesOnLastPage
82
- } : (() => {
83
- const absEndIndex = index + count;
84
- const indexesPerPage = resultsPerPage - 1;
85
-
86
- if (absEndIndex <= indexesPerPage) {
87
- return {
88
- absolute: absEndIndex,
89
- relative: absEndIndex
90
- };
91
- }
92
-
93
- const indexesRemainingAfterFirstPage = absEndIndex - indexesPerPage;
94
- const pagesRemaining = indexesRemainingAfterFirstPage / resultsPerPage;
95
- const remainder = indexesRemainingAfterFirstPage % resultsPerPage;
96
- const relEndIndex = remainder === 0 ? indexesPerPage : page + pagesRemaining > totalPages ? indexesOnLastPage : remainder - 1;
97
- return {
98
- absolute: absEndIndex,
99
- relative: relEndIndex
100
- };
101
- })();
102
- };
103
-
104
- exports.getEndIndex = getEndIndex;
105
- //# sourceMappingURL=getStartAndEndIndexes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/helpers/getStartAndEndIndexes.ts"],"names":["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":";;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEO,MAAMA,aAAa,GAAG,CAC3BC,IAD2B,EAE3B;AAAEC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAAT;AAA0BC,EAAAA;AAA1B,CAF2B,KAGxB;AACH,QAAMC,KAAK,GAAG,uBAASL,IAAT,CAAd;AAEA,SAAO,2BAAaA,IAAI,CAACM,IAAlB,MAA4B,SAA5B,GACH;AAAEC,IAAAA,QAAQ,EAAEL,KAAK,GAAG,CAApB;AAAuBM,IAAAA,QAAQ,EAAEN,KAAK,GAAG;AAAzC,GADG,GAEH,0BAAYC,IAAZ,KAAqBD,KAAK,GAAGG,KAAR,GAAgB,CAArC,GACA;AAAEE,IAAAA,QAAQ,EAAE,CAAZ;AAAeC,IAAAA,QAAQ,EAAE;AAAzB,GADA,GAEA,CAAC,MAAM;AACL,UAAMC,aAAa,GAAGP,KAAK,GAAGG,KAA9B;;AAEA,QAAII,aAAa,IAAI,CAArB,EAAwB;AACtB,aAAO;AAAEF,QAAAA,QAAQ,EAAEE,aAAZ;AAA2BD,QAAAA,QAAQ,EAAEC;AAArC,OAAP;AACD;;AAED,UAAMC,6BAA6B,GAAGC,IAAI,CAACC,GAAL,CAASH,aAAT,CAAtC;AACA,UAAMI,cAAc,GAAGH,6BAA6B,GAAGN,cAAhC,GAAiD,CAAxE;AACA,UAAMU,SAAS,GAAGJ,6BAA6B,GAAGN,cAAlD;AACA,UAAMW,aAAa,GAAGD,SAAS,KAAK,CAAd,GAAkB,CAAlB,GAAsBX,IAAI,GAAGU,cAAP,GAAwB,CAAxB,GAA4B,CAA5B,GAAgCT,cAAc,GAAGU,SAA7F;AACA,WAAO;AAAEP,MAAAA,QAAQ,EAAEE,aAAZ;AAA2BD,MAAAA,QAAQ,EAAEO;AAArC,KAAP;AACD,GAZD,GAJJ;AAiBD,CAvBM;;;;AAyBA,MAAMC,WAAW,GAAG,CACzBhB,IADyB,EAEzB;AAAEC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAAT;AAA0Bc,EAAAA,QAAQ,EAAE;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAApC;AAAkEf,EAAAA;AAAlE,CAFyB,KAGtB;AACH,QAAMC,KAAK,GAAG,uBAASL,IAAT,CAAd;AACA,QAAMoB,iBAAiB,GAAG,mCAAqB;AAAEhB,IAAAA,cAAF;AAAkBe,IAAAA;AAAlB,GAArB,CAA1B;AAEA,SAAO,2BAAanB,IAAI,CAACM,IAAlB,MAA4B,UAA5B,GACH;AAAEC,IAAAA,QAAQ,EAAEL,KAAK,GAAG,CAApB;AAAuBM,IAAAA,QAAQ,EAAEN,KAAK,GAAG;AAAzC,GADG,GAEH,yBAAW;AAAEC,IAAAA,IAAF;AAAQe,IAAAA;AAAR,GAAX,KAAoChB,KAAK,GAAGG,KAAR,GAAgBe,iBAApD,GACA;AAAEb,IAAAA,QAAQ,EAAEa,iBAAZ;AAA+BZ,IAAAA,QAAQ,EAAEY;AAAzC,GADA,GAEA,CAAC,MAAM;AACL,UAAMC,WAAW,GAAGnB,KAAK,GAAGG,KAA5B;AACA,UAAMiB,cAAc,GAAGlB,cAAc,GAAG,CAAxC;;AAEA,QAAIiB,WAAW,IAAIC,cAAnB,EAAmC;AACjC,aAAO;AAAEf,QAAAA,QAAQ,EAAEc,WAAZ;AAAyBb,QAAAA,QAAQ,EAAEa;AAAnC,OAAP;AACD;;AAED,UAAME,8BAA8B,GAAGF,WAAW,GAAGC,cAArD;AACA,UAAMT,cAAc,GAAGU,8BAA8B,GAAGnB,cAAxD;AACA,UAAMU,SAAS,GAAGS,8BAA8B,GAAGnB,cAAnD;AAEA,UAAMoB,WAAW,GACfV,SAAS,KAAK,CAAd,GAAkBQ,cAAlB,GAAmCnB,IAAI,GAAGU,cAAP,GAAwBK,UAAxB,GAAqCE,iBAArC,GAAyDN,SAAS,GAAG,CAD1G;AAGA,WAAO;AAAEP,MAAAA,QAAQ,EAAEc,WAAZ;AAAyBb,MAAAA,QAAQ,EAAEgB;AAAnC,KAAP;AACD,GAhBD,GAJJ;AAqBD,CA5BM","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,51 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getEndPageNumber = exports.getStartPageNumber = void 0;
9
-
10
- var _getDirection = _interopRequireDefault(require("./getDirection"));
11
-
12
- var _isLastPage = _interopRequireDefault(require("./isLastPage"));
13
-
14
- const getStartPageNumber = (args, {
15
- page,
16
- startIndex,
17
- resultsPerPage
18
- }) => {
19
- if ((0, _getDirection.default)(args.last) === "forward" || startIndex.absolute >= 0) {
20
- return page;
21
- }
22
-
23
- const startPageNumber = page - Math.ceil(Math.abs(startIndex.absolute) / resultsPerPage);
24
- return startPageNumber <= 1 ? 1 : startPageNumber;
25
- };
26
-
27
- exports.getStartPageNumber = getStartPageNumber;
28
-
29
- const getEndPageNumber = (args, {
30
- endIndex,
31
- metadata: {
32
- totalPages
33
- },
34
- page,
35
- resultsPerPage
36
- }) => {
37
- const indexesPerPage = resultsPerPage - 1;
38
-
39
- if ((0, _getDirection.default)(args.last) === "backward" || (0, _isLastPage.default)({
40
- page,
41
- totalPages
42
- }) || endIndex.absolute <= indexesPerPage) {
43
- return page;
44
- }
45
-
46
- const endPageNumber = page + Math.ceil((endIndex.absolute - indexesPerPage) / resultsPerPage);
47
- return endPageNumber >= totalPages ? totalPages : endPageNumber;
48
- };
49
-
50
- exports.getEndPageNumber = getEndPageNumber;
51
- //# sourceMappingURL=getStartAndEndPageNumbers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/helpers/getStartAndEndPageNumbers.ts"],"names":["getStartPageNumber","args","page","startIndex","resultsPerPage","last","absolute","startPageNumber","Math","ceil","abs","getEndPageNumber","endIndex","metadata","totalPages","indexesPerPage","endPageNumber"],"mappings":";;;;;;;;;AACA;;AACA;;AAQO,MAAMA,kBAAkB,GAAG,CAChCC,IADgC,EAEhC;AAAEC,EAAAA,IAAF;AAAQC,EAAAA,UAAR;AAAoBC,EAAAA;AAApB,CAFgC,KAG7B;AACH,MAAI,2BAAaH,IAAI,CAACI,IAAlB,MAA4B,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;;;;AAYA,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,MACE,2BAAaH,IAAI,CAACI,IAAlB,MAA4B,UAA5B,IACA,yBAAW;AAAEH,IAAAA,IAAF;AAAQY,IAAAA;AAAR,GAAX,CADA,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,33 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.hasNextPage = exports.hasPreviousPage = void 0;
9
-
10
- var _getIndexesOnLastPage = _interopRequireDefault(require("./getIndexesOnLastPage"));
11
-
12
- const hasPreviousPage = ({
13
- cachedEdgesByPage,
14
- startIndex
15
- }) => cachedEdgesByPage[0].pageNumber !== 1 || startIndex.relative > 0;
16
-
17
- exports.hasPreviousPage = hasPreviousPage;
18
-
19
- const hasNextPage = ({
20
- cachedEdgesByPage,
21
- endIndex,
22
- metadata: {
23
- totalPages,
24
- totalResults
25
- },
26
- resultsPerPage
27
- }) => cachedEdgesByPage[cachedEdgesByPage.length - 1].pageNumber !== totalPages || endIndex.relative < (0, _getIndexesOnLastPage.default)({
28
- resultsPerPage,
29
- totalResults
30
- });
31
-
32
- exports.hasNextPage = hasNextPage;
33
- //# sourceMappingURL=hasPreviousNextPage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/helpers/hasPreviousNextPage.ts"],"names":["hasPreviousPage","cachedEdgesByPage","startIndex","pageNumber","relative","hasNextPage","endIndex","metadata","totalPages","totalResults","resultsPerPage","length"],"mappings":";;;;;;;;;AACA;;AAcO,MAAMA,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;;;;AAGA,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,GAAoB,mCAAqB;AAAEM,EAAAA,cAAF;AAAkBD,EAAAA;AAAlB,CAArB,CAPf","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,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _default = ({
9
- direction,
10
- entry: {
11
- index,
12
- page
13
- }
14
- }) => direction === "backward" && page === 1 && index === 0;
15
-
16
- exports.default = _default;
17
- //# sourceMappingURL=isCursorFirst.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/helpers/isCursorFirst.ts"],"names":["direction","entry","index","page"],"mappings":";;;;;;;eAOe,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,C","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,27 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _getIndexesOnLastPage = _interopRequireDefault(require("./getIndexesOnLastPage"));
11
-
12
- var _default = ({
13
- direction,
14
- entry: {
15
- index,
16
- page
17
- },
18
- resultsPerPage,
19
- totalPages,
20
- totalResults
21
- }) => direction === "forward" && page === totalPages && index === (0, _getIndexesOnLastPage.default)({
22
- resultsPerPage,
23
- totalResults
24
- });
25
-
26
- exports.default = _default;
27
- //# sourceMappingURL=isCursorLast.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/helpers/isCursorLast.ts"],"names":["direction","entry","index","page","resultsPerPage","totalPages","totalResults"],"mappings":";;;;;;;;;AACA;;eAUe,CAAC;AAAEA,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,KAAK,mCAAqB;AAAEE,EAAAA,cAAF;AAAkBE,EAAAA;AAAlB,CAArB,C","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,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _default = ({
9
- after,
10
- before
11
- }) => !!(after || before);
12
-
13
- exports.default = _default;
14
- //# sourceMappingURL=isCursorSupplied.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/helpers/isCursorSupplied.ts"],"names":["after","before"],"mappings":";;;;;;;eAEe,CAAC;AAAEA,EAAAA,KAAF;AAASC,EAAAA;AAAT,CAAD,KAA6D,CAAC,EAAED,KAAK,IAAIC,MAAX,C","sourcesContent":["import { ConnectionInputOptions, PlainObject } from \"../defs\";\n\nexport default ({ after, before }: PlainObject & ConnectionInputOptions) => !!(after || before);\n"],"file":"isCursorSupplied.js"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _default = page => page === 1;
9
-
10
- exports.default = _default;
11
- //# sourceMappingURL=isFirstPage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/helpers/isFirstPage.ts"],"names":["page"],"mappings":";;;;;;;eAAgBA,IAAD,IAAkBA,IAAI,KAAK,C","sourcesContent":["export default (page: number) => page === 1;\n"],"file":"isFirstPage.js"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _default = ({
9
- page,
10
- totalPages
11
- }) => page === totalPages;
12
-
13
- exports.default = _default;
14
- //# sourceMappingURL=isLastPage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/helpers/isLastPage.ts"],"names":["page","totalPages"],"mappings":";;;;;;;eAKe,CAAC;AAAEA,EAAAA,IAAF;AAAQC,EAAAA;AAAR,CAAD,KAAkCD,IAAI,KAAKC,U","sourcesContent":["export type Params = {\n page: number;\n totalPages: number;\n};\n\nexport default ({ page, totalPages }: Params) => page === totalPages;\n"],"file":"isLastPage.js"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _default = (nodes, makeCursor) => nodes.map(node => ({
9
- node,
10
- cursor: makeCursor(node)
11
- }));
12
-
13
- exports.default = _default;
14
- //# sourceMappingURL=makeEdges.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/helpers/makeEdges.ts"],"names":["nodes","makeCursor","map","node","cursor"],"mappings":";;;;;;;eAEe,CAACA,KAAD,EAAgBC,UAAhB,KACbD,KAAK,CAACE,GAAN,CAAUC,IAAI,KAAK;AAAEA,EAAAA,IAAF;AAAQC,EAAAA,MAAM,EAAEH,UAAU,CAACE,IAAD;AAA1B,CAAL,CAAd,C","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,38 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _getDirection = _interopRequireDefault(require("./getDirection"));
11
-
12
- var _getIndexesOnLastPage = _interopRequireDefault(require("./getIndexesOnLastPage"));
13
-
14
- var _default = (args, {
15
- metadata: {
16
- totalPages,
17
- totalResults
18
- },
19
- resultsPerPage
20
- }) => {
21
- if ((0, _getDirection.default)(args.last) === "backward") {
22
- return {
23
- index: (0, _getIndexesOnLastPage.default)({
24
- resultsPerPage,
25
- totalResults
26
- }) + 1,
27
- page: totalPages
28
- };
29
- }
30
-
31
- return {
32
- index: -1,
33
- page: 1
34
- };
35
- };
36
-
37
- exports.default = _default;
38
- //# sourceMappingURL=makeEntry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/helpers/makeEntry.ts"],"names":["args","metadata","totalPages","totalResults","resultsPerPage","last","index","page"],"mappings":";;;;;;;;;AACA;;AACA;;eAOe,CAACA,IAAD,EAA+B;AAAEC,EAAAA,QAAQ,EAAE;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAZ;AAA0CC,EAAAA;AAA1C,CAA/B,KAAuG;AACpH,MAAI,2BAAaJ,IAAI,CAACK,IAAlB,MAA4B,UAAhC,EAA4C;AAC1C,WAAO;AAAEC,MAAAA,KAAK,EAAE,mCAAqB;AAAEF,QAAAA,cAAF;AAAkBD,QAAAA;AAAlB,OAArB,IAAyD,CAAlE;AAAqEI,MAAAA,IAAI,EAAEL;AAA3E,KAAP;AACD;;AAED,SAAO;AAAEI,IAAAA,KAAK,EAAE,CAAC,CAAV;AAAaC,IAAAA,IAAI,EAAE;AAAnB,GAAP;AACD,C","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,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _default = (cachedEdges, missingCachedEdges) => cachedEdges.reduce((mergedCachedEdges, cachedEdge) => {
9
- if (!cachedEdge.edges.length) {
10
- const missingCachedEdge = missingCachedEdges.find(missing => missing.pageNumber === cachedEdge.pageNumber);
11
-
12
- if (missingCachedEdge) {
13
- return [...mergedCachedEdges, missingCachedEdge];
14
- }
15
- }
16
-
17
- return [...mergedCachedEdges, cachedEdge];
18
- }, []);
19
-
20
- exports.default = _default;
21
- //# sourceMappingURL=mergeCachedEdges.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/helpers/mergeCachedEdges.ts"],"names":["cachedEdges","missingCachedEdges","reduce","mergedCachedEdges","cachedEdge","edges","length","missingCachedEdge","find","missing","pageNumber"],"mappings":";;;;;;;eAEe,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,C","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,17 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _pickBy2 = _interopRequireDefault(require("lodash/pickBy"));
11
-
12
- const connectionInputOptions = ["after", "before", "first", "last"];
13
-
14
- var _default = args => (0, _pickBy2.default)(args, (_value, key) => !connectionInputOptions.includes(key));
15
-
16
- exports.default = _default;
17
- //# sourceMappingURL=removeConnectionInputOptions.js.map
@@ -1 +0,0 @@
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;;eAEkCC,IAAnB,IAA+B,sBAAOA,IAAP,EAAa,CAACC,MAAD,EAASC,GAAT,KAAiB,CAACH,sBAAsB,CAACI,QAAvB,CAAgCD,GAAhC,CAA/B,C","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,66 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- require("core-js/modules/es.promise.js");
11
-
12
- var _cacheCursors = _interopRequireDefault(require("./cacheCursors"));
13
-
14
- var _makeEdges = _interopRequireDefault(require("./makeEdges"));
15
-
16
- const requestAndCachePages = async (pages, {
17
- cursorCache,
18
- getters,
19
- groupCursor,
20
- makeIDCursor,
21
- resourceResolver
22
- }) => {
23
- const errors = [];
24
- const cachedEdges = await Promise.all(pages.map(async page => {
25
- const {
26
- data: pageResultData,
27
- errors: pageResultErrors,
28
- headers: pageResultHeaders
29
- } = await resourceResolver({
30
- page
31
- });
32
-
33
- if (pageResultData && !(pageResultErrors !== null && pageResultErrors !== void 0 && pageResultErrors.length)) {
34
- const edges = (0, _makeEdges.default)(getters.nodes(pageResultData), node => makeIDCursor(node.id));
35
- await (0, _cacheCursors.default)(cursorCache, {
36
- edges,
37
- group: groupCursor,
38
- headers: pageResultHeaders,
39
- page,
40
- totalPages: getters.totalPages(pageResultData),
41
- totalResults: getters.totalResults(pageResultData)
42
- });
43
- return {
44
- edges,
45
- pageNumber: page
46
- };
47
- }
48
-
49
- if (pageResultErrors !== null && pageResultErrors !== void 0 && pageResultErrors.length) {
50
- errors.push(...pageResultErrors);
51
- }
52
-
53
- return {
54
- edges: [],
55
- pageNumber: page
56
- };
57
- }));
58
- return {
59
- cachedEdges,
60
- errors
61
- };
62
- };
63
-
64
- var _default = requestAndCachePages;
65
- exports.default = _default;
66
- //# sourceMappingURL=requestAndCachePages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/helpers/requestAndCachePages.ts"],"names":["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;;AACA;;AAUA,MAAMA,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,GAAG,wBAAUhB,OAAO,CAACiB,KAAR,CAAcN,cAAd,CAAV,EAAyCO,IAAI,IAAIhB,YAAY,CAACgB,IAAI,CAACC,EAAN,CAA7D,CAAd;AAEA,YAAM,2BAAapB,WAAb,EAA0B;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,OAA1B,CAAN;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;;eAsCeP,oB","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,67 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- require("core-js/modules/es.promise.js");
9
-
10
- var _default = async ({
11
- count,
12
- direction,
13
- page,
14
- results,
15
- resultsPerPage,
16
- totalPages,
17
- totalResults
18
- }, requestCallback) => {
19
- const resultsOnLastPage = totalResults % totalPages;
20
- const outstanding = count - results;
21
- let toRequest;
22
-
23
- if (direction === "forward") {
24
- toRequest = Math.ceil(outstanding / resultsPerPage);
25
- } else {
26
- if (page === totalPages) {
27
- if (count <= resultsOnLastPage) {
28
- toRequest = 1;
29
- } else {
30
- toRequest = Math.ceil(count - resultsOnLastPage / resultsPerPage) + 1;
31
- }
32
- } else {
33
- toRequest = Math.ceil(outstanding / resultsPerPage);
34
- }
35
- }
36
-
37
- const promises = [];
38
-
39
- for (let i = 0; i < toRequest; i += 1) {
40
- promises.push(requestCallback({
41
- nextPage: direction === "forward" ? page + i : page - i
42
- }));
43
- }
44
-
45
- const missingPages = [];
46
- const pageResults = (await Promise.allSettled(promises)).reduce((pages, {
47
- status,
48
- ...rest
49
- }, i) => {
50
- if (status === "fulfilled") {
51
- pages.push(rest.value);
52
- }
53
-
54
- if (status === "rejected") {
55
- missingPages.push(direction === "forward" ? page + i : page - i);
56
- }
57
-
58
- return pages;
59
- }, []);
60
- return {
61
- missingPages,
62
- pageResults
63
- };
64
- };
65
-
66
- exports.default = _default;
67
- //# sourceMappingURL=requestOutstandingPages.js.map
@@ -1 +0,0 @@
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":";;;;;;;;;eAYe,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,C","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"}