@trpc/server 10.0.0-alpha.21 → 10.0.0-alpha.22

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 (148) hide show
  1. package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +3 -3
  2. package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +3 -3
  3. package/adapters/express/dist/trpc-server-adapters-express.esm.js +3 -3
  4. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +2 -2
  5. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +2 -2
  6. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +2 -2
  7. package/adapters/fastify/index.js +1 -1
  8. package/adapters/fetch/index.d.ts +1 -0
  9. package/adapters/fetch/index.js +1 -0
  10. package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +3 -3
  11. package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +3 -3
  12. package/adapters/next/dist/trpc-server-adapters-next.esm.js +3 -3
  13. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +3 -3
  14. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +3 -3
  15. package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +3 -3
  16. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +3 -3
  17. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +3 -3
  18. package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +3 -3
  19. package/dist/{transformTRPCResponse-9fdeecca.mjs → TRPCError-7971540a.mjs} +1 -53
  20. package/dist/{transformTRPCResponse-a57d3226.js → TRPCError-ddec3395.js} +0 -54
  21. package/dist/adapters/express.js +5 -4
  22. package/dist/adapters/express.mjs +5 -4
  23. package/dist/adapters/fastify/index.js +5 -5
  24. package/dist/adapters/fastify/index.mjs +5 -5
  25. package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
  26. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
  27. package/dist/adapters/fetch/index.d.ts +3 -0
  28. package/dist/adapters/fetch/index.d.ts.map +1 -0
  29. package/dist/adapters/fetch/index.js +69 -0
  30. package/dist/adapters/fetch/index.mjs +65 -0
  31. package/dist/adapters/fetch/index.ts.js +1 -0
  32. package/dist/adapters/fetch/types.d.ts +21 -0
  33. package/dist/adapters/fetch/types.d.ts.map +1 -0
  34. package/dist/adapters/next.d.ts.map +1 -1
  35. package/dist/adapters/next.js +9 -9
  36. package/dist/adapters/next.mjs +8 -8
  37. package/dist/adapters/node-http/index.js +5 -4
  38. package/dist/adapters/node-http/index.mjs +5 -4
  39. package/dist/adapters/node-http/types.d.ts +1 -2
  40. package/dist/adapters/node-http/types.d.ts.map +1 -1
  41. package/dist/adapters/standalone.js +5 -4
  42. package/dist/adapters/standalone.mjs +5 -4
  43. package/dist/adapters/ws.d.ts.map +1 -1
  44. package/dist/adapters/ws.js +117 -80
  45. package/dist/adapters/ws.mjs +111 -74
  46. package/dist/{codes-6c13cf43.mjs → envelopes-1deb2fa7.mjs} +17 -1
  47. package/dist/{codes-4e4d55a9.js → envelopes-a953b930.js} +16 -0
  48. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  49. package/dist/index.d.ts +0 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +37 -51
  52. package/dist/index.mjs +30 -42
  53. package/dist/internals/callProcedure.d.ts +2 -2
  54. package/dist/internals/callProcedure.d.ts.map +1 -1
  55. package/dist/internals/procedure.d.ts +4 -3
  56. package/dist/internals/procedure.d.ts.map +1 -1
  57. package/dist/internals/transformTRPCResponse.d.ts +4 -2
  58. package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
  59. package/dist/{nodeHTTPRequestHandler-13c4bded.mjs → nodeHTTPRequestHandler-1cdb6383.mjs} +2 -2
  60. package/dist/{nodeHTTPRequestHandler-745e43e5.js → nodeHTTPRequestHandler-848f07b5.js} +3 -3
  61. package/dist/observable/index.d.ts +5 -0
  62. package/dist/observable/index.d.ts.map +1 -0
  63. package/dist/observable/index.js +204 -0
  64. package/dist/observable/index.mjs +195 -0
  65. package/dist/observable/index.ts.js +1 -0
  66. package/dist/observable/internals/identity.d.ts +2 -0
  67. package/dist/observable/internals/identity.d.ts.map +1 -0
  68. package/dist/observable/internals/observableToPromise.d.ts +10 -0
  69. package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
  70. package/dist/observable/internals/pipe.d.ts +4 -0
  71. package/dist/observable/internals/pipe.d.ts.map +1 -0
  72. package/dist/observable/observable.d.ts +5 -0
  73. package/dist/observable/observable.d.ts.map +1 -0
  74. package/dist/observable/operators/index.d.ts +4 -0
  75. package/dist/observable/operators/index.d.ts.map +1 -0
  76. package/dist/observable/operators/map.d.ts +3 -0
  77. package/dist/observable/operators/map.d.ts.map +1 -0
  78. package/dist/observable/operators/share.d.ts +6 -0
  79. package/dist/observable/operators/share.d.ts.map +1 -0
  80. package/dist/observable/operators/tap.d.ts +3 -0
  81. package/dist/observable/operators/tap.d.ts.map +1 -0
  82. package/dist/observable/types.d.ts +29 -0
  83. package/dist/observable/types.d.ts.map +1 -0
  84. package/dist/observable-137ea1bd.mjs +105 -0
  85. package/dist/observable-3aa4d911.js +108 -0
  86. package/dist/{resolveHTTPResponse-de40fda7.mjs → resolveHTTPResponse-54a79e6c.mjs} +14 -20
  87. package/dist/{resolveHTTPResponse-b1167b6a.js → resolveHTTPResponse-ec3dccaa.js} +21 -27
  88. package/dist/router.d.ts +6 -6
  89. package/dist/router.d.ts.map +1 -1
  90. package/dist/rpc/envelopes.d.ts +61 -39
  91. package/dist/rpc/envelopes.d.ts.map +1 -1
  92. package/dist/rpc/index.js +7 -3
  93. package/dist/rpc/index.mjs +1 -1
  94. package/dist/subscription.d.ts +3 -52
  95. package/dist/subscription.d.ts.map +1 -1
  96. package/dist/subscription.js +44 -0
  97. package/dist/subscription.mjs +40 -0
  98. package/dist/subscription.ts.js +1 -0
  99. package/dist/transformTRPCResponse-333bed6c.js +56 -0
  100. package/dist/transformTRPCResponse-e0cba527.mjs +53 -0
  101. package/dist/types.d.ts +8 -0
  102. package/dist/types.d.ts.map +1 -1
  103. package/observable/index.d.ts +1 -0
  104. package/observable/index.js +1 -0
  105. package/package.json +24 -7
  106. package/rpc/dist/trpc-server-rpc.cjs.dev.js +1 -1
  107. package/rpc/dist/trpc-server-rpc.cjs.prod.js +1 -1
  108. package/rpc/dist/trpc-server-rpc.esm.js +1 -1
  109. package/src/adapters/fetch/fetchRequestHandler.ts +61 -0
  110. package/src/adapters/fetch/index.ts +2 -0
  111. package/src/adapters/fetch/types.ts +28 -0
  112. package/src/adapters/next.ts +3 -5
  113. package/src/adapters/node-http/types.ts +1 -2
  114. package/src/adapters/ws.ts +109 -71
  115. package/src/http/resolveHTTPResponse.ts +16 -20
  116. package/src/index.ts +0 -1
  117. package/src/internals/callProcedure.ts +6 -3
  118. package/src/internals/procedure.ts +40 -27
  119. package/src/internals/transformTRPCResponse.ts +20 -15
  120. package/src/observable/index.ts +4 -0
  121. package/src/observable/internals/identity.ts +3 -0
  122. package/src/observable/internals/observableToPromise.ts +49 -0
  123. package/src/observable/internals/pipe.ts +22 -0
  124. package/src/observable/observable.test.ts +101 -0
  125. package/src/observable/observable.ts +75 -0
  126. package/src/observable/operators/index.ts +3 -0
  127. package/src/observable/operators/map.test.ts +92 -0
  128. package/src/observable/operators/map.ts +25 -0
  129. package/src/observable/operators/share.test.ts +60 -0
  130. package/src/observable/operators/share.ts +67 -0
  131. package/src/observable/operators/tap.ts +26 -0
  132. package/src/observable/types.ts +69 -0
  133. package/src/router.ts +7 -9
  134. package/src/rpc/envelopes.ts +87 -68
  135. package/src/subscription.ts +5 -123
  136. package/src/types.ts +7 -0
  137. package/dist/internals/wrapCallSafe.d.ts +0 -16
  138. package/dist/internals/wrapCallSafe.d.ts.map +0 -1
  139. package/dist/subscription-4b936ba3.js +0 -136
  140. package/dist/subscription-8a85f253.mjs +0 -133
  141. package/src/internals/wrapCallSafe.ts +0 -19
  142. package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
  143. package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
  144. package/ws/dist/trpc-server-ws.cjs.js +0 -7
  145. package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
  146. package/ws/dist/trpc-server-ws.esm.js +0 -11
  147. package/ws/index.d.ts +0 -1
  148. package/ws/index.js +0 -1
