@trpc/client 11.18.1-canary.19 → 11.18.1-canary.30

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 (130) hide show
  1. package/bin/intent.js +0 -0
  2. package/dist/TRPCClientError-CmHlBkPF.cjs +56 -0
  3. package/dist/{TRPCClientError-apv8gw59.mjs → TRPCClientError-CxFRO7Js.mjs} +11 -14
  4. package/dist/TRPCClientError-CxFRO7Js.mjs.map +1 -0
  5. package/dist/{httpBatchLink-RBPi17Tn.mjs → httpBatchLink-BMtWxLJV.mjs} +18 -29
  6. package/dist/{httpBatchLink-RBPi17Tn.mjs.map → httpBatchLink-BMtWxLJV.mjs.map} +1 -1
  7. package/dist/{httpBatchLink.d-7jyWtY5H.d.cts → httpBatchLink-Br-pzPXf.d.cts} +4 -8
  8. package/dist/httpBatchLink-Br-pzPXf.d.cts.map +1 -0
  9. package/dist/{httpBatchLink-CAxRfaIq.cjs → httpBatchLink-DO3WQoxu.cjs} +30 -43
  10. package/dist/{httpBatchLink.d-B6vCg-F-.d.mts → httpBatchLink-nvc48L_N.d.mts} +4 -8
  11. package/dist/httpBatchLink-nvc48L_N.d.mts.map +1 -0
  12. package/dist/{httpLink.d-CVOTlkUT.d.mts → httpLink-D5FQijY2.d.cts} +4 -7
  13. package/dist/httpLink-D5FQijY2.d.cts.map +1 -0
  14. package/dist/{httpLink-CxKWeCm2.cjs → httpLink-MDJTSlpi.cjs} +31 -36
  15. package/dist/{httpLink-esWsGBTO.mjs → httpLink-Tm93WWFA.mjs} +9 -12
  16. package/dist/httpLink-Tm93WWFA.mjs.map +1 -0
  17. package/dist/{httpLink.d-D5qR9haY.d.cts → httpLink-eSAq8J9S.d.mts} +4 -7
  18. package/dist/httpLink-eSAq8J9S.d.mts.map +1 -0
  19. package/dist/{httpUtils.d-BqmeKEGo.d.cts → httpUtils-C37jRVnj.d.mts} +4 -6
  20. package/dist/httpUtils-C37jRVnj.d.mts.map +1 -0
  21. package/dist/{httpUtils-B2s2BleG.mjs → httpUtils-CB_100ND.mjs} +10 -15
  22. package/dist/httpUtils-CB_100ND.mjs.map +1 -0
  23. package/dist/{httpUtils.d-yYSKGhiS.d.mts → httpUtils-CUqAubVD.d.cts} +4 -6
  24. package/dist/httpUtils-CUqAubVD.d.cts.map +1 -0
  25. package/dist/{httpUtils-s6LGgoIm.cjs → httpUtils-cggqcHz0.cjs} +58 -65
  26. package/dist/index.cjs +243 -304
  27. package/dist/index.d.cts +38 -41
  28. package/dist/index.d.cts.map +1 -1
  29. package/dist/index.d.mts +38 -41
  30. package/dist/index.d.mts.map +1 -1
  31. package/dist/index.mjs +212 -272
  32. package/dist/index.mjs.map +1 -1
  33. package/dist/links/httpBatchLink.cjs +3 -7
  34. package/dist/links/httpBatchLink.d.cts +1 -5
  35. package/dist/links/httpBatchLink.d.mts +1 -5
  36. package/dist/links/httpBatchLink.mjs +2 -7
  37. package/dist/links/httpLink.cjs +3 -7
  38. package/dist/links/httpLink.d.cts +1 -5
  39. package/dist/links/httpLink.d.mts +1 -5
  40. package/dist/links/httpLink.mjs +2 -7
  41. package/dist/links/loggerLink.cjs +113 -4
  42. package/dist/links/loggerLink.d.cts +1 -3
  43. package/dist/links/loggerLink.d.mts +1 -3
  44. package/dist/links/loggerLink.mjs +113 -3
  45. package/dist/links/loggerLink.mjs.map +1 -0
  46. package/dist/links/splitLink.cjs +3 -3
  47. package/dist/links/splitLink.d.cts +1 -3
  48. package/dist/links/splitLink.d.mts +1 -3
  49. package/dist/links/splitLink.mjs +2 -3
  50. package/dist/links/wsLink/wsLink.cjs +3 -6
  51. package/dist/links/wsLink/wsLink.d.cts +2 -5
  52. package/dist/links/wsLink/wsLink.d.mts +2 -5
  53. package/dist/links/wsLink/wsLink.mjs +2 -6
  54. package/dist/{loggerLink.d-BxSIj5kx.d.cts → loggerLink-2o-uZ3r1.d.cts} +3 -4
  55. package/dist/loggerLink-2o-uZ3r1.d.cts.map +1 -0
  56. package/dist/{loggerLink.d-DBRq_5Gd.d.mts → loggerLink-CFercTVc.d.mts} +3 -4
  57. package/dist/loggerLink-CFercTVc.d.mts.map +1 -0
  58. package/dist/objectSpread2-D-dJi1gK.cjs +73 -0
  59. package/dist/objectSpread2-weooBxVk.mjs +62 -0
  60. package/dist/{splitLink-B7Cuf2c_.mjs → splitLink-BZPioDdG.mjs} +6 -11
  61. package/dist/splitLink-BZPioDdG.mjs.map +1 -0
  62. package/dist/{splitLink.d-BBFK_mCw.d.cts → splitLink-CJdcmEmS.d.cts} +3 -6
  63. package/dist/splitLink-CJdcmEmS.d.cts.map +1 -0
  64. package/dist/{splitLink.d-BKr9eE0o.d.mts → splitLink-CixmF14P.d.mts} +3 -6
  65. package/dist/splitLink-CixmF14P.d.mts.map +1 -0
  66. package/dist/{splitLink-BMgxggng.cjs → splitLink-MXnaFlEb.cjs} +17 -24
  67. package/dist/{subscriptions.d-Ciljg_dH.d.cts → subscriptions-DcqRZc4h.d.cts} +2 -2
  68. package/dist/subscriptions-DcqRZc4h.d.cts.map +1 -0
  69. package/dist/{subscriptions.d-Dlr1nWGD.d.mts → subscriptions-DcqRZc4h.d.mts} +2 -2
  70. package/dist/subscriptions-DcqRZc4h.d.mts.map +1 -0
  71. package/dist/{types.d-sRNtuQA-.d.mts → types-BxbMkv6C.d.cts} +4 -15
  72. package/dist/types-BxbMkv6C.d.cts.map +1 -0
  73. package/dist/{types.d-Dmmedc5G.d.cts → types-CAPs7vhA.d.mts} +4 -15
  74. package/dist/types-CAPs7vhA.d.mts.map +1 -0
  75. package/dist/{unstable-internals.d-BOmV7EK1.d.mts → unstable-internals-CE8gFBQ9.d.cts} +2 -4
  76. package/dist/unstable-internals-CE8gFBQ9.d.cts.map +1 -0
  77. package/dist/{unstable-internals.d-kWsZTlQq.d.cts → unstable-internals-CE8gFBQ9.d.mts} +2 -4
  78. package/dist/unstable-internals-CE8gFBQ9.d.mts.map +1 -0
  79. package/dist/unstable-internals.cjs +28 -3
  80. package/dist/unstable-internals.d.cts +2 -2
  81. package/dist/unstable-internals.d.mts +2 -2
  82. package/dist/unstable-internals.mjs +28 -2
  83. package/dist/unstable-internals.mjs.map +1 -0
  84. package/dist/{wsLink-BClZ0qKo.mjs → wsLink-Bm5LKL6z.mjs} +69 -93
  85. package/dist/wsLink-Bm5LKL6z.mjs.map +1 -0
  86. package/dist/{wsLink-adtuc895.cjs → wsLink-CKAsNP9P.cjs} +96 -122
  87. package/dist/{wsLink.d-DzZZZGZQ.d.cts → wsLink-DoiyfDgJ.d.cts} +10 -30
  88. package/dist/wsLink-DoiyfDgJ.d.cts.map +1 -0
  89. package/dist/{wsLink.d-DCqbZKOH.d.mts → wsLink-U8pJ7LD2.d.mts} +10 -30
  90. package/dist/wsLink-U8pJ7LD2.d.mts.map +1 -0
  91. package/package.json +8 -8
  92. package/src/getFetch.ts +3 -2
  93. package/src/links/httpBatchStreamLink.ts +7 -8
  94. package/src/links/httpSubscriptionLink.ts +1 -3
  95. package/src/links/internals/subscriptions.ts +3 -2
  96. package/src/links/types.ts +1 -2
  97. package/dist/TRPCClientError-CQrTQLrk.cjs +0 -61
  98. package/dist/TRPCClientError-apv8gw59.mjs.map +0 -1
  99. package/dist/chunk-DWy1uDak.cjs +0 -39
  100. package/dist/httpBatchLink.d-7jyWtY5H.d.cts.map +0 -1
  101. package/dist/httpBatchLink.d-B6vCg-F-.d.mts.map +0 -1
  102. package/dist/httpLink-esWsGBTO.mjs.map +0 -1
  103. package/dist/httpLink.d-CVOTlkUT.d.mts.map +0 -1
  104. package/dist/httpLink.d-D5qR9haY.d.cts.map +0 -1
  105. package/dist/httpUtils-B2s2BleG.mjs.map +0 -1
  106. package/dist/httpUtils.d-BqmeKEGo.d.cts.map +0 -1
  107. package/dist/httpUtils.d-yYSKGhiS.d.mts.map +0 -1
  108. package/dist/loggerLink-CuYvRzyH.cjs +0 -123
  109. package/dist/loggerLink-ineCN1PO.mjs +0 -118
  110. package/dist/loggerLink-ineCN1PO.mjs.map +0 -1
  111. package/dist/loggerLink.d-BxSIj5kx.d.cts.map +0 -1
  112. package/dist/loggerLink.d-DBRq_5Gd.d.mts.map +0 -1
  113. package/dist/objectSpread2-Bsvh_OqM.cjs +0 -100
  114. package/dist/objectSpread2-BvkFp-_Y.mjs +0 -114
  115. package/dist/objectSpread2-BvkFp-_Y.mjs.map +0 -1
  116. package/dist/splitLink-B7Cuf2c_.mjs.map +0 -1
  117. package/dist/splitLink.d-BBFK_mCw.d.cts.map +0 -1
  118. package/dist/splitLink.d-BKr9eE0o.d.mts.map +0 -1
  119. package/dist/subscriptions.d-Ciljg_dH.d.cts.map +0 -1
  120. package/dist/subscriptions.d-Dlr1nWGD.d.mts.map +0 -1
  121. package/dist/types.d-Dmmedc5G.d.cts.map +0 -1
  122. package/dist/types.d-sRNtuQA-.d.mts.map +0 -1
  123. package/dist/unstable-internals-Bg7n9BBj.mjs +0 -29
  124. package/dist/unstable-internals-Bg7n9BBj.mjs.map +0 -1
  125. package/dist/unstable-internals-M84gUQCV.cjs +0 -34
  126. package/dist/unstable-internals.d-BOmV7EK1.d.mts.map +0 -1
  127. package/dist/unstable-internals.d-kWsZTlQq.d.cts.map +0 -1
  128. package/dist/wsLink-BClZ0qKo.mjs.map +0 -1
  129. package/dist/wsLink.d-DCqbZKOH.d.mts.map +0 -1
  130. package/dist/wsLink.d-DzZZZGZQ.d.cts.map +0 -1
