@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
@@ -3,7 +3,7 @@ export type Params = {
3
3
  totalResults: number;
4
4
  };
5
5
 
6
- export default ({ resultsPerPage, totalResults }: Params) => {
6
+ export const getResultsOnLastPage = ({ resultsPerPage, totalResults }: Params) => {
7
7
  const remainder = totalResults % resultsPerPage;
8
8
  return remainder === 0 ? resultsPerPage : remainder;
9
9
  };
@@ -1,4 +1,4 @@
1
- import { Edge } from "../defs";
1
+ import { type Edge } from '../types.ts';
2
2
 
3
3
  export const getStartCursor = (edges: Edge[]) => edges[0]?.cursor;
4
4
 
@@ -1,17 +1,17 @@
1
- import { getEndIndex, getStartIndex } from "./getStartAndEndIndexes";
1
+ import { getEndIndex, getStartIndex } from './getStartAndEndIndexes.ts';
2
2
 
3
- describe("getStartIndex", () => {
4
- test("when the direction is forward", () => {
3
+ describe('getStartIndex', () => {
4
+ describe('when the direction is forward', () => {
5
5
  const args = {
6
- after: "abcdefg",
6
+ after: 'abcdefg',
7
7
  first: 5,
8
8
  };
9
9
 
10
10
  const ctx = {
11
11
  entry: {
12
- group: "qwerty",
12
+ group: 'qwerty',
13
13
  index: 5,
14
- node: { id: "123" },
14
+ node: { id: '123' },
15
15
  page: 3,
16
16
  },
17
17
  metadata: {
@@ -21,21 +21,23 @@ describe("getStartIndex", () => {
21
21
  resultsPerPage: 10,
22
22
  };
23
23
 
24
- expect(getStartIndex(args, ctx)).toEqual({ absolute: 6, relative: 6 });
24
+ it('should return the correct value', () => {
25
+ expect(getStartIndex(args, ctx)).toEqual({ absolute: 6, relative: 6 });
26
+ });
25
27
  });
26
28
 
27
- describe("when the direction is backward", () => {
28
- test("when on first page and count takes the start index negative", () => {
29
+ describe('when the direction is backward', () => {
30
+ describe('when on first page and count takes the start index negative', () => {
29
31
  const args = {
30
- before: "abcdefg",
32
+ before: 'abcdefg',
31
33
  last: 5,
32
34
  };
33
35
 
34
36
  const ctx = {
35
37
  entry: {
36
- group: "qwerty",
38
+ group: 'qwerty',
37
39
  index: 3,
38
- node: { id: "123" },
40
+ node: { id: '123' },
39
41
  page: 1,
40
42
  },
41
43
  metadata: {
@@ -45,20 +47,22 @@ describe("getStartIndex", () => {
45
47
  resultsPerPage: 10,
46
48
  };
47
49
 
48
- expect(getStartIndex(args, ctx)).toEqual({ absolute: 0, relative: 0 });
50
+ it('should return the correct value', () => {
51
+ expect(getStartIndex(args, ctx)).toEqual({ absolute: 0, relative: 0 });
52
+ });
49
53
  });
50
54
 
51
- test("when on first page and count DOES NOT takes the start index negative", () => {
55
+ describe('when on first page and count DOES NOT takes the start index negative', () => {
52
56
  const args = {
53
- before: "abcdefg",
57
+ before: 'abcdefg',
54
58
  last: 2,
55
59
  };
56
60
 
57
61
  const ctx = {
58
62
  entry: {
59
- group: "qwerty",
63
+ group: 'qwerty',
60
64
  index: 4,
61
- node: { id: "123" },
65
+ node: { id: '123' },
62
66
  page: 1,
63
67
  },
64
68
  metadata: {
@@ -68,21 +72,23 @@ describe("getStartIndex", () => {
68
72
  resultsPerPage: 10,
69
73
  };
70
74
 
71
- expect(getStartIndex(args, ctx)).toEqual({ absolute: 2, relative: 2 });
75
+ it('should return the correct value', () => {
76
+ expect(getStartIndex(args, ctx)).toEqual({ absolute: 2, relative: 2 });
77
+ });
72
78
  });
73
79
 
74
- describe("when NOT on first page", () => {
75
- test("when the start index is more than than or equal to 0", () => {
80
+ describe('when NOT on first page', () => {
81
+ describe('when the start index is more than than or equal to 0', () => {
76
82
  const args = {
77
- before: "abcdefg",
83
+ before: 'abcdefg',
78
84
  last: 4,
79
85
  };
80
86
 
81
87
  const ctx = {
82
88
  entry: {
83
- group: "qwerty",
89
+ group: 'qwerty',
84
90
  index: 7,
85
- node: { id: "123" },
91
+ node: { id: '123' },
86
92
  page: 3,
87
93
  },
88
94
  metadata: {
@@ -92,20 +98,22 @@ describe("getStartIndex", () => {
92
98
  resultsPerPage: 10,
93
99
  };
94
100
 
95
- expect(getStartIndex(args, ctx)).toEqual({ absolute: 3, relative: 3 });
101
+ it('should return the correct value', () => {
102
+ expect(getStartIndex(args, ctx)).toEqual({ absolute: 3, relative: 3 });
103
+ });
96
104
  });
97
105
 
98
- test("when the start index is less than 0", () => {
106
+ describe('when the start index is less than 0', () => {
99
107
  const args = {
100
- before: "abcdefg",
108
+ before: 'abcdefg',
101
109
  last: 15,
102
110
  };
103
111
 
104
112
  const ctx = {
105
113
  entry: {
106
- group: "qwerty",
114
+ group: 'qwerty',
107
115
  index: 4,
108
- node: { id: "123" },
116
+ node: { id: '123' },
109
117
  page: 3,
110
118
  },
111
119
  metadata: {
@@ -115,24 +123,26 @@ describe("getStartIndex", () => {
115
123
  resultsPerPage: 10,
116
124
  };
117
125
 
118
- expect(getStartIndex(args, ctx)).toEqual({ absolute: -11, relative: 9 });
126
+ it('should return the correct value', () => {
127
+ expect(getStartIndex(args, ctx)).toEqual({ absolute: -11, relative: 9 });
128
+ });
119
129
  });
120
130
  });
121
131
  });
122
132
  });
123
133
 
124
- describe("getEndIndex", () => {
125
- test("when the direction is backward", () => {
134
+ describe('getEndIndex', () => {
135
+ describe('when the direction is backward', () => {
126
136
  const args = {
127
- before: "abcdefg",
137
+ before: 'abcdefg',
128
138
  last: 5,
129
139
  };
130
140
 
131
141
  const ctx = {
132
142
  entry: {
133
- group: "qwerty",
143
+ group: 'qwerty',
134
144
  index: 5,
135
- node: { id: "123" },
145
+ node: { id: '123' },
136
146
  page: 3,
137
147
  },
138
148
  metadata: {
@@ -142,21 +152,23 @@ describe("getEndIndex", () => {
142
152
  resultsPerPage: 10,
143
153
  };
144
154
 
145
- expect(getEndIndex(args, ctx)).toEqual({ absolute: 4, relative: 4 });
155
+ it('should return the correct value', () => {
156
+ expect(getEndIndex(args, ctx)).toEqual({ absolute: 4, relative: 4 });
157
+ });
146
158
  });
147
159
 
148
- describe("when the direction is forward", () => {
149
- test("when on last page and count takes end index over last index", () => {
160
+ describe('when the direction is forward', () => {
161
+ describe('when on last page and count takes end index over last index', () => {
150
162
  const args = {
151
- after: "abcdefg",
163
+ after: 'abcdefg',
152
164
  first: 15,
153
165
  };
154
166
 
155
167
  const ctx = {
156
168
  entry: {
157
- group: "qwerty",
169
+ group: 'qwerty',
158
170
  index: 2,
159
- node: { id: "123" },
171
+ node: { id: '123' },
160
172
  page: 6,
161
173
  },
162
174
  metadata: {
@@ -166,20 +178,22 @@ describe("getEndIndex", () => {
166
178
  resultsPerPage: 10,
167
179
  };
168
180
 
169
- expect(getEndIndex(args, ctx)).toEqual({ absolute: 6, relative: 6 });
181
+ it('should return the correct value', () => {
182
+ expect(getEndIndex(args, ctx)).toEqual({ absolute: 6, relative: 6 });
183
+ });
170
184
  });
171
185
 
172
- test("when on last page and count DOES NOT take end index over last index", () => {
186
+ describe('when on last page and count DOES NOT take end index over last index', () => {
173
187
  const args = {
174
- after: "abcdefg",
188
+ after: 'abcdefg',
175
189
  first: 2,
176
190
  };
177
191
 
178
192
  const ctx = {
179
193
  entry: {
180
- group: "qwerty",
194
+ group: 'qwerty',
181
195
  index: 2,
182
- node: { id: "123" },
196
+ node: { id: '123' },
183
197
  page: 6,
184
198
  },
185
199
  metadata: {
@@ -189,21 +203,23 @@ describe("getEndIndex", () => {
189
203
  resultsPerPage: 10,
190
204
  };
191
205
 
192
- expect(getEndIndex(args, ctx)).toEqual({ absolute: 4, relative: 4 });
206
+ it('should return the correct value', () => {
207
+ expect(getEndIndex(args, ctx)).toEqual({ absolute: 4, relative: 4 });
208
+ });
193
209
  });
194
210
 
195
- describe("when NOT on last page", () => {
196
- test("when the end index is less than or equal to indexes per page", () => {
211
+ describe('when NOT on last page', () => {
212
+ describe('when the end index is less than or equal to indexes per page', () => {
197
213
  const args = {
198
- after: "abcdefg",
214
+ after: 'abcdefg',
199
215
  first: 7,
200
216
  };
201
217
 
202
218
  const ctx = {
203
219
  entry: {
204
- group: "qwerty",
220
+ group: 'qwerty',
205
221
  index: 2,
206
- node: { id: "123" },
222
+ node: { id: '123' },
207
223
  page: 4,
208
224
  },
209
225
  metadata: {
@@ -213,20 +229,22 @@ describe("getEndIndex", () => {
213
229
  resultsPerPage: 10,
214
230
  };
215
231
 
216
- expect(getEndIndex(args, ctx)).toEqual({ absolute: 9, relative: 9 });
232
+ it('should return the correct value', () => {
233
+ expect(getEndIndex(args, ctx)).toEqual({ absolute: 9, relative: 9 });
234
+ });
217
235
  });
218
236
 
219
- test("when end index is greater than indexes per page", () => {
237
+ describe('when end index is greater than indexes per page', () => {
220
238
  const args = {
221
- after: "abcdefg",
239
+ after: 'abcdefg',
222
240
  first: 20,
223
241
  };
224
242
 
225
243
  const ctx = {
226
244
  entry: {
227
- group: "qwerty",
245
+ group: 'qwerty',
228
246
  index: 2,
229
- node: { id: "123" },
247
+ node: { id: '123' },
230
248
  page: 4,
231
249
  },
232
250
  metadata: {
@@ -236,7 +254,9 @@ describe("getEndIndex", () => {
236
254
  resultsPerPage: 10,
237
255
  };
238
256
 
239
- expect(getEndIndex(args, ctx)).toEqual({ absolute: 22, relative: 2 });
257
+ it('should return the correct value', () => {
258
+ expect(getEndIndex(args, ctx)).toEqual({ absolute: 22, relative: 2 });
259
+ });
240
260
  });
241
261
  });
242
262
  });
@@ -1,61 +1,67 @@
1
- import { ConnectionInputOptions, Context } from "../defs";
2
- import getCount from "./getCount";
3
- import getDirection from "./getDirection";
4
- import getIndexesOnLastPage from "./getIndexesOnLastPage";
5
- import isFirstPage from "./isFirstPage";
6
- import isLastPage from "./isLastPage";
1
+ import { type ConnectionInputOptions, type CursorGroupMetadata, type PartialCursorCacheEntry } from '../types.ts';
2
+ import { getCount } from './getCount.ts';
3
+ import { getDirection } from './getDirection.ts';
4
+ import { getIndexesOnLastPage } from './getIndexesOnLastPage.ts';
5
+ import { isFirstPage } from './isFirstPage.ts';
6
+ import { isLastPage } from './isLastPage.ts';
7
+
8
+ export type Context = {
9
+ entry: PartialCursorCacheEntry;
10
+ metadata: CursorGroupMetadata;
11
+ resultsPerPage: number;
12
+ };
7
13
 
8
14
  export const getStartIndex = (
9
15
  args: ConnectionInputOptions,
10
- { entry: { index, page }, resultsPerPage }: Pick<Context, "entry" | "resultsPerPage">,
16
+ { entry: { index, page }, resultsPerPage }: Pick<Context, 'entry' | 'resultsPerPage'>
11
17
  ) => {
12
18
  const count = getCount(args);
13
19
 
14
- return getDirection(args.last) === "forward"
20
+ return getDirection(args.last) === 'forward'
15
21
  ? { absolute: index + 1, relative: index + 1 }
16
22
  : isFirstPage(page) && index - count < 0
17
23
  ? { absolute: 0, relative: 0 }
18
24
  : (() => {
19
- const absStartIndex = index - count;
25
+ const absoluteStartIndex = index - count;
20
26
 
21
- if (absStartIndex >= 0) {
22
- return { absolute: absStartIndex, relative: absStartIndex };
27
+ if (absoluteStartIndex >= 0) {
28
+ return { absolute: absoluteStartIndex, relative: absoluteStartIndex };
23
29
  }
24
30
 
25
- const indexesRemainingAfterLastPage = Math.abs(absStartIndex);
31
+ const indexesRemainingAfterLastPage = Math.abs(absoluteStartIndex);
26
32
  const pagesRemaining = indexesRemainingAfterLastPage / resultsPerPage + 1;
27
33
  const remainder = indexesRemainingAfterLastPage % resultsPerPage;
28
- const relStartIndex = remainder === 0 ? 0 : page - pagesRemaining < 0 ? 0 : resultsPerPage - remainder;
29
- return { absolute: absStartIndex, relative: relStartIndex };
34
+ const relativeStartIndex = remainder === 0 ? 0 : page - pagesRemaining < 0 ? 0 : resultsPerPage - remainder;
35
+ return { absolute: absoluteStartIndex, relative: relativeStartIndex };
30
36
  })();
31
37
  };
32
38
 
33
39
  export const getEndIndex = (
34
40
  args: ConnectionInputOptions,
35
- { entry: { index, page }, metadata: { totalPages, totalResults }, resultsPerPage }: Context,
41
+ { entry: { index, page }, metadata: { totalPages, totalResults }, resultsPerPage }: Context
36
42
  ) => {
37
43
  const count = getCount(args);
38
44
  const indexesOnLastPage = getIndexesOnLastPage({ resultsPerPage, totalResults });
39
45
 
40
- return getDirection(args.last) === "backward"
46
+ return getDirection(args.last) === 'backward'
41
47
  ? { absolute: index - 1, relative: index - 1 }
42
48
  : isLastPage({ page, totalPages }) && index + count > indexesOnLastPage
43
49
  ? { absolute: indexesOnLastPage, relative: indexesOnLastPage }
44
50
  : (() => {
45
- const absEndIndex = index + count;
51
+ const absoluteEndIndex = index + count;
46
52
  const indexesPerPage = resultsPerPage - 1;
47
53
 
48
- if (absEndIndex <= indexesPerPage) {
49
- return { absolute: absEndIndex, relative: absEndIndex };
54
+ if (absoluteEndIndex <= indexesPerPage) {
55
+ return { absolute: absoluteEndIndex, relative: absoluteEndIndex };
50
56
  }
51
57
 
52
- const indexesRemainingAfterFirstPage = absEndIndex - indexesPerPage;
58
+ const indexesRemainingAfterFirstPage = absoluteEndIndex - indexesPerPage;
53
59
  const pagesRemaining = indexesRemainingAfterFirstPage / resultsPerPage;
54
60
  const remainder = indexesRemainingAfterFirstPage % resultsPerPage;
55
61
 
56
- const relEndIndex =
62
+ const relativeEndIndex =
57
63
  remainder === 0 ? indexesPerPage : page + pagesRemaining > totalPages ? indexesOnLastPage : remainder - 1;
58
64
 
59
- return { absolute: absEndIndex, relative: relEndIndex };
65
+ return { absolute: absoluteEndIndex, relative: relativeEndIndex };
60
66
  })();
61
67
  };
@@ -1,9 +1,9 @@
1
- import { getEndPageNumber, getStartPageNumber } from "./getStartAndEndPageNumbers";
1
+ import { getEndPageNumber, getStartPageNumber } from './getStartAndEndPageNumbers.ts';
2
2
 
3
- describe("getStartPageNumber", () => {
4
- test("when the direction is forward", () => {
3
+ describe('getStartPageNumber', () => {
4
+ describe('when the direction is forward', () => {
5
5
  const args = {
6
- after: "abcdefg",
6
+ after: 'abcdefg',
7
7
  };
8
8
 
9
9
  const ctx = {
@@ -16,11 +16,13 @@ describe("getStartPageNumber", () => {
16
16
  startIndex: { absolute: 5, relative: 5 },
17
17
  };
18
18
 
19
- expect(getStartPageNumber(args, ctx)).toBe(3);
19
+ it('should return the correct value', () => {
20
+ expect(getStartPageNumber(args, ctx)).toBe(3);
21
+ });
20
22
  });
21
23
 
22
- describe("when the direction is backward", () => {
23
- test("when start index is greater or equal to zero", () => {
24
+ describe('when the direction is backward', () => {
25
+ describe('when start index is greater or equal to zero', () => {
24
26
  const args = {
25
27
  last: 5,
26
28
  };
@@ -35,10 +37,12 @@ describe("getStartPageNumber", () => {
35
37
  startIndex: { absolute: 1, relative: 1 },
36
38
  };
37
39
 
38
- expect(getStartPageNumber(args, ctx)).toBe(3);
40
+ it('should return the correct value', () => {
41
+ expect(getStartPageNumber(args, ctx)).toBe(3);
42
+ });
39
43
  });
40
44
 
41
- test("when start page number is less than or equal to 1", () => {
45
+ describe('when start page number is less than or equal to 1', () => {
42
46
  const args = {
43
47
  last: 5,
44
48
  };
@@ -53,10 +57,12 @@ describe("getStartPageNumber", () => {
53
57
  startIndex: { absolute: -35, relative: 5 },
54
58
  };
55
59
 
56
- expect(getStartPageNumber(args, ctx)).toBe(1);
60
+ it('should return the correct value', () => {
61
+ expect(getStartPageNumber(args, ctx)).toBe(1);
62
+ });
57
63
  });
58
64
 
59
- test("when start page number is NOT less than or equal to 1", () => {
65
+ describe('when start page number is NOT less than or equal to 1', () => {
60
66
  const args = {
61
67
  last: 5,
62
68
  };
@@ -71,13 +77,15 @@ describe("getStartPageNumber", () => {
71
77
  startIndex: { absolute: -15, relative: 5 },
72
78
  };
73
79
 
74
- expect(getStartPageNumber(args, ctx)).toBe(2);
80
+ it('should return the correct value', () => {
81
+ expect(getStartPageNumber(args, ctx)).toBe(2);
82
+ });
75
83
  });
76
84
  });
77
85
  });
78
86
 
79
- describe("getEndPageNumber", () => {
80
- test("when the direction is backward", () => {
87
+ describe('getEndPageNumber', () => {
88
+ describe('when the direction is backward', () => {
81
89
  const args = {
82
90
  last: 5,
83
91
  };
@@ -92,13 +100,15 @@ describe("getEndPageNumber", () => {
92
100
  resultsPerPage: 10,
93
101
  };
94
102
 
95
- expect(getEndPageNumber(args, ctx)).toBe(3);
103
+ it('should return the correct value', () => {
104
+ expect(getEndPageNumber(args, ctx)).toBe(3);
105
+ });
96
106
  });
97
107
 
98
- describe("when the direction is forward", () => {
99
- test("when the page is the last page", () => {
108
+ describe('when the direction is forward', () => {
109
+ describe('when the page is the last page', () => {
100
110
  const args = {
101
- after: "abcdefg",
111
+ after: 'abcdefg',
102
112
  };
103
113
 
104
114
  const ctx = {
@@ -111,12 +121,14 @@ describe("getEndPageNumber", () => {
111
121
  resultsPerPage: 10,
112
122
  };
113
123
 
114
- expect(getEndPageNumber(args, ctx)).toBe(5);
124
+ it('should return the correct value', () => {
125
+ expect(getEndPageNumber(args, ctx)).toBe(5);
126
+ });
115
127
  });
116
128
 
117
- test("when the end index is less than the indexes per page", () => {
129
+ describe('when the end index is less than the indexes per page', () => {
118
130
  const args = {
119
- after: "abcdefg",
131
+ after: 'abcdefg',
120
132
  };
121
133
 
122
134
  const ctx = {
@@ -129,12 +141,14 @@ describe("getEndPageNumber", () => {
129
141
  resultsPerPage: 10,
130
142
  };
131
143
 
132
- expect(getEndPageNumber(args, ctx)).toBe(3);
144
+ it('should return the correct value', () => {
145
+ expect(getEndPageNumber(args, ctx)).toBe(3);
146
+ });
133
147
  });
134
148
 
135
- test("when the end page number is greater or equal to total pages", () => {
149
+ describe('when the end page number is greater or equal to total pages', () => {
136
150
  const args = {
137
- after: "abcdefg",
151
+ after: 'abcdefg',
138
152
  };
139
153
 
140
154
  const ctx = {
@@ -147,12 +161,14 @@ describe("getEndPageNumber", () => {
147
161
  resultsPerPage: 10,
148
162
  };
149
163
 
150
- expect(getEndPageNumber(args, ctx)).toBe(5);
164
+ it('should return the correct value', () => {
165
+ expect(getEndPageNumber(args, ctx)).toBe(5);
166
+ });
151
167
  });
152
168
 
153
- test("when the end page number is NOT greater or equal to total pages", () => {
169
+ describe('when the end page number is NOT greater or equal to total pages', () => {
154
170
  const args = {
155
- after: "abcdefg",
171
+ after: 'abcdefg',
156
172
  };
157
173
 
158
174
  const ctx = {
@@ -165,7 +181,9 @@ describe("getEndPageNumber", () => {
165
181
  resultsPerPage: 10,
166
182
  };
167
183
 
168
- expect(getEndPageNumber(args, ctx)).toBe(4);
184
+ it('should return the correct value', () => {
185
+ expect(getEndPageNumber(args, ctx)).toBe(4);
186
+ });
169
187
  });
170
188
  });
171
189
  });
@@ -1,6 +1,6 @@
1
- import { ConnectionInputOptions, Context, Indexes } from "../defs";
2
- import getDirection from "./getDirection";
3
- import isLastPage from "./isLastPage";
1
+ import { type ConnectionInputOptions, type CursorGroupMetadata, type Indexes } from '../types.ts';
2
+ import { getDirection } from './getDirection.ts';
3
+ import { isLastPage } from './isLastPage.ts';
4
4
 
5
5
  export type PageNumberContext = {
6
6
  endIndex: Indexes;
@@ -8,11 +8,16 @@ export type PageNumberContext = {
8
8
  startIndex: Indexes;
9
9
  };
10
10
 
11
+ export type Context = {
12
+ metadata: CursorGroupMetadata;
13
+ resultsPerPage: number;
14
+ };
15
+
11
16
  export const getStartPageNumber = (
12
17
  args: ConnectionInputOptions,
13
- { page, startIndex, resultsPerPage }: Omit<PageNumberContext, "endIndex"> & Omit<Context, "entry" | "metadata">,
18
+ { page, resultsPerPage, startIndex }: Omit<PageNumberContext, 'endIndex'> & Omit<Context, 'metadata'>
14
19
  ) => {
15
- if (getDirection(args.last) === "forward" || startIndex.absolute >= 0) {
20
+ if (getDirection(args.last) === 'forward' || startIndex.absolute >= 0) {
16
21
  return page;
17
22
  }
18
23
 
@@ -22,17 +27,12 @@ export const getStartPageNumber = (
22
27
 
23
28
  export const getEndPageNumber = (
24
29
  args: ConnectionInputOptions,
25
- {
26
- endIndex,
27
- metadata: { totalPages },
28
- page,
29
- resultsPerPage,
30
- }: Omit<PageNumberContext, "startIndex"> & Omit<Context, "entry">,
30
+ { endIndex, metadata: { totalPages }, page, resultsPerPage }: Omit<PageNumberContext, 'startIndex'> & Context
31
31
  ) => {
32
32
  const indexesPerPage = resultsPerPage - 1;
33
33
 
34
34
  if (
35
- getDirection(args.last) === "backward" ||
35
+ getDirection(args.last) === 'backward' ||
36
36
  isLastPage({ page, totalPages }) ||
37
37
  endIndex.absolute <= indexesPerPage
38
38
  ) {
@@ -1,7 +1,7 @@
1
- import { hasPreviousPage } from "./hasPreviousNextPage";
1
+ import { hasPreviousPage } from './hasPreviousNextPage.ts';
2
2
 
3
- describe("hasPreviousPage", () => {
4
- test("when first page number is 1 and start index is 0", () => {
3
+ describe('hasPreviousPage', () => {
4
+ describe('when first page number is 1 and start index is 0', () => {
5
5
  const cachedEdgesByPage = [
6
6
  {
7
7
  edges: [],
@@ -10,10 +10,13 @@ describe("hasPreviousPage", () => {
10
10
  ];
11
11
 
12
12
  const startIndex = { absolute: 0, relative: 0 };
13
- expect(hasPreviousPage({ cachedEdgesByPage, startIndex })).toBe(false);
13
+
14
+ it('should return the correct value', () => {
15
+ expect(hasPreviousPage({ cachedEdgesByPage, startIndex })).toBe(false);
16
+ });
14
17
  });
15
18
 
16
- test("when start index is NOT 0", () => {
19
+ describe('when start index is NOT 0', () => {
17
20
  const cachedEdgesByPage = [
18
21
  {
19
22
  edges: [],
@@ -22,10 +25,13 @@ describe("hasPreviousPage", () => {
22
25
  ];
23
26
 
24
27
  const startIndex = { absolute: 5, relative: 5 };
25
- expect(hasPreviousPage({ cachedEdgesByPage, startIndex })).toBe(true);
28
+
29
+ it('should return the correct value', () => {
30
+ expect(hasPreviousPage({ cachedEdgesByPage, startIndex })).toBe(true);
31
+ });
26
32
  });
27
33
 
28
- test("when first page number is NOT 1", () => {
34
+ describe('when first page number is NOT 1', () => {
29
35
  const cachedEdgesByPage = [
30
36
  {
31
37
  edges: [],
@@ -34,6 +40,9 @@ describe("hasPreviousPage", () => {
34
40
  ];
35
41
 
36
42
  const startIndex = { absolute: 0, relative: 0 };
37
- expect(hasPreviousPage({ cachedEdgesByPage, startIndex })).toBe(true);
43
+
44
+ it('should return the correct value', () => {
45
+ expect(hasPreviousPage({ cachedEdgesByPage, startIndex })).toBe(true);
46
+ });
38
47
  });
39
48
  });