@@ -2,10 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var transformTRPCResponse = require('../transformTRPCResponse-a57d3226.js');
6
- var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-745e43e5.js');
7
- require('../resolveHTTPResponse-b1167b6a.js');
8
- require('../codes-4e4d55a9.js');
5
+ var TRPCError = require('../TRPCError-ddec3395.js');
6
+ var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-848f07b5.js');
7
+ require('../resolveHTTPResponse-ec3dccaa.js');
8
+ require('../transformTRPCResponse-333bed6c.js');
9
+ require('../envelopes-a953b930.js');
9
10
 
10
11
  /* eslint-disable @typescript-eslint/no-explicit-any */
11
12
  function createNextApiHandler(opts) {
@@ -26,7 +27,7 @@ function createNextApiHandler(opts) {
26
27
 
27
28
  if (path === null) {
28
29
  const error = opts.router.getErrorShape({
29
- error: new transformTRPCResponse.TRPCError({
30
+ error: new TRPCError.TRPCError({
30
31
  message: 'Query "trpc" not found - is the file named `[trpc]`.ts or `[...trpc].ts`?',
31
32
  code: 'INTERNAL_SERVER_ERROR'
32
33
  }),
@@ -35,12 +36,11 @@ function createNextApiHandler(opts) {
35
36
  path: undefined,
36
37
  input: undefined
37
38
  });
38
- const json = {
39
+ res.statusCode = 500;
40
+ res.json({
39
41
  id: -1,
40
42
  error
41
- };
42
- res.statusCode = 500;
43
- res.json(json);
43
+ });
44
44
  return;
45
45
  }
46
46
 
@@ -1,7 +1,8 @@
1
- import { T as TRPCError } from '../transformTRPCResponse-9fdeecca.mjs';
2
- import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-13c4bded.mjs';
3
- import '../resolveHTTPResponse-de40fda7.mjs';
4
- import '../codes-6c13cf43.mjs';
1
+ import { T as TRPCError } from '../TRPCError-7971540a.mjs';
2
+ import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-1cdb6383.mjs';
3
+ import '../resolveHTTPResponse-54a79e6c.mjs';
4
+ import '../transformTRPCResponse-e0cba527.mjs';
5
+ import '../envelopes-1deb2fa7.mjs';
5
6
 
6
7
  /* eslint-disable @typescript-eslint/no-explicit-any */
7
8
  function createNextApiHandler(opts) {
@@ -31,12 +32,11 @@ function createNextApiHandler(opts) {
31
32
  path: undefined,
32
33
  input: undefined
33
34
  });
34
- const json = {
35
+ res.statusCode = 500;
36
+ res.json({
35
37
  id: -1,
36
38
  error
37
- };
38
- res.statusCode = 500;
39
- res.json(json);
39
+ });
40
40
  return;
41
41
  }
42
42
 
@@ -2,10 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var nodeHTTPRequestHandler = require('../../nodeHTTPRequestHandler-745e43e5.js');
6
- require('../../resolveHTTPResponse-b1167b6a.js');
7
- require('../../transformTRPCResponse-a57d3226.js');
8
- require('../../codes-4e4d55a9.js');
5
+ var nodeHTTPRequestHandler = require('../../nodeHTTPRequestHandler-848f07b5.js');
6
+ require('../../resolveHTTPResponse-ec3dccaa.js');
7
+ require('../../TRPCError-ddec3395.js');
8
+ require('../../transformTRPCResponse-333bed6c.js');
9
+ require('../../envelopes-a953b930.js');
9
10
 
10
11
 
11
12
 
@@ -1,4 +1,5 @@
1
- export { n as nodeHTTPRequestHandler } from '../../nodeHTTPRequestHandler-13c4bded.mjs';
2
- import '../../resolveHTTPResponse-de40fda7.mjs';
3
- import '../../transformTRPCResponse-9fdeecca.mjs';
4
- import '../../codes-6c13cf43.mjs';
1
+ export { n as nodeHTTPRequestHandler } from '../../nodeHTTPRequestHandler-1cdb6383.mjs';
2
+ import '../../resolveHTTPResponse-54a79e6c.mjs';
3
+ import '../../TRPCError-7971540a.mjs';
4
+ import '../../transformTRPCResponse-e0cba527.mjs';
5
+ import '../../envelopes-1deb2fa7.mjs';
@@ -1,9 +1,8 @@
1
1
  /// <reference types="node" />
2
2
  import { IncomingMessage, ServerResponse } from 'http';
3
3
  import qs from 'qs';
4
- import { inferRouterContext } from '../..';
5
4
  import { HTTPBaseHandlerOptions } from '../../http/internals/types';
6
- import { AnyRouter } from '../../router';
5
+ import { AnyRouter, inferRouterContext } from '../../router';
7
6
  export declare type NodeHTTPRequest = IncomingMessage & {
8
7
  method?: string;
9
8
  query?: qs.ParsedQs;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/node-http/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,oBAAY,eAAe,GAAG,eAAe,GAAG;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AACF,oBAAY,gBAAgB,GAAG,cAAc,CAAC;AAE9C,oBAAY,2BAA2B,CACrC,OAAO,SAAS,SAAS,EACzB,QAAQ,EACR,SAAS,IACP,OAAO,SAAS,kBAAkB,CAAC,OAAO,CAAC,GAC3C;IACE;;QAEI;IACJ,aAAa,CAAC,EAAE,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;CACvE,GACD;IACE;;QAEI;IACJ,aAAa,EAAE,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;CACtE,CAAC;AAEN,oBAAY,sBAAsB,CAChC,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,eAAe,EAChC,SAAS,SAAS,gBAAgB,IAChC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG;IAC9C,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAE9D,oBAAY,8BAA8B,CAAC,QAAQ,EAAE,SAAS,IAAI;IAChE,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AACF,oBAAY,uBAAuB,CACjC,OAAO,SAAS,SAAS,EACzB,QAAQ,EACR,SAAS,IACP,CACF,IAAI,EAAE,8BAA8B,CAAC,QAAQ,EAAE,SAAS,CAAC,KACtD,kBAAkB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/node-http/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE7D,oBAAY,eAAe,GAAG,eAAe,GAAG;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AACF,oBAAY,gBAAgB,GAAG,cAAc,CAAC;AAE9C,oBAAY,2BAA2B,CACrC,OAAO,SAAS,SAAS,EACzB,QAAQ,EACR,SAAS,IACP,OAAO,SAAS,kBAAkB,CAAC,OAAO,CAAC,GAC3C;IACE;;QAEI;IACJ,aAAa,CAAC,EAAE,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;CACvE,GACD;IACE;;QAEI;IACJ,aAAa,EAAE,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;CACtE,CAAC;AAEN,oBAAY,sBAAsB,CAChC,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,eAAe,EAChC,SAAS,SAAS,gBAAgB,IAChC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG;IAC9C,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAE9D,oBAAY,8BAA8B,CAAC,QAAQ,EAAE,SAAS,IAAI;IAChE,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AACF,oBAAY,uBAAuB,CACjC,OAAO,SAAS,SAAS,EACzB,QAAQ,EACR,SAAS,IACP,CACF,IAAI,EAAE,8BAA8B,CAAC,QAAQ,EAAE,SAAS,CAAC,KACtD,kBAAkB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC"}
@@ -3,10 +3,11 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var http = require('http');
6
- var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-745e43e5.js');
7
- require('../resolveHTTPResponse-b1167b6a.js');
8
- require('../transformTRPCResponse-a57d3226.js');
9
- require('../codes-4e4d55a9.js');
6
+ var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-848f07b5.js');
7
+ require('../resolveHTTPResponse-ec3dccaa.js');
8
+ require('../TRPCError-ddec3395.js');
9
+ require('../transformTRPCResponse-333bed6c.js');
10
+ require('../envelopes-a953b930.js');
10
11
 
11
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
13
 
@@ -1,8 +1,9 @@
1
1
  import http from 'http';
2
- import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-13c4bded.mjs';
3
- import '../resolveHTTPResponse-de40fda7.mjs';
4
- import '../transformTRPCResponse-9fdeecca.mjs';
5
- import '../codes-6c13cf43.mjs';
2
+ import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-1cdb6383.mjs';
3
+ import '../resolveHTTPResponse-54a79e6c.mjs';
4
+ import '../TRPCError-7971540a.mjs';
5
+ import '../transformTRPCResponse-e0cba527.mjs';
6
+ import '../envelopes-1deb2fa7.mjs';
6
7
 
7
8
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
8
9
  function createHTTPHandler(opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../src/adapters/ws.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAIrE,OAAO,EAAE,SAAS,EAAqC,MAAM,WAAW,CAAC;AASzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAiE1D;;GAEG;AACH,oBAAY,iBAAiB,CAAC,OAAO,SAAS,SAAS,IAAI,kBAAkB,CAC3E,OAAO,EACP,eAAe,CAChB,GAAG;IACF,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;CAC1B,GAAG,2BAA2B,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;AAE9D,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,EACvD,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;;EAmNjC"}
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../src/adapters/ws.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAKrE,OAAO,EAAE,SAAS,EAAqC,MAAM,WAAW,CAAC;AAQzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAyE1D;;GAEG;AACH,oBAAY,iBAAiB,CAAC,OAAO,SAAS,SAAS,IAAI,kBAAkB,CAC3E,OAAO,EACP,eAAe,CAChB,GAAG;IACF,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;CAC1B,GAAG,2BAA2B,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;AAE9D,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,EACvD,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;;EAiPjC"}
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var transformTRPCResponse = require('../transformTRPCResponse-a57d3226.js');
6
- var subscription = require('../subscription-4b936ba3.js');
7
- require('events');
5
+ var TRPCError = require('../TRPCError-ddec3395.js');
6
+ var transformTRPCResponse = require('../transformTRPCResponse-333bed6c.js');
7
+ var observable = require('../observable-3aa4d911.js');
8
8
 
9
9
  /* istanbul ignore next */
10
10
  function assertIsObject(obj) {
@@ -59,8 +59,8 @@ function parseMessage(obj, transformer) {
59
59
  if (method === 'subscription.stop') {
60
60
  return {
61
61
  id,
62
- method,
63
- params: undefined
62
+ jsonrpc,
63
+ method
64
64
  };
65
65
  }
66
66
 
@@ -73,8 +73,8 @@ function parseMessage(obj, transformer) {
73
73
  assertIsString(path);
74
74
  const input = transformer.input.deserialize(rawInput);
75
75
  return {
76
- jsonrpc,
77
76
  id,
77
+ jsonrpc,
78
78
  method,
79
79
  params: {
80
80
  input,
@@ -103,6 +103,20 @@ function applyWSSHandler(opts) {
103
103
  client.send(JSON.stringify(transformTRPCResponse.transformTRPCResponse(router, untransformedJSON)));
104
104
  }
105
105
 
106
+ function stopSubscription(subscription, {
107
+ id,
108
+ jsonrpc
109
+ }) {
110
+ subscription.unsubscribe();
111
+ respond({
112
+ id,
113
+ jsonrpc,
114
+ result: {
115
+ type: 'stopped'
116
+ }
117
+ });
118
+ }
119
+
106
120
  const ctxPromise = createContext === null || createContext === void 0 ? void 0 : createContext({
107
121
  req,
108
122
  res: client
@@ -111,12 +125,13 @@ function applyWSSHandler(opts) {
111
125
 
112
126
  async function handleRequest(msg) {
113
127
  const {
114
- id
128
+ id,
129
+ jsonrpc
115
130
  } = msg;
116
131
  /* istanbul ignore next */
117
132
 
118
133
  if (id === null) {
119
- throw new transformTRPCResponse.TRPCError({
134
+ throw new TRPCError.TRPCError({
120
135
  code: 'BAD_REQUEST',
121
136
  message: '`id` is required'
122
137
  });
@@ -126,7 +141,10 @@ function applyWSSHandler(opts) {
126
141
  const sub = clientSubscriptions.get(id);
127
142
 
128
143
  if (sub) {
129
- sub.destroy();
144
+ stopSubscription(sub, {
145
+ id,
146
+ jsonrpc
147
+ });
130
148
  }
131
149
 
132
150
  clientSubscriptions.delete(id);
@@ -150,9 +168,18 @@ function applyWSSHandler(opts) {
150
168
  ctx
151
169
  });
152
170
 
153
- if (!(result instanceof subscription.Subscription)) {
171
+ if (type === 'subscription') {
172
+ if (!observable.isObservable(result)) {
173
+ throw new TRPCError.TRPCError({
174
+ message: `Subscription ${path} did not return an observable`,
175
+ code: 'INTERNAL_SERVER_ERROR'
176
+ });
177
+ }
178
+ } else {
179
+ // send the value as data if the method is not a subscription
154
180
  respond({
155
181
  id,
182
+ jsonrpc,
156
183
  result: {
157
184
  type: 'data',
158
185
  data: result
@@ -161,12 +188,61 @@ function applyWSSHandler(opts) {
161
188
  return;
162
189
  }
163
190
 
164
- const sub = result;
191
+ const observable$1 = result;
192
+ const sub = observable$1.subscribe({
193
+ next(data) {
194
+ respond({
195
+ id,
196
+ jsonrpc,
197
+ result: {
198
+ type: 'data',
199
+ data
200
+ }
201
+ });
202
+ },
203
+
204
+ error(err) {
205
+ var _opts$onError;
206
+
207
+ const error = TRPCError.getErrorFromUnknown(err);
208
+ (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, {
209
+ error,
210
+ path,
211
+ type,
212
+ ctx,
213
+ req,
214
+ input
215
+ });
216
+ respond({
217
+ id,
218
+ jsonrpc,
219
+ error: router.getErrorShape({
220
+ error,
221
+ type,
222
+ path,
223
+ input,
224
+ ctx
225
+ })
226
+ });
227
+ },
228
+
229
+ complete() {
230
+ respond({
231
+ id,
232
+ jsonrpc,
233
+ result: {
234
+ type: 'stopped'
235
+ }
236
+ });
237
+ }
238
+
239
+ });
165
240
  /* istanbul ignore next */
166
241
 
167
242
  if (client.readyState !== client.OPEN) {
168
243
  // if the client got disconnected whilst initializing the subscription
169
- sub.destroy();
244
+ // no need to send stopped message if the client is disconnected
245
+ sub.unsubscribe();
170
246
  return;
171
247
  }
172
248
  /* istanbul ignore next */
@@ -174,76 +250,31 @@ function applyWSSHandler(opts) {
174
250
 
175
251
  if (clientSubscriptions.has(id)) {
176
252
  // duplicate request ids for client
177
- sub.destroy();
178
- throw new transformTRPCResponse.TRPCError({
253
+ stopSubscription(sub, {
254
+ id,
255
+ jsonrpc
256
+ });
257
+ throw new TRPCError.TRPCError({
179
258
  message: `Duplicate id ${id}`,
180
259
  code: 'BAD_REQUEST'
181
260
  });
182
261
  }
183
262
 
184
263
  clientSubscriptions.set(id, sub);
185
- sub.on('data', data => {
186
- respond({
187
- id,
188
- result: {
189
- type: 'data',
190
- data
191
- }
192
- });
193
- });
194
- sub.on('error', _error => {
195
- var _opts$onError;
196
-
197
- const error = transformTRPCResponse.getErrorFromUnknown(_error);
198
- const json = {
199
- id,
200
- error: router.getErrorShape({
201
- error,
202
- type,
203
- path,
204
- input,
205
- ctx
206
- })
207
- };
208
- (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, {
209
- error,
210
- path,
211
- type,
212
- ctx,
213
- req,
214
- input
215
- });
216
- respond(json);
217
- });
218
- sub.on('destroy', () => {
219
- respond({
220
- id,
221
- result: {
222
- type: 'stopped'
223
- }
224
- });
225
- });
226
264
  respond({
227
265
  id,
266
+ jsonrpc,
228
267
  result: {
229
268
  type: 'started'
230
269
  }
231
270
  });
232
- await sub.start();
233
271
  } catch (cause)
234
272
  /* istanbul ignore next */
235
273
  {
236
274
  var _opts$onError2;
237
275
 
238
276
  // procedure threw an error
239
- const error = transformTRPCResponse.getErrorFromUnknown(cause);
240
- const json = router.getErrorShape({
241
- error,
242
- type,
243
- path,
244
- input,
245
- ctx
246
- });
277
+ const error = TRPCError.getErrorFromUnknown(cause);
247
278
  (_opts$onError2 = opts.onError) === null || _opts$onError2 === void 0 ? void 0 : _opts$onError2.call(opts, {
248
279
  error,
249
280
  path,
@@ -254,7 +285,14 @@ function applyWSSHandler(opts) {
254
285
  });
255
286
  respond({
256
287
  id,
257
- error: json
288
+ jsonrpc,
289
+ error: router.getErrorShape({
290
+ error,
291
+ type,
292
+ path,
293
+ input,
294
+ ctx
295
+ })
258
296
  });
259
297
  }
260
298
  }
@@ -266,9 +304,9 @@ function applyWSSHandler(opts) {
266
304
  const promises = msgs.map(raw => parseMessage(raw, transformer)).map(handleRequest);
267
305
  await Promise.all(promises);
268
306
  } catch (cause) {
269
- const error = new transformTRPCResponse.TRPCError({
307
+ const error = new TRPCError.TRPCError({
270
308
  code: 'PARSE_ERROR',
271
- cause: transformTRPCResponse.getCauseFromUnknown(cause)
309
+ cause: TRPCError.getCauseFromUnknown(cause)
272
310
  });
273
311
  respond({
274
312
  id: null,
@@ -284,7 +322,7 @@ function applyWSSHandler(opts) {
284
322
  });
285
323
  client.once('close', () => {
286
324
  for (const sub of clientSubscriptions.values()) {
287
- sub.destroy();
325
+ sub.unsubscribe();
288
326
  }
289
327
 
290
328
  clientSubscriptions.clear();
@@ -296,17 +334,7 @@ function applyWSSHandler(opts) {
296
334
  } catch (cause) {
297
335
  var _opts$onError3, _global$setImmediate;
298
336
 
299
- const error = transformTRPCResponse.getErrorFromUnknown(cause);
300
- const json = {
301
- id: null,
302
- error: router.getErrorShape({
303
- error,
304
- type: 'unknown',
305
- path: undefined,
306
- input: undefined,
307
- ctx
308
- })
309
- };
337
+ const error = TRPCError.getErrorFromUnknown(cause);
310
338
  (_opts$onError3 = opts.onError) === null || _opts$onError3 === void 0 ? void 0 : _opts$onError3.call(opts, {
311
339
  error,
312
340
  path: undefined,
@@ -315,7 +343,16 @@ function applyWSSHandler(opts) {
315
343
  req,
316
344
  input: undefined
317
345
  });
318
- respond(json); // close in next tick
346
+ respond({
347
+ id: null,
348
+ error: router.getErrorShape({
349
+ error,
350
+ type: 'unknown',
351
+ path: undefined,
352
+ input: undefined,
353
+ ctx
354
+ })
355
+ }); // close in next tick
319
356
 
320
357
  ((_global$setImmediate = global.setImmediate) !== null && _global$setImmediate !== void 0 ? _global$setImmediate : global.setTimeout)(() => {
321
358
  client.close();