package/bin/intent.js CHANGED
File without changes
@@ -0,0 +1,56 @@
1
+ const require_objectSpread2 = require("./objectSpread2-D-dJi1gK.cjs");
2
+ let _trpc_server_unstable_core_do_not_import = require("@trpc/server/unstable-core-do-not-import");
3
+ //#region src/TRPCClientError.ts
4
+ function isTRPCClientError(cause) {
5
+ return cause instanceof TRPCClientError;
6
+ }
7
+ function isTRPCErrorResponse(obj) {
8
+ return (0, _trpc_server_unstable_core_do_not_import.isObject)(obj) && (0, _trpc_server_unstable_core_do_not_import.isObject)(obj["error"]) && typeof obj["error"]["code"] === "number" && typeof obj["error"]["message"] === "string";
9
+ }
10
+ function getMessageFromUnknownError(err, fallback) {
11
+ if (typeof err === "string") return err;
12
+ if ((0, _trpc_server_unstable_core_do_not_import.isObject)(err) && typeof err["message"] === "string") return err["message"];
13
+ return fallback;
14
+ }
15
+ var TRPCClientError = class TRPCClientError extends Error {
16
+ constructor(message, opts) {
17
+ var _opts$result, _opts$result2;
18
+ const cause = opts === null || opts === void 0 ? void 0 : opts.cause;
19
+ super(message, { cause });
20
+ require_objectSpread2._defineProperty(this, "cause", void 0);
21
+ require_objectSpread2._defineProperty(this, "shape", void 0);
22
+ require_objectSpread2._defineProperty(this, "data", void 0);
23
+ require_objectSpread2._defineProperty(this, "meta", void 0);
24
+ this.meta = opts === null || opts === void 0 ? void 0 : opts.meta;
25
+ this.cause = cause;
26
+ this.shape = opts === null || opts === void 0 || (_opts$result = opts.result) === null || _opts$result === void 0 ? void 0 : _opts$result.error;
27
+ this.data = opts === null || opts === void 0 || (_opts$result2 = opts.result) === null || _opts$result2 === void 0 ? void 0 : _opts$result2.error.data;
28
+ this.name = "TRPCClientError";
29
+ Object.setPrototypeOf(this, TRPCClientError.prototype);
30
+ }
31
+ static from(_cause, opts = {}) {
32
+ const cause = _cause;
33
+ if (isTRPCClientError(cause)) {
34
+ if (opts.meta) cause.meta = require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, cause.meta), opts.meta);
35
+ return cause;
36
+ }
37
+ if (isTRPCErrorResponse(cause)) return new TRPCClientError(cause.error.message, require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, opts), {}, {
38
+ result: cause,
39
+ cause: opts.cause
40
+ }));
41
+ return new TRPCClientError(getMessageFromUnknownError(cause, "Unknown error"), require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, opts), {}, { cause }));
42
+ }
43
+ };
44
+ //#endregion
45
+ Object.defineProperty(exports, "TRPCClientError", {
46
+ enumerable: true,
47
+ get: function() {
48
+ return TRPCClientError;
49
+ }
50
+ });
51
+ Object.defineProperty(exports, "isTRPCClientError", {
52
+ enumerable: true,
53
+ get: function() {
54
+ return isTRPCClientError;
55
+ }
56
+ });
@@ -1,9 +1,6 @@
1
- import { __toESM, require_defineProperty, require_objectSpread2 } from "./objectSpread2-BvkFp-_Y.mjs";
1
+ import { n as _defineProperty, t as _objectSpread2 } from "./objectSpread2-weooBxVk.mjs";
2
2
  import { isObject } from "@trpc/server/unstable-core-do-not-import";
3
-
4
3
  //#region src/TRPCClientError.ts
5
- var import_defineProperty = __toESM(require_defineProperty(), 1);
6
- var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
7
4
  function isTRPCClientError(cause) {
8
5
  return cause instanceof TRPCClientError;
9
6
  }
