@openapi-qraft/react 1.0.9 → 1.1.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 (103) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/QraftContext.d.ts +3 -0
  3. package/dist/QraftContext.d.ts.map +1 -1
  4. package/dist/QraftContext.js.map +1 -1
  5. package/dist/ServiceOperation.d.ts +98 -22
  6. package/dist/ServiceOperation.d.ts.map +1 -1
  7. package/dist/callbacks/getInfiniteQueryData.d.ts.map +1 -1
  8. package/dist/callbacks/getInfiniteQueryData.js +4 -4
  9. package/dist/callbacks/getInfiniteQueryData.js.map +1 -1
  10. package/dist/callbacks/getInfiniteQueryKey.d.ts +1 -5
  11. package/dist/callbacks/getInfiniteQueryKey.d.ts.map +1 -1
  12. package/dist/callbacks/getInfiniteQueryKey.js +2 -4
  13. package/dist/callbacks/getInfiniteQueryKey.js.map +1 -1
  14. package/dist/callbacks/getQueryData.d.ts.map +1 -1
  15. package/dist/callbacks/getQueryData.js +2 -4
  16. package/dist/callbacks/getQueryData.js.map +1 -1
  17. package/dist/callbacks/getQueryKey.d.ts +1 -4
  18. package/dist/callbacks/getQueryKey.d.ts.map +1 -1
  19. package/dist/callbacks/getQueryKey.js +2 -4
  20. package/dist/callbacks/getQueryKey.js.map +1 -1
  21. package/dist/callbacks/invalidateQueries.d.ts +5 -0
  22. package/dist/callbacks/invalidateQueries.d.ts.map +1 -0
  23. package/dist/callbacks/invalidateQueries.js +36 -0
  24. package/dist/callbacks/invalidateQueries.js.map +1 -0
  25. package/dist/callbacks/setInfiniteQueryData.d.ts.map +1 -1
  26. package/dist/callbacks/setInfiniteQueryData.js +4 -1
  27. package/dist/callbacks/setInfiniteQueryData.js.map +1 -1
  28. package/dist/callbacks/setQueryData.d.ts.map +1 -1
  29. package/dist/callbacks/setQueryData.js +4 -4
  30. package/dist/callbacks/setQueryData.js.map +1 -1
  31. package/dist/callbacks/useInfiniteQuery.d.ts.map +1 -1
  32. package/dist/callbacks/useInfiniteQuery.js +9 -9
  33. package/dist/callbacks/useInfiniteQuery.js.map +1 -1
  34. package/dist/callbacks/useMutation.d.ts +1 -1
  35. package/dist/callbacks/useMutation.d.ts.map +1 -1
  36. package/dist/callbacks/useMutation.js +4 -5
  37. package/dist/callbacks/useMutation.js.map +1 -1
  38. package/dist/callbacks/useMutationState.d.ts +1 -1
  39. package/dist/callbacks/useMutationState.d.ts.map +1 -1
  40. package/dist/callbacks/useMutationState.js +4 -5
  41. package/dist/callbacks/useMutationState.js.map +1 -1
  42. package/dist/callbacks/useQueries.d.ts.map +1 -1
  43. package/dist/callbacks/useQueries.js +27 -20
  44. package/dist/callbacks/useQueries.js.map +1 -1
  45. package/dist/callbacks/useQuery.d.ts +2 -2
  46. package/dist/callbacks/useQuery.d.ts.map +1 -1
  47. package/dist/callbacks/useQuery.js +9 -10
  48. package/dist/callbacks/useQuery.js.map +1 -1
  49. package/dist/callbacks/useSuspenseInfiniteQuery.d.ts.map +1 -1
  50. package/dist/callbacks/useSuspenseInfiniteQuery.js +9 -9
  51. package/dist/callbacks/useSuspenseInfiniteQuery.js.map +1 -1
  52. package/dist/callbacks/useSuspenseQueries.d.ts.map +1 -1
  53. package/dist/callbacks/useSuspenseQueries.js +27 -20
  54. package/dist/callbacks/useSuspenseQueries.js.map +1 -1
  55. package/dist/callbacks/useSuspenseQuery.d.ts.map +1 -1
  56. package/dist/callbacks/useSuspenseQuery.js +8 -9
  57. package/dist/callbacks/useSuspenseQuery.js.map +1 -1
  58. package/dist/lib/composeInfiniteQueryKey.d.ts +4 -0
  59. package/dist/lib/composeInfiniteQueryKey.d.ts.map +1 -0
  60. package/dist/lib/composeInfiniteQueryKey.js +4 -0
  61. package/dist/lib/composeInfiniteQueryKey.js.map +1 -0
  62. package/dist/lib/composeQueryKey.d.ts +4 -0
  63. package/dist/lib/composeQueryKey.d.ts.map +1 -0
  64. package/dist/lib/composeQueryKey.js +4 -0
  65. package/dist/lib/composeQueryKey.js.map +1 -0
  66. package/dist/lib/createRecursiveProxy.d.ts +7 -5
  67. package/dist/lib/createRecursiveProxy.d.ts.map +1 -1
  68. package/dist/lib/createRecursiveProxy.js +14 -9
  69. package/dist/lib/createRecursiveProxy.js.map +1 -1
  70. package/dist/lib/request.d.ts.map +1 -1
  71. package/dist/lib/request.js +15 -3
  72. package/dist/lib/request.js.map +1 -1
  73. package/dist/qraftAPIClient.d.ts.map +1 -1
  74. package/dist/qraftAPIClient.js +16 -7
  75. package/dist/qraftAPIClient.js.map +1 -1
  76. package/package.json +3 -2
  77. package/src/QraftContext.ts +4 -0
  78. package/src/ServiceOperation.ts +152 -25
  79. package/src/callbacks/getInfiniteQueryData.ts +6 -4
  80. package/src/callbacks/getInfiniteQueryKey.ts +3 -8
  81. package/src/callbacks/getQueryData.ts +5 -8
  82. package/src/callbacks/getQueryKey.ts +3 -8
  83. package/src/callbacks/invalidateQueries.ts +70 -0
  84. package/src/callbacks/setInfiniteQueryData.ts +4 -1
  85. package/src/callbacks/setQueryData.ts +5 -4
  86. package/src/callbacks/useInfiniteQuery.ts +18 -9
  87. package/src/callbacks/useMutation.ts +9 -6
  88. package/src/callbacks/useMutationState.ts +9 -6
  89. package/src/callbacks/useQueries.ts +35 -24
  90. package/src/callbacks/useQuery.ts +16 -16
  91. package/src/callbacks/useSuspenseInfiniteQuery.ts +15 -9
  92. package/src/callbacks/useSuspenseQueries.ts +35 -24
  93. package/src/callbacks/useSuspenseQuery.ts +10 -8
  94. package/src/lib/composeInfiniteQueryKey.ts +12 -0
  95. package/src/lib/composeQueryKey.ts +9 -0
  96. package/src/lib/createRecursiveProxy.ts +32 -11
  97. package/src/lib/request.ts +20 -2
  98. package/src/qraftAPIClient.ts +25 -13
  99. package/dist/lib/createCallbackProxyDecoration.d.ts +0 -5
  100. package/dist/lib/createCallbackProxyDecoration.d.ts.map +0 -1
  101. package/dist/lib/createCallbackProxyDecoration.js +0 -21
  102. package/dist/lib/createCallbackProxyDecoration.js.map +0 -1
  103. package/src/lib/createCallbackProxyDecoration.ts +0 -34
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAA2B,EAC3B,WAA2B,EAC3B,EACE,aAAa,EAAE,iBAAiB,EAChC,cAAc,EAAE,kBAAkB,GAInC;IAED,MAAM,EACJ,MAAM,EACN,GAAG,EACH,UAAU,EACV,SAAS,EACT,OAAO,EACP,IAAI,EACJ,GAAG,eAAe,EACnB,GAAG,WAAW,CAAC;IAEhB,MAAM,WAAW,GAAG,kBAAkB,CAAC;QACrC,MAAM;QACN,SAAS;QACT,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE;QAC3E,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;QAC5B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,YAAY,CACnB;YACE,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC;SACtD,EACD,OAAO,EACP,UAAU,EAAE,MAAM,EAClB,WAAW,YAAY,QAAQ;YAC7B,CAAC,CAAC,sHAAsH;gBACtH,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1B,CAAC,CAAC,SAAS,CACd;QACD,GAAG,eAAe;KACnB,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;IAExC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,CAAC,MAAM,eAAe,CAAC,cAAc,CAAC,CAAM,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,MAA2B,EAC3B,EAAE,GAAG,EAAE,UAAU,EAA8C;IAE/D,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,SAAiB,EAAE,KAAa,EAAE,EAAE;QACxE,IAAI,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE,KAAK,EAAE,CAAC;QACtB,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,cAAc,CAAC,MAA2B;IACjD,MAAM,EAAE,GAAa,EAAE,CAAC;IAExB,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE;QACzC,EAAE,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE;QAC1C,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAE3D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;gBACvC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC9C,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,GAAG,UAA0C;IACjE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChD,SAAS;QACX,CAAC;QAED,MAAM,eAAe,GACnB,SAAS,YAAY,OAAO;YAC1B,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE;YACrB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,eAAe,EAAE,CAAC;YACvD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAI9B;IACC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO;IAEvC,IACE,OAAO,CAAC,MAAM,KAAK,KAAK;QACxB,OAAO,CAAC,MAAM,KAAK,MAAM;QACzB,OAAO,CAAC,MAAM,KAAK,SAAS;QAE5B,OAAO;IAET,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC;QAC3C,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEzC,IACE,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC;QACrC,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;YAC/B,OAAO,CAAC,IAAI,YAAY,IAAI;YAC5B,OAAO,CAAC,IAAI,YAAY,QAAQ,CAAC,EACnC,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,sBAAsB,CAAC,EAC9B,IAAI,GACyB;IAC7B,IAAI,IAAI,YAAY,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAE1B,IAAI,IAAI,YAAY,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC7E,IAAI,IAAI,YAAY,WAAW;QAC7B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,IAAI,IAAI,YAAY,eAAe;QACjC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,IAAI,IAAI,YAAY,cAAc;QAChC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,IAAI,OAAO,IAAI,KAAK,QAAQ;QAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,IAAI,gBAAgB,CAAC,CAAC;IAExE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAEhC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YACvD,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACjB,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,CAAC;SACtE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA4B;IACtD,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,IAAI,YAAY,IAAI;QAAE,OAAO,IAAI,CAAC,IAAI,IAAI,0BAA0B,CAAC;IACzE,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC;IAClD,IAAI,CAAC,CAAC,IAAI,YAAY,QAAQ,CAAC;QAAE,OAAO,kBAAkB,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,eAAe,CAAI,QAAkB;IAClD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,GAAG;QAC3E,OAAO,SAAS,CAAC;IAEnB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;IACxE,MAAM,MAAM,GACV,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEnE,IAAI,MAAM,EAAE,CAAC;QACX,iEAAiE;QACjE,IAAI,QAAQ,CAAC,EAAE;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QAExC,MAAM,qBAAqB,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,gCAAgC;QAEhF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YAChC,IACE,OAAO,OAAO,KAAK,WAAW;gBAC9B,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW;gBAClC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EACtC,CAAC;gBACD,OAAO,CAAC,IAAI,CACV,gEAAgE,CACjE,CAAC;YACJ,CAAC;YACD,4DAA4D;YAC5D,OAAO,qBAAqB,CAAC,IAAI,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;AACvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"qraftAPIClient.d.ts","sourceRoot":"","sources":["../src/qraftAPIClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,cAAc,4JAMf,kBAAkB,uDAoB7B,CAAC;AAeF,KAAK,cAAc,CAAC,QAAQ,IAAI;KAC7B,OAAO,IAAI,MAAM,QAAQ,GAAG;SAC1B,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;YAAE,MAAM,EAAE,mBAAmB,CAAA;SAAE;KACrE;CACF,CAAC;AAEF,KAAK,mBAAmB,CAAC,QAAQ,SAAS,cAAc,CAAC,QAAQ,CAAC,IAAI;KACnE,OAAO,IAAI,MAAM,QAAQ,GAAG;SAC1B,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;YACnC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC7C;KACF;CACF,CAAC;AAEF,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAEjE,KAAK,uBAAuB,CAC1B,QAAQ,SAAS,cAAc,CAAC,QAAQ,CAAC,EACzC,SAAS,IACP,QAAQ,SAAS;KAClB,WAAW,IAAI,MAAM,QAAQ,GAAG;SAC9B,MAAM,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG;YAAE,MAAM,EAAE,mBAAmB,CAAA;SAAE;KACzE;CACF,GACG;KACG,WAAW,IAAI,MAAM,QAAQ,GAAG;SAC9B,MAAM,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAC3C,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAC7B,UAAU,CACR,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EACnC,SAAS,GAAG,QAAQ,GAAG,OAAO,CAC/B,CACF;KACF;CACF,GACD,KAAK,CAAC;AAEV,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"qraftAPIClient.d.ts","sourceRoot":"","sources":["../src/qraftAPIClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,cAAc,4JAMf,kBAAkB,uDAgC7B,CAAC;AAeF,KAAK,cAAc,CAAC,QAAQ,IAAI;KAC7B,OAAO,IAAI,MAAM,QAAQ,GAAG;SAC1B,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;YAAE,MAAM,EAAE,mBAAmB,CAAA;SAAE;KACrE;CACF,CAAC;AAEF,KAAK,mBAAmB,CAAC,QAAQ,SAAS,cAAc,CAAC,QAAQ,CAAC,IAAI;KACnE,OAAO,IAAI,MAAM,QAAQ,GAAG;SAC1B,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;YACnC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC7C;KACF;CACF,CAAC;AAEF,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAEjE,KAAK,uBAAuB,CAC1B,QAAQ,SAAS,cAAc,CAAC,QAAQ,CAAC,EACzC,SAAS,IACP,QAAQ,SAAS;KAClB,WAAW,IAAI,MAAM,QAAQ,GAAG;SAC9B,MAAM,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG;YAAE,MAAM,EAAE,mBAAmB,CAAA;SAAE;KACzE;CACF,GACG;KACG,WAAW,IAAI,MAAM,QAAQ,GAAG;SAC9B,MAAM,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAC3C,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAC7B,UAAU,CACR,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EACnC,SAAS,GAAG,QAAQ,GAAG,OAAO,CAC/B,CACF;KACF;CACF,GACD,KAAK,CAAC;AAEV,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
@@ -1,14 +1,23 @@
1
- import { createCallbackProxyDecoration } from './lib/createCallbackProxyDecoration.js';
1
+ import { createRecursiveProxy } from './lib/createRecursiveProxy.js';
2
2
  export const qraftAPIClient = (services, callbacks, options) => {
3
- return createCallbackProxyDecoration(Object.keys(callbacks), (path, functionName, args) => {
3
+ return createRecursiveProxy((getPath, key) => {
4
+ if (getPath.length !== 2 || key !== 'schema')
5
+ return;
6
+ const serviceOperation = getByPath(services, getPath);
7
+ if (!isServiceOperation(serviceOperation))
8
+ throw new Error(`Service operation not found: ${getPath.join('.')}`);
9
+ return serviceOperation.schema;
10
+ }, (applyPath, args) => {
11
+ const path = applyPath.slice(0, -1);
4
12
  const serviceOperation = getByPath(services, path);
5
13
  if (!isServiceOperation(serviceOperation))
6
14
  throw new Error(`Service operation not found: ${path.join('.')}`);
7
- if (functionName in callbacks) {
8
- return callbacks[functionName](options, serviceOperation.schema, args);
9
- }
10
- throw new Error(`Not supported API method: ${String(functionName)}`);
11
- });
15
+ // The last arg is for instance `.useMutation` or `.useQuery()`
16
+ const functionName = applyPath[applyPath.length - 1];
17
+ if (!(functionName in callbacks))
18
+ throw new Error(`Function ${functionName} is not supported`);
19
+ return callbacks[functionName](options, serviceOperation.schema, args);
20
+ }, []);
12
21
  };
13
22
  function isServiceOperation(input) {
14
23
  return input !== null && typeof input === 'object' && 'schema' in input;
@@ -1 +1 @@
1
- {"version":3,"file":"qraftAPIClient.js","sourceRoot":"","sources":["../src/qraftAPIClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAQvF,MAAM,CAAC,MAAM,cAAc,GAAG,CAI5B,QAAuC,EACvC,SAAoB,EACpB,OAA4B,EACwB,EAAE;IACtD,OAAO,6BAA6B,CAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EACtB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEpE,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC,YAA+B,CAAC,CAC/C,OAAO,EACP,gBAAgB,CAAC,MAAM,EACvB,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC,CACO,CAAC;AACb,CAAC,CAAC;AAEF,SAAS,kBAAkB,CACzB,KAAc;IAEd,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,CAAC;AAC1E,CAAC;AAED,SAAS,SAAS,CAAC,GAA4B,EAAE,IAAc;IAC7D,OAAO,IAAI,CAAC,MAAM,CAAU,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,GAAG;YAC9C,OAAO,GAAG,CAAC,GAAuB,CAAC,CAAC;IACxC,CAAC,EAAE,GAAG,CAAC,CAAC;AACV,CAAC"}
1
+ {"version":3,"file":"qraftAPIClient.js","sourceRoot":"","sources":["../src/qraftAPIClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAQrE,MAAM,CAAC,MAAM,cAAc,GAAG,CAI5B,QAAuC,EACvC,SAAoB,EACpB,OAA4B,EACwB,EAAE;IACtD,OAAO,oBAAoB,CACzB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QACf,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO;QAErD,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,gBAAgB,CAAC,MAAM,CAAC;IACjC,CAAC,EACD,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE;QAClB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEnD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEpE,+DAA+D;QAC/D,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAErD,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,YAAY,mBAAmB,CAAC,CAAC;QAE/D,OAAO,SAAS,CAAC,YAA+B,CAAC,CAC/C,OAAO,EACP,gBAAgB,CAAC,MAAM,EACvB,IAAI,CACL,CAAC;IACJ,CAAC,EACD,EAAE,CACM,CAAC;AACb,CAAC,CAAC;AAEF,SAAS,kBAAkB,CACzB,KAAc;IAEd,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,CAAC;AAC1E,CAAC;AAED,SAAS,SAAS,CAAC,GAA4B,EAAE,IAAc;IAC7D,OAAO,IAAI,CAAC,MAAM,CAAU,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,GAAG;YAC9C,OAAO,GAAG,CAAC,GAAuB,CAAC,CAAC;IACxC,CAAC,EAAE,GAAG,CAAC,CAAC;AACV,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@openapi-qraft/react",
3
- "version": "1.0.9",
3
+ "version": "1.1.0",
4
4
  "description": "API client for React, providing type-safe requests and dynamic Tanstack Query React Hooks via a modular, Proxy-based architecture.",
5
5
  "scripts": {
6
6
  "build": "rimraf dist/ && tsc --project tsconfig.build.json",
7
7
  "dev": "rimraf dist/ && tsc --project tsconfig.build.json --watch",
8
8
  "test": "vitest run",
9
+ "test:coverage": "vitest run --coverage",
9
10
  "typecheck": "tsc --noEmit",
10
11
  "generate-qraft": "openapi-qraft src/tests/fixtures/openapi.json --clean -o src/tests/fixtures/api --openapi-types-import-path '../../openapi.js' --explicit-import-extensions && prettier --write src/tests/fixtures/api/**/*.ts",
11
12
  "generate-types": "openapi-qraft-typescript src/tests/fixtures/openapi.json -o src/tests/fixtures/openapi.ts"
@@ -13,7 +14,7 @@
13
14
  "type": "module",
14
15
  "sideEffects": false,
15
16
  "devDependencies": {
16
- "@openapi-qraft/cli": "~1.0.4",
17
+ "@openapi-qraft/cli": "~1.1.0",
17
18
  "@openapi-qraft/openapi-typescript": "^1.0.0",
18
19
  "@tanstack/react-query": "^5.17.3",
19
20
  "@testing-library/jest-dom": "^5.17.0",
@@ -2,12 +2,16 @@
2
2
 
3
3
  import { createContext } from 'react';
4
4
 
5
+ import type { QueryClient } from '@tanstack/react-query';
6
+
5
7
  import type { RequestClient } from './RequestClient.js';
6
8
 
7
9
  export type QraftContextValue =
8
10
  | {
9
11
  /** The request client to use for making requests. Will be invoked with every request. */
10
12
  requestClient: RequestClient;
13
+ /** The QueryClient to use in Hooks */
14
+ queryClient?: QueryClient;
11
15
  }
12
16
  | undefined;
13
17
 
@@ -1,12 +1,15 @@
1
1
  import {
2
2
  DefaultError,
3
+ FetchStatus,
3
4
  InfiniteData,
4
5
  InfiniteQueryPageParamsOptions,
6
+ InvalidateOptions,
5
7
  Mutation,
6
8
  MutationState,
7
9
  MutationStatus,
8
10
  NoInfer,
9
11
  QueriesPlaceholderDataFunction,
12
+ Query,
10
13
  QueryClient,
11
14
  SetDataOptions,
12
15
  Updater,
@@ -56,10 +59,11 @@ export interface ServiceOperationQuery<
56
59
  ServiceOperationUseSuspenseQueryQuery<TSchema, TData, TParams, TError>,
57
60
  ServiceOperationUseSuspenseInfiniteQuery<TSchema, TData, TParams, TError>,
58
61
  ServiceOperationQueryFn<TSchema, TData, TParams>,
59
- ServiceOperationGetQueryData<TData, TParams>,
60
- ServiceOperationGetInfiniteQueryData<TData, TParams>,
61
- ServiceOperationSetQueryData<TData, TParams>,
62
- ServiceOperationSetInfiniteQueryData<TData, TParams> {
62
+ ServiceOperationGetQueryData<TSchema, TData, TParams>,
63
+ ServiceOperationGetInfiniteQueryData<TSchema, TData, TParams>,
64
+ ServiceOperationSetQueryData<TSchema, TData, TParams>,
65
+ ServiceOperationSetInfiniteQueryData<TSchema, TData, TParams>,
66
+ ServiceOperationInvalidateQueries<TSchema, TData, TParams, TError> {
63
67
  schema: TSchema;
64
68
  types: {
65
69
  parameters: TParams;
@@ -74,12 +78,12 @@ interface ServiceOperationUseQuery<
74
78
  TParams = {},
75
79
  TError = DefaultError,
76
80
  > {
77
- getQueryKey<QueryKeyParams extends TParams>(
78
- parameters: QueryKeyParams
81
+ getQueryKey<QueryKeyParams extends TParams | undefined = undefined>(
82
+ parameters?: QueryKeyParams
79
83
  ): ServiceOperationQueryKey<TSchema, QueryKeyParams>;
80
84
 
81
85
  useQuery(
82
- parameters: TParams,
86
+ parameters: TParams | ServiceOperationQueryKey<TSchema, TParams>,
83
87
  options?: Omit<
84
88
  UndefinedInitialDataOptions<
85
89
  TData,
@@ -92,7 +96,7 @@ interface ServiceOperationUseQuery<
92
96
  queryClient?: QueryClient
93
97
  ): UseQueryResult<TData, TError | Error>;
94
98
  useQuery(
95
- parameters: TParams,
99
+ parameters: TParams | ServiceOperationQueryKey<TSchema, TParams>,
96
100
  options: Omit<
97
101
  DefinedInitialDataOptions<
98
102
  TData,
@@ -124,9 +128,11 @@ interface ServiceOperationUseQueries<
124
128
  >,
125
129
  'placeholderData' | 'suspense' | 'queryKey'
126
130
  > & {
127
- parameters: TParams;
128
131
  placeholderData?: TData | QueriesPlaceholderDataFunction<TData>;
129
- }
132
+ } & (
133
+ | { parameters: TParams }
134
+ | { queryKey: ServiceOperationQueryKey<TSchema, TParams> }
135
+ )
130
136
  >;
131
137
  combine?: (
132
138
  results: Array<UseQueryResult<TData, TError>>
@@ -136,6 +142,108 @@ interface ServiceOperationUseQueries<
136
142
  ): TCombinedResult;
137
143
  }
138
144
 
145
+ type QueryTypeFilter = 'all' | 'active' | 'inactive';
146
+
147
+ interface InvalidateQueryFiltersBase<
148
+ TSchema extends { url: string; method: string },
149
+ TData,
150
+ TParams = {},
151
+ TError = DefaultError,
152
+ > {
153
+ /**
154
+ * Filter to active queries, inactive queries or all queries
155
+ */
156
+ type?: QueryTypeFilter;
157
+ /**
158
+ * Match query key exactly
159
+ */
160
+ exact?: boolean;
161
+ /**
162
+ * Include queries matching this predicate function
163
+ */
164
+ predicate?: (
165
+ query: Query<
166
+ TData,
167
+ TError,
168
+ TData,
169
+ | ServiceOperationQueryKey<TSchema, TParams>
170
+ | ServiceOperationInfiniteQueryKey<TSchema, TParams>
171
+ >
172
+ ) => boolean;
173
+ /**
174
+ * Include or exclude stale queries
175
+ */
176
+ stale?: boolean;
177
+ /**
178
+ * Include queries matching their fetchStatus
179
+ */
180
+ fetchStatus?: FetchStatus;
181
+
182
+ refetchType?: QueryTypeFilter | 'none';
183
+ }
184
+
185
+ interface InvalidateQueryFiltersByQueryKey<
186
+ TSchema extends { url: string; method: string },
187
+ TData,
188
+ TParams = {},
189
+ TError = DefaultError,
190
+ > extends InvalidateQueryFiltersBase<TSchema, TData, TParams, TError> {
191
+ /**
192
+ * Include queries matching this query key
193
+ */
194
+ queryKey?: ServiceOperationQueryKey<TSchema, TParams>;
195
+ }
196
+
197
+ interface InvalidateQueryFiltersByParameters<
198
+ TSchema extends { url: string; method: string },
199
+ TData,
200
+ TParams = {},
201
+ TError = DefaultError,
202
+ > extends InvalidateQueryFiltersBase<TSchema, TData, TParams, TError> {
203
+ /**
204
+ * Include queries matching parameters
205
+ */
206
+ parameters?: TParams;
207
+ }
208
+
209
+ interface ServiceOperationInvalidateQueries<
210
+ TSchema extends { url: string; method: string },
211
+ TData,
212
+ TParams = {},
213
+ TError = DefaultError,
214
+ > {
215
+ invalidateQueries(
216
+ filters:
217
+ | InvalidateQueryFiltersByParameters<TSchema, TData, TParams, TError>
218
+ | InvalidateQueryFiltersByQueryKey<TSchema, TData, TParams, TError>,
219
+ options: InvalidateOptions,
220
+ queryClient: QueryClient
221
+ ): Promise<void>;
222
+ invalidateQueries(
223
+ filters:
224
+ | InvalidateQueryFiltersByParameters<TSchema, TData, TParams, TError>
225
+ | InvalidateQueryFiltersByQueryKey<TSchema, TData, TParams, TError>,
226
+ queryClient: QueryClient
227
+ ): Promise<void>;
228
+ invalidateQueries(queryClient: QueryClient): Promise<void>;
229
+ }
230
+
231
+ export interface ServiceOperationInvalidateQueriesCallback<
232
+ TSchema extends { url: string; method: string },
233
+ TData,
234
+ TParams = {},
235
+ TError = DefaultError,
236
+ > extends ServiceOperationInvalidateQueries<TSchema, TData, TParams, TError> {
237
+ invalidateQueries(
238
+ filters:
239
+ | InvalidateQueryFiltersByParameters<TSchema, TData, TParams, TError>
240
+ | InvalidateQueryFiltersByQueryKey<TSchema, TData, TParams, TError>
241
+ | QueryClient,
242
+ options?: InvalidateOptions | QueryClient,
243
+ queryClient?: QueryClient
244
+ ): Promise<void>;
245
+ }
246
+
139
247
  interface ServiceOperationUseSuspenseQueries<
140
248
  TSchema extends { url: string; method: string },
141
249
  TData,
@@ -155,7 +263,11 @@ interface ServiceOperationUseSuspenseQueries<
155
263
  ServiceOperationQueryKey<TSchema, TParams>
156
264
  >,
157
265
  'queryKey'
158
- > & { parameters: TParams }
266
+ > &
267
+ (
268
+ | { parameters: TParams }
269
+ | { queryKey: ServiceOperationQueryKey<TSchema, TParams> }
270
+ )
159
271
  >;
160
272
  combine?: (
161
273
  results: Array<UseSuspenseQueryResult<TData, TError>>
@@ -176,7 +288,7 @@ interface ServiceOperationUseInfiniteQuery<
176
288
  ): ServiceOperationInfiniteQueryKey<TSchema, TQueryKeyParams>;
177
289
 
178
290
  useInfiniteQuery<TPageParam extends TParams>(
179
- parameters: TParams,
291
+ parameters: TParams | ServiceOperationInfiniteQueryKey<TSchema, TParams>,
180
292
  options: Omit<
181
293
  UndefinedInitialDataInfiniteOptions<
182
294
  TData,
@@ -194,7 +306,7 @@ interface ServiceOperationUseInfiniteQuery<
194
306
  queryClient?: QueryClient
195
307
  ): UseInfiniteQueryResult<InfiniteData<TData>, TError | Error>;
196
308
  useInfiniteQuery<TPageParam extends TParams>(
197
- parameters: TParams,
309
+ parameters: TParams | ServiceOperationInfiniteQueryKey<TSchema, TParams>,
198
310
  options: Omit<
199
311
  DefinedInitialDataInfiniteOptions<
200
312
  TData,
@@ -220,7 +332,7 @@ interface ServiceOperationUseSuspenseInfiniteQuery<
220
332
  TError = DefaultError,
221
333
  > {
222
334
  useSuspenseInfiniteQuery<TPageParam extends TParams>(
223
- parameters: TParams,
335
+ parameters: TParams | ServiceOperationInfiniteQueryKey<TSchema, TParams>,
224
336
  options: Omit<
225
337
  UseSuspenseInfiniteQueryOptions<
226
338
  TData,
@@ -247,7 +359,7 @@ interface ServiceOperationUseSuspenseQueryQuery<
247
359
  TError = DefaultError,
248
360
  > {
249
361
  useSuspenseQuery(
250
- parameters: TParams,
362
+ parameters: TParams | ServiceOperationQueryKey<TSchema, TParams>,
251
363
  options?: Omit<
252
364
  UseSuspenseQueryOptions<
253
365
  TData,
@@ -269,8 +381,7 @@ export interface ServiceOperationMutation<
269
381
  TError = DefaultError,
270
382
  > extends ServiceOperationUseMutation<TSchema, TBody, TData, TParams, TError>,
271
383
  ServiceOperationUseMutationState<TSchema, TBody, TData, TParams, TError>,
272
- ServiceOperationMutationFn<TSchema, TBody, TData, TParams>,
273
- ServiceOperationSetQueryData<TData, TParams> {
384
+ ServiceOperationMutationFn<TSchema, TBody, TData, TParams> {
274
385
  schema: TSchema;
275
386
  types: {
276
387
  parameters: TParams;
@@ -489,18 +600,26 @@ interface ServiceOperationQueryFn<
489
600
  ): Promise<TData>;
490
601
  }
491
602
 
492
- interface ServiceOperationSetQueryData<TData, TParams = {}> {
603
+ interface ServiceOperationSetQueryData<
604
+ TSchema extends { url: string; method: string },
605
+ TData,
606
+ TParams = {}, // todo::try to replace `TParams = {}` with `TParams = undefined`
607
+ > {
493
608
  setQueryData(
494
- parameters: TParams,
609
+ parameters: TParams | ServiceOperationQueryKey<TSchema, TParams>,
495
610
  updater: Updater<NoInfer<TData> | undefined, NoInfer<TData> | undefined>,
496
611
  queryClient: QueryClient,
497
612
  options?: SetDataOptions
498
613
  ): TData | undefined;
499
614
  }
500
615
 
501
- interface ServiceOperationSetInfiniteQueryData<TData, TParams = {}> {
616
+ interface ServiceOperationSetInfiniteQueryData<
617
+ TSchema extends { url: string; method: string },
618
+ TData,
619
+ TParams = {},
620
+ > {
502
621
  setInfiniteQueryData(
503
- parameters: TParams,
622
+ parameters: TParams | ServiceOperationInfiniteQueryKey<TSchema, TParams>,
504
623
  updater: Updater<
505
624
  NoInfer<InfiniteData<TData>> | undefined,
506
625
  NoInfer<InfiniteData<TData>> | undefined
@@ -510,16 +629,24 @@ interface ServiceOperationSetInfiniteQueryData<TData, TParams = {}> {
510
629
  ): InfiniteData<TData> | undefined;
511
630
  }
512
631
 
513
- interface ServiceOperationGetQueryData<TData, TParams = {}> {
632
+ interface ServiceOperationGetQueryData<
633
+ TSchema extends { url: string; method: string },
634
+ TData,
635
+ TParams = {},
636
+ > {
514
637
  getQueryData(
515
- parameters: TParams,
638
+ parameters: TParams | ServiceOperationQueryKey<TSchema, TParams>,
516
639
  queryClient: QueryClient
517
640
  ): TData | undefined;
518
641
  }
519
642
 
520
- interface ServiceOperationGetInfiniteQueryData<TData, TParams = {}> {
643
+ interface ServiceOperationGetInfiniteQueryData<
644
+ TSchema extends { url: string; method: string },
645
+ TData,
646
+ TParams = {},
647
+ > {
521
648
  getInfiniteQueryData(
522
- parameters: TParams,
649
+ parameters: TParams | ServiceOperationInfiniteQueryKey<TSchema, TParams>,
523
650
  queryClient: QueryClient
524
651
  ): InfiniteData<TData> | undefined;
525
652
  }
@@ -1,5 +1,6 @@
1
1
  import { InfiniteData } from '@tanstack/query-core';
2
2
 
3
+ import { composeInfiniteQueryKey } from '../lib/composeInfiniteQueryKey.js';
3
4
  import type { QraftClientOptions } from '../qraftAPIClient.js';
4
5
  import type { RequestClientSchema } from '../RequestClient.js';
5
6
  import {
@@ -19,8 +20,9 @@ export function getInfiniteQueryData<TData>(
19
20
  >
20
21
  ): InfiniteData<TData> | undefined {
21
22
  const [parameters, queryClient] = args;
22
- return queryClient.getQueryData([
23
- { url: schema.url, method: schema.method, infinite: true },
24
- parameters,
25
- ] satisfies ServiceOperationInfiniteQueryKey<RequestClientSchema, unknown>);
23
+ return queryClient.getQueryData(
24
+ Array.isArray(parameters)
25
+ ? parameters
26
+ : composeInfiniteQueryKey(schema, parameters)
27
+ );
26
28
  }
@@ -1,9 +1,7 @@
1
+ import { composeInfiniteQueryKey } from '../lib/composeInfiniteQueryKey.js';
1
2
  import type { QraftClientOptions } from '../qraftAPIClient.js';
2
3
  import type { RequestClientSchema } from '../RequestClient.js';
3
- import {
4
- ServiceOperationInfiniteQueryKey,
5
- ServiceOperationQuery,
6
- } from '../ServiceOperation.js';
4
+ import { ServiceOperationQuery } from '../ServiceOperation.js';
7
5
 
8
6
  export const getInfiniteQueryKey = (
9
7
  qraftOptions: QraftClientOptions | undefined,
@@ -16,8 +14,5 @@ export const getInfiniteQueryKey = (
16
14
  >['getInfiniteQueryKey']
17
15
  >
18
16
  ) => {
19
- return [
20
- { url: schema.url, method: schema.method, infinite: true },
21
- args[0],
22
- ] satisfies ServiceOperationInfiniteQueryKey<RequestClientSchema, unknown>;
17
+ return composeInfiniteQueryKey(schema, args[0]);
23
18
  };
@@ -1,9 +1,7 @@
1
+ import { composeQueryKey } from '../lib/composeQueryKey.js';
1
2
  import type { QraftClientOptions } from '../qraftAPIClient.js';
2
3
  import type { RequestClientSchema } from '../RequestClient.js';
3
- import {
4
- ServiceOperationQuery,
5
- ServiceOperationQueryKey,
6
- } from '../ServiceOperation.js';
4
+ import { ServiceOperationQuery } from '../ServiceOperation.js';
7
5
 
8
6
  export function getQueryData<TData>(
9
7
  qraftOptions: QraftClientOptions | undefined,
@@ -13,8 +11,7 @@ export function getQueryData<TData>(
13
11
  >
14
12
  ): TData | undefined {
15
13
  const [parameters, queryClient] = args;
16
- return queryClient.getQueryData([
17
- { url: schema.url, method: schema.method },
18
- parameters,
19
- ] satisfies ServiceOperationQueryKey<RequestClientSchema, unknown>);
14
+ return queryClient.getQueryData(
15
+ Array.isArray(parameters) ? parameters : composeQueryKey(schema, parameters)
16
+ );
20
17
  }
@@ -1,9 +1,7 @@
1
+ import { composeQueryKey } from '../lib/composeQueryKey.js';
1
2
  import type { QraftClientOptions } from '../qraftAPIClient.js';
2
3
  import type { RequestClientSchema } from '../RequestClient.js';
3
- import {
4
- ServiceOperationQuery,
5
- ServiceOperationQueryKey,
6
- } from '../ServiceOperation.js';
4
+ import { ServiceOperationQuery } from '../ServiceOperation.js';
7
5
 
8
6
  export const getQueryKey = (
9
7
  qraftOptions: QraftClientOptions | undefined,
@@ -12,8 +10,5 @@ export const getQueryKey = (
12
10
  ServiceOperationQuery<RequestClientSchema, unknown, unknown>['getQueryKey']
13
11
  >
14
12
  ) => {
15
- return [
16
- { url: schema.url, method: schema.method },
17
- args[0],
18
- ] satisfies ServiceOperationQueryKey<RequestClientSchema, unknown>;
13
+ return composeQueryKey(schema, args[0]);
19
14
  };
@@ -0,0 +1,70 @@
1
+ import { InvalidateOptions } from '@tanstack/query-core';
2
+ import { QueryClient } from '@tanstack/react-query';
3
+
4
+ import { composeQueryKey } from '../lib/composeQueryKey.js';
5
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
6
+ import type { RequestClientSchema } from '../RequestClient.js';
7
+ import { ServiceOperationInvalidateQueriesCallback } from '../ServiceOperation.js';
8
+
9
+ export function invalidateQueries<TData>(
10
+ qraftOptions: QraftClientOptions | undefined,
11
+ schema: RequestClientSchema,
12
+ args: Parameters<
13
+ ServiceOperationInvalidateQueriesCallback<
14
+ RequestClientSchema,
15
+ unknown,
16
+ TData
17
+ >['invalidateQueries']
18
+ >
19
+ ): Promise<void> {
20
+ const queryClient = (
21
+ args.length === 1
22
+ ? args[0]
23
+ : args.length === 2
24
+ ? args[1]
25
+ : args.length === 3
26
+ ? args[2]
27
+ : undefined
28
+ ) as QueryClient | undefined;
29
+
30
+ const filters = args.length === 1 ? undefined : args[0];
31
+ const options = (args.length === 3 ? args[1] : undefined) as
32
+ | InvalidateOptions
33
+ | undefined;
34
+
35
+ if (!queryClient) throw new Error('queryClient is required');
36
+ if (!queryClient.invalidateQueries) throw new Error('queryClient is invalid');
37
+
38
+ if (!filters) {
39
+ return queryClient.invalidateQueries(
40
+ {
41
+ queryKey: composeQueryKey(schema, undefined),
42
+ },
43
+ options
44
+ );
45
+ }
46
+
47
+ if ('queryKey' in filters) {
48
+ return queryClient.invalidateQueries(filters as never, options);
49
+ }
50
+
51
+ if ('parameters' in filters) {
52
+ const { parameters, ...filtersRest } = filters;
53
+
54
+ return queryClient.invalidateQueries(
55
+ {
56
+ ...filtersRest,
57
+ queryKey: composeQueryKey(schema, parameters),
58
+ } as never,
59
+ options
60
+ );
61
+ }
62
+
63
+ return queryClient.invalidateQueries(
64
+ {
65
+ ...filters,
66
+ queryKey: composeQueryKey(schema, undefined),
67
+ } as never,
68
+ options
69
+ );
70
+ }
@@ -1,5 +1,6 @@
1
1
  import { InfiniteData } from '@tanstack/query-core';
2
2
 
3
+ import { composeInfiniteQueryKey } from '../lib/composeInfiniteQueryKey.js';
3
4
  import type { QraftClientOptions } from '../qraftAPIClient.js';
4
5
  import type { RequestClientSchema } from '../RequestClient.js';
5
6
  import type {
@@ -23,7 +24,9 @@ export function setInfiniteQueryData<TData>(
23
24
  const queryKey: ServiceOperationInfiniteQueryKey<
24
25
  RequestClientSchema,
25
26
  unknown
26
- > = [{ url: schema.url, method: schema.method, infinite: true }, parameters];
27
+ > = Array.isArray(parameters)
28
+ ? parameters
29
+ : composeInfiniteQueryKey(schema, parameters);
27
30
 
28
31
  return queryClient.setQueryData(queryKey, updater as never, options);
29
32
  }
@@ -1,3 +1,4 @@
1
+ import { composeQueryKey } from '../lib/composeQueryKey.js';
1
2
  import type { QraftClientOptions } from '../qraftAPIClient.js';
2
3
  import type { RequestClientSchema } from '../RequestClient.js';
3
4
  import {
@@ -14,10 +15,10 @@ export function setQueryData<TData>(
14
15
  ): TData | undefined {
15
16
  const [parameters, updater, queryClient, options] = args;
16
17
 
17
- const queryKey: ServiceOperationQueryKey<RequestClientSchema, unknown> = [
18
- { url: schema.url, method: schema.method },
19
- parameters,
20
- ];
18
+ const queryKey: ServiceOperationQueryKey<RequestClientSchema, unknown> =
19
+ Array.isArray(parameters)
20
+ ? parameters
21
+ : composeQueryKey(schema, parameters);
21
22
 
22
23
  return queryClient.setQueryData(queryKey, updater as never, options);
23
24
  }