@@ -20,10 +17,10 @@ var TRPCClientError = class TRPCClientError extends Error {
20
17
  var _opts$result, _opts$result2;
21
18
  const cause = opts === null || opts === void 0 ? void 0 : opts.cause;
22
19
  super(message, { cause });
23
- (0, import_defineProperty.default)(this, "cause", void 0);
24
- (0, import_defineProperty.default)(this, "shape", void 0);
25
- (0, import_defineProperty.default)(this, "data", void 0);
26
- (0, import_defineProperty.default)(this, "meta", void 0);
20
+ _defineProperty(this, "cause", void 0);
21
+ _defineProperty(this, "shape", void 0);
22
+ _defineProperty(this, "data", void 0);
23
+ _defineProperty(this, "meta", void 0);
27
24
  this.meta = opts === null || opts === void 0 ? void 0 : opts.meta;
28
25
  this.cause = cause;
29
26
  this.shape = opts === null || opts === void 0 || (_opts$result = opts.result) === null || _opts$result === void 0 ? void 0 : _opts$result.error;
@@ -34,17 +31,17 @@ var TRPCClientError = class TRPCClientError extends Error {
34
31
  static from(_cause, opts = {}) {
35
32
  const cause = _cause;
36
33
  if (isTRPCClientError(cause)) {
37
- if (opts.meta) cause.meta = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, cause.meta), opts.meta);
34
+ if (opts.meta) cause.meta = _objectSpread2(_objectSpread2({}, cause.meta), opts.meta);
38
35
  return cause;
39
36
  }
40
- if (isTRPCErrorResponse(cause)) return new TRPCClientError(cause.error.message, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
37
+ if (isTRPCErrorResponse(cause)) return new TRPCClientError(cause.error.message, _objectSpread2(_objectSpread2({}, opts), {}, {
41
38
  result: cause,
42
39
  cause: opts.cause
43
40
  }));
44
- return new TRPCClientError(getMessageFromUnknownError(cause, "Unknown error"), (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, { cause }));
41
+ return new TRPCClientError(getMessageFromUnknownError(cause, "Unknown error"), _objectSpread2(_objectSpread2({}, opts), {}, { cause }));
45
42
  }
46
43
  };
47
-
48
44
  //#endregion
49
- export { TRPCClientError, isTRPCClientError };
50
- //# sourceMappingURL=TRPCClientError-apv8gw59.mjs.map
45
+ export { isTRPCClientError as n, TRPCClientError as t };
46
+
47
+ //# sourceMappingURL=TRPCClientError-CxFRO7Js.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TRPCClientError-CxFRO7Js.mjs","names":[],"sources":["../src/TRPCClientError.ts"],"sourcesContent":["import type {\n inferClientTypes,\n InferrableClientTypes,\n Maybe,\n TRPCErrorResponse,\n} from '@trpc/server/unstable-core-do-not-import';\nimport {\n isObject,\n type DefaultErrorShape,\n} from '@trpc/server/unstable-core-do-not-import';\n\ntype inferErrorShape<TInferrable extends InferrableClientTypes> =\n inferClientTypes<TInferrable>['errorShape'];\nexport interface TRPCClientErrorBase<TShape extends DefaultErrorShape> {\n readonly message: string;\n readonly shape: Maybe<TShape>;\n readonly data: Maybe<TShape['data']>;\n}\nexport type TRPCClientErrorLike<TInferrable extends InferrableClientTypes> =\n TRPCClientErrorBase<inferErrorShape<TInferrable>>;\n\nexport function isTRPCClientError<TInferrable extends InferrableClientTypes>(\n cause: unknown,\n): cause is TRPCClientError<TInferrable> {\n return cause instanceof TRPCClientError;\n}\n\nfunction isTRPCErrorResponse(obj: unknown): obj is TRPCErrorResponse<any> {\n return (\n isObject(obj) &&\n isObject(obj['error']) &&\n typeof obj['error']['code'] === 'number' &&\n typeof obj['error']['message'] === 'string'\n );\n}\n\nfunction getMessageFromUnknownError(err: unknown, fallback: string): string {\n if (typeof err === 'string') {\n return err;\n }\n if (isObject(err) && typeof err['message'] === 'string') {\n return err['message'];\n }\n return fallback;\n}\n\nexport class TRPCClientError<TRouterOrProcedure extends InferrableClientTypes>\n extends Error\n implements TRPCClientErrorBase<inferErrorShape<TRouterOrProcedure>>\n{\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore override doesn't work in all environments due to \"This member cannot have an 'override' modifier because it is not declared in the base class 'Error'\"\n public override readonly cause;\n public readonly shape: Maybe<inferErrorShape<TRouterOrProcedure>>;\n public readonly data: Maybe<inferErrorShape<TRouterOrProcedure>['data']>;\n\n /**\n * Additional meta data about the error\n * In the case of HTTP-errors, we'll have `response` and potentially `responseJSON` here\n */\n public meta;\n\n constructor(\n message: string,\n opts?: {\n result?: Maybe<TRPCErrorResponse<inferErrorShape<TRouterOrProcedure>>>;\n cause?: Error;\n meta?: Record<string, unknown>;\n },\n ) {\n const cause = opts?.cause;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore https://github.com/tc39/proposal-error-cause\n super(message, { cause });\n\n this.meta = opts?.meta;\n\n this.cause = cause;\n this.shape = opts?.result?.error;\n this.data = opts?.result?.error.data;\n this.name = 'TRPCClientError';\n\n Object.setPrototypeOf(this, TRPCClientError.prototype);\n }\n\n public static from<TRouterOrProcedure extends InferrableClientTypes>(\n _cause: Error | TRPCErrorResponse<any> | object,\n opts: { meta?: Record<string, unknown>; cause?: Error } = {},\n ): TRPCClientError<TRouterOrProcedure> {\n const cause = _cause as unknown;\n\n if (isTRPCClientError(cause)) {\n if (opts.meta) {\n // Decorate with meta error data\n cause.meta = {\n ...cause.meta,\n ...opts.meta,\n };\n }\n return cause;\n }\n if (isTRPCErrorResponse(cause)) {\n return new TRPCClientError(cause.error.message, {\n ...opts,\n result: cause,\n cause: opts.cause,\n });\n }\n return new TRPCClientError(\n getMessageFromUnknownError(cause, 'Unknown error'),\n {\n ...opts,\n cause: cause as any,\n },\n );\n }\n}\n"],"mappings":";;;AAqBA,SAAgB,kBACd,OACuC;CACvC,OAAO,iBAAiB;AAC1B;AAEA,SAAS,oBAAoB,KAA6C;CACxE,OACE,SAAS,GAAG,KACZ,SAAS,IAAI,QAAQ,KACrB,OAAO,IAAI,QAAQ,CAAC,YAAY,YAChC,OAAO,IAAI,QAAQ,CAAC,eAAe;AAEvC;AAEA,SAAS,2BAA2B,KAAc,UAA0B;CAC1E,IAAI,OAAO,QAAQ,UACjB,OAAO;CAET,IAAI,SAAS,GAAG,KAAK,OAAO,IAAI,eAAe,UAC7C,OAAO,IAAI;CAEb,OAAO;AACT;AAEA,IAAa,kBAAb,MAAa,wBACH,MAEV;CAaE,YACE,SACA,MAKA;;EACA,MAAM,QAAA,SAAA,QAAA,SAAA,KAAA,IAAA,KAAA,IAAQ,KAAM;EAIpB,MAAM,SAAS,EAAE,MAAM,CAAC;EAtBD,gBAAA,MAAA,SAAA,KAAA,CAAA;EACT,gBAAA,MAAA,SAAA,KAAA,CAAA;EACA,gBAAA,MAAA,QAAA,KAAA,CAAA;EAMT,gBAAA,MAAA,QAAA,KAAA,CAAA;EAgBL,KAAK,OAAA,SAAA,QAAA,SAAA,KAAA,IAAA,KAAA,IAAO,KAAM;EAElB,KAAK,QAAQ;EACb,KAAK,QAAA,SAAA,QAAA,SAAA,KAAA,MAAA,eAAQ,KAAM,YAAA,QAAA,iBAAA,KAAA,IAAA,KAAA,IAAA,aAAQ;EAC3B,KAAK,OAAA,SAAA,QAAA,SAAA,KAAA,MAAA,gBAAO,KAAM,YAAA,QAAA,kBAAA,KAAA,IAAA,KAAA,IAAA,cAAQ,MAAM;EAChC,KAAK,OAAO;EAEZ,OAAO,eAAe,MAAM,gBAAgB,SAAS;CACvD;CAEA,OAAc,KACZ,QACA,OAA0D,CAAC,GACtB;EACrC,MAAM,QAAQ;EAEd,IAAI,kBAAkB,KAAK,GAAG;GAC5B,IAAI,KAAK,MAEP,MAAM,OAAA,eAAA,eAAA,CAAA,GACD,MAAM,IAAA,GACN,KAAK,IACV;GAEF,OAAO;EACT;EACA,IAAI,oBAAoB,KAAK,GAC3B,OAAO,IAAI,gBAAgB,MAAM,MAAM,SAAA,eAAA,eAAA,CAAA,GAClC,IAAA,GAAA,CAAA,GAAA;GACH,QAAQ;GACR,OAAO,KAAK;EACd,CAAA,CAAC;EAEH,OAAO,IAAI,gBACT,2BAA2B,OAAO,eAAe,GAAA,eAAA,eAAA,CAAA,GAE5C,IAAA,GAAA,CAAA,GAAA,EACI,MAAA,CACT,CACF;CACF;AACF"}
@@ -1,9 +1,8 @@
1
- import { __toESM, require_objectSpread2 } from "./objectSpread2-BvkFp-_Y.mjs";
2
- import { TRPCClientError } from "./TRPCClientError-apv8gw59.mjs";
3
- import { allAbortSignals, getUrl, jsonHttpRequester, raceAbortSignals, resolveHTTPLinkOptions } from "./httpUtils-B2s2BleG.mjs";
1
+ import { t as _objectSpread2 } from "./objectSpread2-weooBxVk.mjs";
2
+ import { t as TRPCClientError } from "./TRPCClientError-CxFRO7Js.mjs";
3
+ import { a as jsonHttpRequester, c as allAbortSignals, l as raceAbortSignals, o as resolveHTTPLinkOptions, r as getUrl } from "./httpUtils-CB_100ND.mjs";
4
4
  import { observable } from "@trpc/server/observable";
5
5
  import { transformResult } from "@trpc/server/unstable-core-do-not-import";
6
-
7
6
  //#region src/internals/dataLoader.ts
8
7
  /**
9
8
  * A function that should never be called unless we messed something up.
@@ -36,19 +35,18 @@ function dataLoader(batchLoader) {
36
35
  const lastGroup = groupedItems[groupedItems.length - 1];
37
36
  if (item.aborted) {
38
37
  var _item$reject;
39
- (_item$reject = item.reject) === null || _item$reject === void 0 || _item$reject.call(item, new Error("Aborted"));
38
+ (_item$reject = item.reject) === null || _item$reject === void 0 || _item$reject.call(item, /* @__PURE__ */ new Error("Aborted"));
40
39
  index++;
41
40
  continue;
42
41
  }
43
- const isValid = batchLoader.validate(lastGroup.concat(item).map((it) => it.key));
44
- if (isValid) {
42
+ if (batchLoader.validate(lastGroup.concat(item).map((it) => it.key))) {
45
43
  lastGroup.push(item);
46
44
  index++;
47
45
  continue;
48
46
  }
49
47
  if (lastGroup.length === 0) {
50
48
  var _item$reject2;
51
- (_item$reject2 = item.reject) === null || _item$reject2 === void 0 || _item$reject2.call(item, new Error("Input is too big for a single dispatch"));
49
+ (_item$reject2 = item.reject) === null || _item$reject2 === void 0 || _item$reject2.call(item, /* @__PURE__ */ new Error("Input is too big for a single dispatch"));
52
50
  index++;
53
51
  continue;
54
52
  }
@@ -63,8 +61,7 @@ function dataLoader(batchLoader) {
63
61
  if (!items.length) continue;
64
62
  const batch = { items };
65
63
  for (const item of items) item.batch = batch;
66
- const promise = batchLoader.fetch(batch.items.map((_item) => _item.key));
67
- promise.then(async (result) => {
64
+ batchLoader.fetch(batch.items.map((_item) => _item.key)).then(async (result) => {
68
65
  await Promise.all(result.map(async (valueOrPromise, index) => {
69
66
  const item = batch.items[index];
70
67
  try {
@@ -81,7 +78,7 @@ function dataLoader(batchLoader) {
81
78
  }));
82
79
  for (const item of batch.items) {
83
80
  var _item$reject4;
84
- (_item$reject4 = item.reject) === null || _item$reject4 === void 0 || _item$reject4.call(item, new Error("Missing result"));
81
+ (_item$reject4 = item.reject) === null || _item$reject4 === void 0 || _item$reject4.call(item, /* @__PURE__ */ new Error("Missing result"));
85
82
  item.batch = null;
86
83
  }
87
84
  }).catch((cause) => {
@@ -114,10 +111,8 @@ function dataLoader(batchLoader) {
114
111
  }
115
112
  return { load };
116
113
  }
117
-
118
114
  //#endregion
119
115
  //#region src/links/httpBatchLink.ts
120
- var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
121
116
  /**
122
117
  * @see https://trpc.io/docs/client/links/httpBatchLink
123
118
  */
@@ -134,19 +129,18 @@ function httpBatchLink(opts) {
134
129
  if (batchOps.length > maxItems) return false;
135
130
  const path = batchOps.map((op) => op.path).join(",");
136
131
  const inputs = batchOps.map((op) => op.input);
137
- const url = getUrl((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, resolvedOpts), {}, {
132
+ return getUrl(_objectSpread2(_objectSpread2({}, resolvedOpts), {}, {
138
133
  type,
139
134
  path,
140
135
  inputs,
141
136
  signal: null
142
- }));
143
- return url.length <= maxURLLength;
137
+ })).length <= maxURLLength;
144
138
  },
145
139
  async fetch(batchOps) {
146
140
  const path = batchOps.map((op) => op.path).join(",");
147
141
  const inputs = batchOps.map((op) => op.input);
148
142
  const signal = allAbortSignals(...batchOps.map((op) => op.signal));
149
- const res = await jsonHttpRequester((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, resolvedOpts), {}, {
143
+ const res = await jsonHttpRequester(_objectSpread2(_objectSpread2({}, resolvedOpts), {}, {
150
144
  path,
151
145
  inputs,
152
146
  type,
@@ -157,28 +151,23 @@ function httpBatchLink(opts) {
157
151
  },
158
152
  signal
159
153
  }));
160
- const resJSON = Array.isArray(res.json) ? res.json : batchOps.map(() => res.json);
161
- const result = resJSON.map((item) => ({
154
+ return (Array.isArray(res.json) ? res.json : batchOps.map(() => res.json)).map((item) => ({
162
155
  meta: res.meta,
163
156
  json: item
164
157
  }));
165
- return result;
166
158
  }
167
159
  };
168
160
  };
169
- const query = dataLoader(batchLoader("query"));
170
- const mutation = dataLoader(batchLoader("mutation"));
171
161
  const loaders = {
172
- query,
173
- mutation
162
+ query: dataLoader(batchLoader("query")),
163
+ mutation: dataLoader(batchLoader("mutation"))
174
164
  };
175
165
  return ({ op }) => {
176
166
  return observable((observer) => {
177
167
  /* istanbul ignore if -- @preserve */
178
168
  if (op.type === "subscription") throw new Error("Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`");
179
169
  const ac = new AbortController();
180
- const loader = loaders[op.type];
181
- const promise = loader.load((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, op), {}, { signal: raceAbortSignals(op.signal, ac.signal) }));
170
+ const promise = loaders[op.type].load(_objectSpread2(_objectSpread2({}, op), {}, { signal: raceAbortSignals(op.signal, ac.signal) }));
182
171
  let isDone = false;
183
172
  let _res = void 0;
184
173
  promise.then((res) => {
@@ -205,7 +194,7 @@ function httpBatchLink(opts) {
205
194
  };
206
195
  };
207
196
  }
208
-
209
197
  //#endregion
210
- export { dataLoader, httpBatchLink };
211
- //# sourceMappingURL=httpBatchLink-RBPi17Tn.mjs.map
198
+ export { dataLoader as n, httpBatchLink as t };
199
+
200
+ //# sourceMappingURL=httpBatchLink-BMtWxLJV.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpBatchLink-RBPi17Tn.mjs","names":["batchLoader: BatchLoader<TKey, TValue>","pendingItems: BatchItem<TKey, TValue>[] | null","dispatchTimer: ReturnType<typeof setTimeout> | null","items: BatchItem<TKey, TValue>[]","groupedItems: BatchItem<TKey, TValue>[][]","batch: Batch<TKey, TValue>","key: TKey","item: BatchItem<TKey, TValue>","opts: HTTPBatchLinkOptions<TRouter['_def']['_config']['$types']>","type: ProcedureType"],"sources":["../src/internals/dataLoader.ts","../src/links/httpBatchLink.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n\ntype BatchItem<TKey, TValue> = {\n aborted: boolean;\n key: TKey;\n resolve: ((value: TValue) => void) | null;\n reject: ((error: Error) => void) | null;\n batch: Batch<TKey, TValue> | null;\n};\ntype Batch<TKey, TValue> = {\n items: BatchItem<TKey, TValue>[];\n};\nexport type BatchLoader<TKey, TValue> = {\n validate: (keys: TKey[]) => boolean;\n fetch: (keys: TKey[]) => Promise<TValue[] | Promise<TValue>[]>;\n};\n\n/**\n * A function that should never be called unless we messed something up.\n */\nconst throwFatalError = () => {\n throw new Error(\n 'Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new',\n );\n};\n\n/**\n * Dataloader that's very inspired by https://github.com/graphql/dataloader\n * Less configuration, no caching, and allows you to cancel requests\n * When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled\n */\nexport function dataLoader<TKey, TValue>(\n batchLoader: BatchLoader<TKey, TValue>,\n) {\n let pendingItems: BatchItem<TKey, TValue>[] | null = null;\n let dispatchTimer: ReturnType<typeof setTimeout> | null = null;\n\n const destroyTimerAndPendingItems = () => {\n clearTimeout(dispatchTimer as any);\n dispatchTimer = null;\n pendingItems = null;\n };\n\n /**\n * Iterate through the items and split them into groups based on the `batchLoader`'s validate function\n */\n function groupItems(items: BatchItem<TKey, TValue>[]) {\n const groupedItems: BatchItem<TKey, TValue>[][] = [[]];\n let index = 0;\n while (true) {\n const item = items[index];\n if (!item) {\n // we're done\n break;\n }\n const lastGroup = groupedItems[groupedItems.length - 1]!;\n\n if (item.aborted) {\n // Item was aborted before it was dispatched\n item.reject?.(new Error('Aborted'));\n index++;\n continue;\n }\n\n const isValid = batchLoader.validate(\n lastGroup.concat(item).map((it) => it.key),\n );\n\n if (isValid) {\n lastGroup.push(item);\n index++;\n continue;\n }\n\n if (lastGroup.length === 0) {\n item.reject?.(new Error('Input is too big for a single dispatch'));\n index++;\n continue;\n }\n // Create new group, next iteration will try to add the item to that\n groupedItems.push([]);\n }\n return groupedItems;\n }\n\n function dispatch() {\n const groupedItems = groupItems(pendingItems!);\n destroyTimerAndPendingItems();\n\n // Create batches for each group of items\n for (const items of groupedItems) {\n if (!items.length) {\n continue;\n }\n const batch: Batch<TKey, TValue> = {\n items,\n };\n for (const item of items) {\n item.batch = batch;\n }\n const promise = batchLoader.fetch(batch.items.map((_item) => _item.key));\n\n promise\n .then(async (result) => {\n await Promise.all(\n result.map(async (valueOrPromise, index) => {\n const item = batch.items[index]!;\n try {\n const value = await Promise.resolve(valueOrPromise);\n\n item.resolve?.(value);\n } catch (cause) {\n item.reject?.(cause as Error);\n }\n\n item.batch = null;\n item.reject = null;\n item.resolve = null;\n }),\n );\n\n for (const item of batch.items) {\n item.reject?.(new Error('Missing result'));\n item.batch = null;\n }\n })\n .catch((cause) => {\n for (const item of batch.items) {\n item.reject?.(cause);\n item.batch = null;\n }\n });\n }\n }\n function load(key: TKey): Promise<TValue> {\n const item: BatchItem<TKey, TValue> = {\n aborted: false,\n key,\n batch: null,\n resolve: throwFatalError,\n reject: throwFatalError,\n };\n\n const promise = new Promise<TValue>((resolve, reject) => {\n item.reject = reject;\n item.resolve = resolve;\n\n pendingItems ??= [];\n pendingItems.push(item);\n });\n\n dispatchTimer ??= setTimeout(dispatch);\n\n return promise;\n }\n\n return {\n load,\n };\n}\n","import type { AnyRouter, ProcedureType } from '@trpc/server';\nimport { observable } from '@trpc/server/observable';\nimport { transformResult } from '@trpc/server/unstable-core-do-not-import';\nimport type { BatchLoader } from '../internals/dataLoader';\nimport { dataLoader } from '../internals/dataLoader';\nimport { allAbortSignals, raceAbortSignals } from '../internals/signals';\nimport type { NonEmptyArray } from '../internals/types';\nimport { TRPCClientError } from '../TRPCClientError';\nimport type { HTTPBatchLinkOptions } from './HTTPBatchLinkOptions';\nimport type { HTTPResult } from './internals/httpUtils';\nimport {\n getUrl,\n jsonHttpRequester,\n resolveHTTPLinkOptions,\n} from './internals/httpUtils';\nimport type { Operation, TRPCLink } from './types';\n\n/**\n * @see https://trpc.io/docs/client/links/httpBatchLink\n */\nexport function httpBatchLink<TRouter extends AnyRouter>(\n opts: HTTPBatchLinkOptions<TRouter['_def']['_config']['$types']>,\n): TRPCLink<TRouter> {\n const resolvedOpts = resolveHTTPLinkOptions(opts);\n const maxURLLength = opts.maxURLLength ?? Infinity;\n const maxItems = opts.maxItems ?? Infinity;\n\n return () => {\n const batchLoader = (\n type: ProcedureType,\n ): BatchLoader<Operation, HTTPResult> => {\n return {\n validate(batchOps) {\n if (maxURLLength === Infinity && maxItems === Infinity) {\n // escape hatch for quick calcs\n return true;\n }\n if (batchOps.length > maxItems) {\n return false;\n }\n const path = batchOps.map((op) => op.path).join(',');\n const inputs = batchOps.map((op) => op.input);\n\n const url = getUrl({\n ...resolvedOpts,\n type,\n path,\n inputs,\n signal: null,\n });\n\n return url.length <= maxURLLength;\n },\n async fetch(batchOps) {\n const path = batchOps.map((op) => op.path).join(',');\n const inputs = batchOps.map((op) => op.input);\n const signal = allAbortSignals(...batchOps.map((op) => op.signal));\n\n const res = await jsonHttpRequester({\n ...resolvedOpts,\n path,\n inputs,\n type,\n headers() {\n if (!opts.headers) {\n return {};\n }\n if (typeof opts.headers === 'function') {\n return opts.headers({\n opList: batchOps as NonEmptyArray<Operation>,\n });\n }\n return opts.headers;\n },\n signal,\n });\n const resJSON = Array.isArray(res.json)\n ? res.json\n : batchOps.map(() => res.json);\n const result = resJSON.map((item) => ({\n meta: res.meta,\n json: item,\n }));\n return result;\n },\n };\n };\n\n const query = dataLoader(batchLoader('query'));\n const mutation = dataLoader(batchLoader('mutation'));\n\n const loaders = { query, mutation };\n return ({ op }) => {\n return observable((observer) => {\n /* istanbul ignore if -- @preserve */\n if (op.type === 'subscription') {\n throw new Error(\n 'Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`',\n );\n }\n const ac = new AbortController();\n const loader = loaders[op.type];\n const promise = loader.load({\n ...op,\n signal: raceAbortSignals(op.signal, ac.signal),\n });\n\n let isDone = false;\n let _res = undefined as HTTPResult | undefined;\n promise\n .then((res) => {\n isDone = true;\n _res = res;\n const transformed = transformResult(\n res.json,\n resolvedOpts.transformer.output,\n );\n\n if (!transformed.ok) {\n observer.error(\n TRPCClientError.from(transformed.error, {\n meta: res.meta,\n }),\n );\n return;\n }\n observer.next({\n context: res.meta,\n result: transformed.result,\n });\n observer.complete();\n })\n .catch((err) => {\n isDone = true;\n observer.error(\n TRPCClientError.from(err, {\n meta: _res?.meta,\n }),\n );\n });\n\n return () => {\n if (!isDone) {\n ac.abort();\n }\n };\n });\n };\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"httpBatchLink-BMtWxLJV.mjs","names":[],"sources":["../src/internals/dataLoader.ts","../src/links/httpBatchLink.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n\ntype BatchItem<TKey, TValue> = {\n aborted: boolean;\n key: TKey;\n resolve: ((value: TValue) => void) | null;\n reject: ((error: Error) => void) | null;\n batch: Batch<TKey, TValue> | null;\n};\ntype Batch<TKey, TValue> = {\n items: BatchItem<TKey, TValue>[];\n};\nexport type BatchLoader<TKey, TValue> = {\n validate: (keys: TKey[]) => boolean;\n fetch: (keys: TKey[]) => Promise<TValue[] | Promise<TValue>[]>;\n};\n\n/**\n * A function that should never be called unless we messed something up.\n */\nconst throwFatalError = () => {\n throw new Error(\n 'Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new',\n );\n};\n\n/**\n * Dataloader that's very inspired by https://github.com/graphql/dataloader\n * Less configuration, no caching, and allows you to cancel requests\n * When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled\n */\nexport function dataLoader<TKey, TValue>(\n batchLoader: BatchLoader<TKey, TValue>,\n) {\n let pendingItems: BatchItem<TKey, TValue>[] | null = null;\n let dispatchTimer: ReturnType<typeof setTimeout> | null = null;\n\n const destroyTimerAndPendingItems = () => {\n clearTimeout(dispatchTimer as any);\n dispatchTimer = null;\n pendingItems = null;\n };\n\n /**\n * Iterate through the items and split them into groups based on the `batchLoader`'s validate function\n */\n function groupItems(items: BatchItem<TKey, TValue>[]) {\n const groupedItems: BatchItem<TKey, TValue>[][] = [[]];\n let index = 0;\n while (true) {\n const item = items[index];\n if (!item) {\n // we're done\n break;\n }\n const lastGroup = groupedItems[groupedItems.length - 1]!;\n\n if (item.aborted) {\n // Item was aborted before it was dispatched\n item.reject?.(new Error('Aborted'));\n index++;\n continue;\n }\n\n const isValid = batchLoader.validate(\n lastGroup.concat(item).map((it) => it.key),\n );\n\n if (isValid) {\n lastGroup.push(item);\n index++;\n continue;\n }\n\n if (lastGroup.length === 0) {\n item.reject?.(new Error('Input is too big for a single dispatch'));\n index++;\n continue;\n }\n // Create new group, next iteration will try to add the item to that\n groupedItems.push([]);\n }\n return groupedItems;\n }\n\n function dispatch() {\n const groupedItems = groupItems(pendingItems!);\n destroyTimerAndPendingItems();\n\n // Create batches for each group of items\n for (const items of groupedItems) {\n if (!items.length) {\n continue;\n }\n const batch: Batch<TKey, TValue> = {\n items,\n };\n for (const item of items) {\n item.batch = batch;\n }\n const promise = batchLoader.fetch(batch.items.map((_item) => _item.key));\n\n promise\n .then(async (result) => {\n await Promise.all(\n result.map(async (valueOrPromise, index) => {\n const item = batch.items[index]!;\n try {\n const value = await Promise.resolve(valueOrPromise);\n\n item.resolve?.(value);\n } catch (cause) {\n item.reject?.(cause as Error);\n }\n\n item.batch = null;\n item.reject = null;\n item.resolve = null;\n }),\n );\n\n for (const item of batch.items) {\n item.reject?.(new Error('Missing result'));\n item.batch = null;\n }\n })\n .catch((cause) => {\n for (const item of batch.items) {\n item.reject?.(cause);\n item.batch = null;\n }\n });\n }\n }\n function load(key: TKey): Promise<TValue> {\n const item: BatchItem<TKey, TValue> = {\n aborted: false,\n key,\n batch: null,\n resolve: throwFatalError,\n reject: throwFatalError,\n };\n\n const promise = new Promise<TValue>((resolve, reject) => {\n item.reject = reject;\n item.resolve = resolve;\n\n pendingItems ??= [];\n pendingItems.push(item);\n });\n\n dispatchTimer ??= setTimeout(dispatch);\n\n return promise;\n }\n\n return {\n load,\n };\n}\n","import type { AnyRouter, ProcedureType } from '@trpc/server';\nimport { observable } from '@trpc/server/observable';\nimport { transformResult } from '@trpc/server/unstable-core-do-not-import';\nimport type { BatchLoader } from '../internals/dataLoader';\nimport { dataLoader } from '../internals/dataLoader';\nimport { allAbortSignals, raceAbortSignals } from '../internals/signals';\nimport type { NonEmptyArray } from '../internals/types';\nimport { TRPCClientError } from '../TRPCClientError';\nimport type { HTTPBatchLinkOptions } from './HTTPBatchLinkOptions';\nimport type { HTTPResult } from './internals/httpUtils';\nimport {\n getUrl,\n jsonHttpRequester,\n resolveHTTPLinkOptions,\n} from './internals/httpUtils';\nimport type { Operation, TRPCLink } from './types';\n\n/**\n * @see https://trpc.io/docs/client/links/httpBatchLink\n */\nexport function httpBatchLink<TRouter extends AnyRouter>(\n opts: HTTPBatchLinkOptions<TRouter['_def']['_config']['$types']>,\n): TRPCLink<TRouter> {\n const resolvedOpts = resolveHTTPLinkOptions(opts);\n const maxURLLength = opts.maxURLLength ?? Infinity;\n const maxItems = opts.maxItems ?? Infinity;\n\n return () => {\n const batchLoader = (\n type: ProcedureType,\n ): BatchLoader<Operation, HTTPResult> => {\n return {\n validate(batchOps) {\n if (maxURLLength === Infinity && maxItems === Infinity) {\n // escape hatch for quick calcs\n return true;\n }\n if (batchOps.length > maxItems) {\n return false;\n }\n const path = batchOps.map((op) => op.path).join(',');\n const inputs = batchOps.map((op) => op.input);\n\n const url = getUrl({\n ...resolvedOpts,\n type,\n path,\n inputs,\n signal: null,\n });\n\n return url.length <= maxURLLength;\n },\n async fetch(batchOps) {\n const path = batchOps.map((op) => op.path).join(',');\n const inputs = batchOps.map((op) => op.input);\n const signal = allAbortSignals(...batchOps.map((op) => op.signal));\n\n const res = await jsonHttpRequester({\n ...resolvedOpts,\n path,\n inputs,\n type,\n headers() {\n if (!opts.headers) {\n return {};\n }\n if (typeof opts.headers === 'function') {\n return opts.headers({\n opList: batchOps as NonEmptyArray<Operation>,\n });\n }\n return opts.headers;\n },\n signal,\n });\n const resJSON = Array.isArray(res.json)\n ? res.json\n : batchOps.map(() => res.json);\n const result = resJSON.map((item) => ({\n meta: res.meta,\n json: item,\n }));\n return result;\n },\n };\n };\n\n const query = dataLoader(batchLoader('query'));\n const mutation = dataLoader(batchLoader('mutation'));\n\n const loaders = { query, mutation };\n return ({ op }) => {\n return observable((observer) => {\n /* istanbul ignore if -- @preserve */\n if (op.type === 'subscription') {\n throw new Error(\n 'Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`',\n );\n }\n const ac = new AbortController();\n const loader = loaders[op.type];\n const promise = loader.load({\n ...op,\n signal: raceAbortSignals(op.signal, ac.signal),\n });\n\n let isDone = false;\n let _res = undefined as HTTPResult | undefined;\n promise\n .then((res) => {\n isDone = true;\n _res = res;\n const transformed = transformResult(\n res.json,\n resolvedOpts.transformer.output,\n );\n\n if (!transformed.ok) {\n observer.error(\n TRPCClientError.from(transformed.error, {\n meta: res.meta,\n }),\n );\n return;\n }\n observer.next({\n context: res.meta,\n result: transformed.result,\n });\n observer.complete();\n })\n .catch((err) => {\n isDone = true;\n observer.error(\n TRPCClientError.from(err, {\n meta: _res?.meta,\n }),\n );\n });\n\n return () => {\n if (!isDone) {\n ac.abort();\n }\n };\n });\n };\n };\n}\n"],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- import { HTTPHeaders, NonEmptyArray, Operation, TRPCLink } from "./types.d-Dmmedc5G.cjs";
2
- import { HTTPLinkBaseOptions } from "./httpUtils.d-BqmeKEGo.cjs";
1
+ import { _ as NonEmptyArray, n as Operation, t as HTTPHeaders, u as TRPCLink } from "./types-BxbMkv6C.cjs";
2
+ import { t as HTTPLinkBaseOptions } from "./httpUtils-CUqAubVD.cjs";
3
3
  import { AnyClientTypes } from "@trpc/server/unstable-core-do-not-import";
4
4
  import { AnyRouter as AnyRouter$1 } from "@trpc/server";
5
-
6
5
  //#region src/links/HTTPBatchLinkOptions.d.ts
7
6
  type HTTPBatchLinkOptions<TRoot extends AnyClientTypes> = HTTPLinkBaseOptions<TRoot> & {
8
7
  maxURLLength?: number;
@@ -19,15 +18,12 @@ type HTTPBatchLinkOptions<TRoot extends AnyClientTypes> = HTTPLinkBaseOptions<TR
19
18
  */
20
19
  maxItems?: number;
21
20
  };
22
- //# sourceMappingURL=HTTPBatchLinkOptions.d.ts.map
23
21
  //#endregion
24
22
  //#region src/links/httpBatchLink.d.ts
25
23
  /**
26
24
  * @see https://trpc.io/docs/client/links/httpBatchLink
27
25
  */
28
26
  declare function httpBatchLink<TRouter extends AnyRouter$1>(opts: HTTPBatchLinkOptions<TRouter['_def']['_config']['$types']>): TRPCLink<TRouter>;
29
- //# sourceMappingURL=httpBatchLink.d.ts.map
30
-
31
27
  //#endregion
32
- export { HTTPBatchLinkOptions, httpBatchLink };
33
- //# sourceMappingURL=httpBatchLink.d-7jyWtY5H.d.cts.map
28
+ export { HTTPBatchLinkOptions as n, httpBatchLink as t };
29
+ //# sourceMappingURL=httpBatchLink-Br-pzPXf.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpBatchLink-Br-pzPXf.d.cts","names":[],"sources":["../src/links/HTTPBatchLinkOptions.ts","../src/links/httpBatchLink.ts"],"mappings":";;;;;KAKY,qBAAqB,cAAc,kBAC7C,oBAAoB;EAClB;;;;;EAKA,UACI,gBACE;IACA,QAAQ,cAAc;QAClB,cAAc,QAAQ;;;;;EAMhC;;;;;;;iBCFY,cAAc,gBAAgB,aAC5C,MAAM,qBAAqB,wCAC1B,SAAS"}
@@ -1,10 +1,8 @@
1
- const require_chunk = require('./chunk-DWy1uDak.cjs');
2
- const require_objectSpread2$1 = require('./objectSpread2-Bsvh_OqM.cjs');
3
- const require_TRPCClientError = require('./TRPCClientError-CQrTQLrk.cjs');
4
- const require_httpUtils = require('./httpUtils-s6LGgoIm.cjs');
5
- const __trpc_server_observable = require_chunk.__toESM(require("@trpc/server/observable"));
6
- const __trpc_server_unstable_core_do_not_import = require_chunk.__toESM(require("@trpc/server/unstable-core-do-not-import"));
7
-
1
+ const require_objectSpread2 = require("./objectSpread2-D-dJi1gK.cjs");
2
+ const require_TRPCClientError = require("./TRPCClientError-CmHlBkPF.cjs");
3
+ const require_httpUtils = require("./httpUtils-cggqcHz0.cjs");
4
+ let _trpc_server_observable = require("@trpc/server/observable");
5
+ let _trpc_server_unstable_core_do_not_import = require("@trpc/server/unstable-core-do-not-import");
8
6
  //#region src/internals/dataLoader.ts
9
7
  /**
10
8
  * A function that should never be called unless we messed something up.
@@ -37,19 +35,18 @@ function dataLoader(batchLoader) {
37
35
  const lastGroup = groupedItems[groupedItems.length - 1];
38
36
  if (item.aborted) {
39
37
  var _item$reject;
40
- (_item$reject = item.reject) === null || _item$reject === void 0 || _item$reject.call(item, new Error("Aborted"));
38
+ (_item$reject = item.reject) === null || _item$reject === void 0 || _item$reject.call(item, /* @__PURE__ */ new Error("Aborted"));
41
39
  index++;
42
40
  continue;
43
41
  }
44
- const isValid = batchLoader.validate(lastGroup.concat(item).map((it) => it.key));
45
- if (isValid) {
42
+ if (batchLoader.validate(lastGroup.concat(item).map((it) => it.key))) {
46
43
  lastGroup.push(item);
47
44
  index++;
48
45
  continue;
49
46
  }
50
47
  if (lastGroup.length === 0) {
51
48
  var _item$reject2;
52
- (_item$reject2 = item.reject) === null || _item$reject2 === void 0 || _item$reject2.call(item, new Error("Input is too big for a single dispatch"));
49
+ (_item$reject2 = item.reject) === null || _item$reject2 === void 0 || _item$reject2.call(item, /* @__PURE__ */ new Error("Input is too big for a single dispatch"));
53
50
  index++;
54
51
  continue;
55
52
  }
@@ -64,8 +61,7 @@ function dataLoader(batchLoader) {
64
61
  if (!items.length) continue;
65
62
  const batch = { items };
66
63
  for (const item of items) item.batch = batch;
67
- const promise = batchLoader.fetch(batch.items.map((_item) => _item.key));
68
- promise.then(async (result) => {
64
+ batchLoader.fetch(batch.items.map((_item) => _item.key)).then(async (result) => {
69
65
  await Promise.all(result.map(async (valueOrPromise, index) => {
70
66
  const item = batch.items[index];
71
67
  try {
@@ -82,7 +78,7 @@ function dataLoader(batchLoader) {
82
78
  }));
83
79
  for (const item of batch.items) {
84
80
  var _item$reject4;
85
- (_item$reject4 = item.reject) === null || _item$reject4 === void 0 || _item$reject4.call(item, new Error("Missing result"));
81
+ (_item$reject4 = item.reject) === null || _item$reject4 === void 0 || _item$reject4.call(item, /* @__PURE__ */ new Error("Missing result"));
86
82
  item.batch = null;
87
83
  }
88
84
  }).catch((cause) => {
@@ -115,10 +111,8 @@ function dataLoader(batchLoader) {
115
111
  }
116
112
  return { load };
117
113
  }
118
-
119
114
  //#endregion
120
115
  //#region src/links/httpBatchLink.ts
121
- var import_objectSpread2 = require_chunk.__toESM(require_objectSpread2$1.require_objectSpread2(), 1);
122
116
  /**
123
117
  * @see https://trpc.io/docs/client/links/httpBatchLink
124
118
  */
@@ -135,19 +129,18 @@ function httpBatchLink(opts) {
135
129
  if (batchOps.length > maxItems) return false;
136
130
  const path = batchOps.map((op) => op.path).join(",");
137
131
  const inputs = batchOps.map((op) => op.input);
138
- const url = require_httpUtils.getUrl((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, resolvedOpts), {}, {
132
+ return require_httpUtils.getUrl(require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, resolvedOpts), {}, {
139
133
  type,
140
134
  path,
141
135
  inputs,
142
136
  signal: null
143
- }));
144
- return url.length <= maxURLLength;
137
+ })).length <= maxURLLength;
145
138
  },
146
139
  async fetch(batchOps) {
147
140
  const path = batchOps.map((op) => op.path).join(",");
148
141
  const inputs = batchOps.map((op) => op.input);
149
142
  const signal = require_httpUtils.allAbortSignals(...batchOps.map((op) => op.signal));
150
- const res = await require_httpUtils.jsonHttpRequester((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, resolvedOpts), {}, {
143
+ const res = await require_httpUtils.jsonHttpRequester(require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, resolvedOpts), {}, {
151
144
  path,
152
145
  inputs,
153
146
  type,
@@ -158,34 +151,29 @@ function httpBatchLink(opts) {
158
151
  },
159
152
  signal
160
153
  }));
161
- const resJSON = Array.isArray(res.json) ? res.json : batchOps.map(() => res.json);
162
- const result = resJSON.map((item) => ({
154
+ return (Array.isArray(res.json) ? res.json : batchOps.map(() => res.json)).map((item) => ({
163
155
  meta: res.meta,
164
156
  json: item
165
157
  }));
166
- return result;
167
158
  }
168
159
  };
169
160
  };
170
- const query = dataLoader(batchLoader("query"));
171
- const mutation = dataLoader(batchLoader("mutation"));
172
161
  const loaders = {
173
- query,
174
- mutation
162
+ query: dataLoader(batchLoader("query")),
163
+ mutation: dataLoader(batchLoader("mutation"))
175
164
  };
176
165
  return ({ op }) => {
177
- return (0, __trpc_server_observable.observable)((observer) => {
166
+ return (0, _trpc_server_observable.observable)((observer) => {
178
167
  /* istanbul ignore if -- @preserve */
179
168
  if (op.type === "subscription") throw new Error("Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`");
180
169
  const ac = new AbortController();
181
- const loader = loaders[op.type];
182
- const promise = loader.load((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, op), {}, { signal: require_httpUtils.raceAbortSignals(op.signal, ac.signal) }));
170
+ const promise = loaders[op.type].load(require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, op), {}, { signal: require_httpUtils.raceAbortSignals(op.signal, ac.signal) }));
183
171
  let isDone = false;
184
172
  let _res = void 0;
185
173
  promise.then((res) => {
186
174
  isDone = true;
187
175
  _res = res;
188
- const transformed = (0, __trpc_server_unstable_core_do_not_import.transformResult)(res.json, resolvedOpts.transformer.output);
176
+ const transformed = (0, _trpc_server_unstable_core_do_not_import.transformResult)(res.json, resolvedOpts.transformer.output);
189
177
  if (!transformed.ok) {
190
178
  observer.error(require_TRPCClientError.TRPCClientError.from(transformed.error, { meta: res.meta }));
191
179
  return;
@@ -206,17 +194,16 @@ function httpBatchLink(opts) {
206
194
  };
207
195
  };
208
196
  }
209
-
210
197
  //#endregion
211
- Object.defineProperty(exports, 'dataLoader', {
212
- enumerable: true,
213
- get: function () {
214
- return dataLoader;
215
- }
198
+ Object.defineProperty(exports, "dataLoader", {
199
+ enumerable: true,
200
+ get: function() {
201
+ return dataLoader;
202
+ }
203
+ });
204
+ Object.defineProperty(exports, "httpBatchLink", {
205
+ enumerable: true,
206
+ get: function() {
207
+ return httpBatchLink;
208
+ }
216
209
  });
217
- Object.defineProperty(exports, 'httpBatchLink', {
218
- enumerable: true,
219
- get: function () {
220
- return httpBatchLink;
221
- }
222
- });
@@ -1,8 +1,7 @@
1
- import { HTTPHeaders, NonEmptyArray, Operation, TRPCLink } from "./types.d-sRNtuQA-.mjs";
2
- import { HTTPLinkBaseOptions } from "./httpUtils.d-yYSKGhiS.mjs";
1
+ import { _ as NonEmptyArray, n as Operation, t as HTTPHeaders, u as TRPCLink } from "./types-CAPs7vhA.mjs";
2
+ import { t as HTTPLinkBaseOptions } from "./httpUtils-C37jRVnj.mjs";
3
3
  import { AnyClientTypes } from "@trpc/server/unstable-core-do-not-import";
4
4
  import { AnyRouter as AnyRouter$1 } from "@trpc/server";
5
-
6
5
  //#region src/links/HTTPBatchLinkOptions.d.ts
7
6
  type HTTPBatchLinkOptions<TRoot extends AnyClientTypes> = HTTPLinkBaseOptions<TRoot> & {
8
7
  maxURLLength?: number;
@@ -19,15 +18,12 @@ type HTTPBatchLinkOptions<TRoot extends AnyClientTypes> = HTTPLinkBaseOptions<TR
19
18
  */
20
19
  maxItems?: number;
21
20
  };
22
- //# sourceMappingURL=HTTPBatchLinkOptions.d.ts.map
23
21
  //#endregion
24
22
  //#region src/links/httpBatchLink.d.ts
25
23
  /**
26
24
  * @see https://trpc.io/docs/client/links/httpBatchLink
27
25
  */
28
26
  declare function httpBatchLink<TRouter extends AnyRouter$1>(opts: HTTPBatchLinkOptions<TRouter['_def']['_config']['$types']>): TRPCLink<TRouter>;
29
- //# sourceMappingURL=httpBatchLink.d.ts.map
30
-
31
27
  //#endregion
32
- export { HTTPBatchLinkOptions, httpBatchLink };
33
- //# sourceMappingURL=httpBatchLink.d-B6vCg-F-.d.mts.map
28
+ export { HTTPBatchLinkOptions as n, httpBatchLink as t };
29
+ //# sourceMappingURL=httpBatchLink-nvc48L_N.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpBatchLink-nvc48L_N.d.mts","names":[],"sources":["../src/links/HTTPBatchLinkOptions.ts","../src/links/httpBatchLink.ts"],"mappings":";;;;;KAKY,qBAAqB,cAAc,kBAC7C,oBAAoB;EAClB;;;;;EAKA,UACI,gBACE;IACA,QAAQ,cAAc;QAClB,cAAc,QAAQ;;;;;EAMhC;;;;;;;iBCFY,cAAc,gBAAgB,aAC5C,MAAM,qBAAqB,wCAC1B,SAAS"}
@@ -1,7 +1,6 @@
1
- import { HTTPHeaders, Operation, TRPCLink } from "./types.d-sRNtuQA-.mjs";
2
- import { HTTPLinkBaseOptions } from "./httpUtils.d-yYSKGhiS.mjs";
1
+ import { n as Operation, t as HTTPHeaders, u as TRPCLink } from "./types-BxbMkv6C.cjs";
2
+ import { t as HTTPLinkBaseOptions } from "./httpUtils-CUqAubVD.cjs";
3
3
  import { AnyClientTypes, AnyRouter } from "@trpc/server/unstable-core-do-not-import";
4
-
5
4
  //#region src/links/httpLink.d.ts
6
5
  type HTTPLinkOptions<TRoot extends AnyClientTypes> = HTTPLinkBaseOptions<TRoot> & {
7
6
  /**
@@ -16,8 +15,6 @@ type HTTPLinkOptions<TRoot extends AnyClientTypes> = HTTPLinkBaseOptions<TRoot>
16
15
  * @see https://trpc.io/docs/client/links/httpLink
17
16
  */
18
17
  declare function httpLink<TRouter extends AnyRouter = AnyRouter>(opts: HTTPLinkOptions<TRouter['_def']['_config']['$types']>): TRPCLink<TRouter>;
19
- //# sourceMappingURL=httpLink.d.ts.map
20
-
21
18
  //#endregion
22
- export { HTTPLinkOptions, httpLink };
23
- //# sourceMappingURL=httpLink.d-CVOTlkUT.d.mts.map
19
+ export { httpLink as n, HTTPLinkOptions as t };
20
+ //# sourceMappingURL=httpLink-D5FQijY2.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpLink-D5FQijY2.d.cts","names":[],"sources":["../src/links/httpLink.ts"],"mappings":";;;;KA2BY,gBAAgB,cAAc,kBACxC,oBAAoB;;;;;EAKlB,UACI,gBACE;IAAQ,IAAI;QAAgB,cAAc,QAAQ;;;;;iBAwC5C,SAAS,gBAAgB,YAAY,WACnD,MAAM,gBAAgB,wCACrB,SAAS"}