@push-rpc/next 2.0.15 → 2.0.17

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.
@@ -1,4 +1,7 @@
1
+ import { ClientCache } from "./index";
1
2
  export declare class RemoteSubscriptions {
3
+ private cache;
4
+ constructor(cache: ClientCache | null);
2
5
  unsubscribe(itemName: string, parameters: unknown[], consumer: (d: unknown) => void): boolean;
3
6
  addSubscription(itemName: string, parameters: unknown[], consumer: (d: unknown) => void): void;
4
7
  pause(itemName: string, parameters: unknown[]): void;
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RemoteSubscriptions = void 0;
4
4
  const json_js_1 = require("../utils/json.js");
5
5
  class RemoteSubscriptions {
6
- constructor() {
6
+ constructor(cache) {
7
+ this.cache = cache;
7
8
  this.byItem = new Map();
8
9
  }
9
10
  unsubscribe(itemName, parameters, consumer) {
@@ -40,6 +41,8 @@ class RemoteSubscriptions {
40
41
  if (!filterSubscriptions)
41
42
  return;
42
43
  filterSubscriptions.queue.forEach((data) => {
44
+ if (this.cache)
45
+ this.cache.put(itemName, parameters, data);
43
46
  filterSubscriptions.cached = data;
44
47
  filterSubscriptions.consumers.forEach((consumer) => {
45
48
  consumer(data);
@@ -76,7 +79,7 @@ class RemoteSubscriptions {
76
79
  getCached(itemName, parameters) {
77
80
  const filterSubscriptions = this.getFilterSubscriptions(itemName, parameters);
78
81
  if (!filterSubscriptions)
79
- return;
82
+ return this.cache?.get(itemName, parameters);
80
83
  return filterSubscriptions.cached;
81
84
  }
82
85
  consume(itemName, parameters, data) {
@@ -87,6 +90,8 @@ class RemoteSubscriptions {
87
90
  filterSubscriptions.queue.push(data);
88
91
  }
89
92
  else {
93
+ if (this.cache)
94
+ this.cache.put(itemName, parameters, data);
90
95
  filterSubscriptions.cached = data;
91
96
  filterSubscriptions.consumers.forEach((consumer) => {
92
97
  consumer(data);
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteSubscriptions.js","sourceRoot":"","sources":["../../src/client/RemoteSubscriptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteSubscriptions.js","sourceRoot":"","sources":["../../src/client/RemoteSubscriptions.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,7 @@ class RpcClientImpl {
59
59
  }
60
60
  };
61
61
  this.httpClient = new HttpClient_js_1.HttpClient(url, this.clientId, options.getHeaders);
62
- this.remoteSubscriptions = new RemoteSubscriptions_js_1.RemoteSubscriptions();
62
+ this.remoteSubscriptions = new RemoteSubscriptions_js_1.RemoteSubscriptions(options.cache);
63
63
  this.connection = new WebSocketConnection_js_1.WebSocketConnection(options.getSubscriptionsUrl(url), this.clientId, {
64
64
  subscriptions: options.subscriptions,
65
65
  errorDelayMaxDuration: options.errorDelayMaxDuration,
@@ -1 +1 @@
1
- {"version":3,"file":"RpcClientImpl.js","sourceRoot":"","sources":["../../src/client/RpcClientImpl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RpcClientImpl.js","sourceRoot":"","sources":["../../src/client/RpcClientImpl.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,10 @@ export type RpcClient = {
9
9
  _allSubscriptions(): Array<any[]>;
10
10
  _webSocket(): WebSocket | null;
11
11
  };
12
+ export type ClientCache = {
13
+ put(itemName: string, parameters: unknown[], value: unknown): void;
14
+ get(itemName: string, parameters: unknown[]): unknown | undefined;
15
+ };
12
16
  export type ConsumeServicesOptions = {
13
17
  callTimeout: number;
14
18
  reconnectDelay: number;
@@ -22,6 +26,7 @@ export type ConsumeServicesOptions = {
22
26
  onDisconnected: () => void;
23
27
  getHeaders: () => Promise<Record<string, string>>;
24
28
  getSubscriptionsUrl(url: string): string;
29
+ cache: ClientCache | null;
25
30
  };
26
31
  export declare function consumeServices<S extends Services<S>>(url: string, overrideOptions?: Partial<ConsumeServicesOptions>): Promise<{
27
32
  client: RpcClient;
@@ -29,11 +29,14 @@ const defaultOptions = {
29
29
  middleware: [],
30
30
  notificationsMiddleware: [],
31
31
  connectOnCreate: false,
32
- onConnected: () => { },
33
- onDisconnected: () => { },
32
+ onConnected: () => {
33
+ },
34
+ onDisconnected: () => {
35
+ },
34
36
  getHeaders: async () => ({}),
35
37
  getSubscriptionsUrl(url) {
36
38
  return url.replace(/^https(.*)/, "wss$1").replace(/^http(.*)/, "ws$1");
37
39
  },
40
+ cache: null,
38
41
  };
39
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;AAEA,yDAAgD;AA8BzC,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,kBAAmD,EAAE;IAKrD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG;QACd,GAAG,cAAc;QACjB,GAAG,eAAe;KACnB,CAAA;IAED,MAAM,MAAM,GAAG,IAAI,gCAAa,CAAI,GAAG,EAAE,OAAO,CAAC,CAAA;IAEjD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC;IAED,OAAO;QACL,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE;KAC9B,CAAA;AACH,CAAC;AA1BD,0CA0BC;AAED,MAAM,cAAc,GAA2B;IAC7C,WAAW,EAAE,CAAC,GAAG,IAAI;IACrB,cAAc,EAAE,CAAC;IACjB,qBAAqB,EAAE,EAAE,GAAG,IAAI;IAChC,YAAY,EAAE,IAAI,EAAE,sDAAsD;IAC1E,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,EAAE;IACd,uBAAuB,EAAE,EAAE;IAC3B,eAAe,EAAE,KAAK;IACtB,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;IACrB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;IACxB,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAE5B,mBAAmB,CAAC,GAAW;QAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACxE,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;AAEA,yDAAgD;AAoCzC,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,kBAAmD,EAAE;IAKrD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG;QACd,GAAG,cAAc;QACjB,GAAG,eAAe;KACnB,CAAA;IAED,MAAM,MAAM,GAAG,IAAI,gCAAa,CAAI,GAAG,EAAE,OAAO,CAAC,CAAA;IAEjD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC;IAED,OAAO;QACL,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE;KAC9B,CAAA;AACH,CAAC;AA1BD,0CA0BC;AAED,MAAM,cAAc,GAA2B;IAC7C,WAAW,EAAE,CAAC,GAAG,IAAI;IACrB,cAAc,EAAE,CAAC;IACjB,qBAAqB,EAAE,EAAE,GAAG,IAAI;IAChC,YAAY,EAAE,IAAI,EAAE,sDAAsD;IAC1E,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,EAAE;IACd,uBAAuB,EAAE,EAAE;IAC3B,eAAe,EAAE,KAAK;IACtB,WAAW,EAAE,GAAG,EAAE;IAClB,CAAC;IACD,cAAc,EAAE,GAAG,EAAE;IACrB,CAAC;IACD,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAE5B,mBAAmB,CAAC,GAAW;QAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACxE,CAAC;IACD,KAAK,EAAE,IAAI;CACZ,CAAA"}
@@ -18,6 +18,7 @@ function createRemote(hooks, name = "") {
18
18
  const { params, callOptions } = extractCallOptions(paramsWithCallOptions);
19
19
  return hooks.unsubscribe(name, params, consumer, callOptions);
20
20
  },
21
+ itemName: name,
21
22
  };
22
23
  Object.assign(remoteItem, subscription);
23
24
  // then add proxy creating subitems
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/client/remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/client/remote.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export type { RpcServer, PublishServicesOptions } from "./server/index.js";
6
6
  export type { HttpServerHooks } from "./server/http.js";
7
7
  export { publishServices } from "./server/index.js";
8
8
  export type { ServicesWithTriggers } from "./server/local.js";
9
- export type { RpcClient, ConsumeServicesOptions } from "./client/index.js";
9
+ export type { RpcClient, ConsumeServicesOptions, ClientCache } from "./client/index.js";
10
10
  export { consumeServices } from "./client/index.js";
11
11
  export type { ServicesWithSubscriptions } from "./client/remote.js";
12
12
  export { log, setLogger } from "./logger.js";
@@ -49,7 +49,7 @@ async function serveHttpRequest(req, res, path, hooks, createConnectionContext)
49
49
  res.end();
50
50
  }
51
51
  catch (e) {
52
- if (e.code) {
52
+ if (e.code && typeof e.code == "number" && e.code >= 100 && e.code < 600) {
53
53
  res.statusCode = e.code;
54
54
  if (e.message) {
55
55
  res.setHeader("X-Error", e["message"]);
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@push-rpc/next",
3
- "version": "2.0.15",
3
+ "version": "2.0.17",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -1,6 +1,11 @@
1
1
  import {safeStringify} from "../utils/json.js"
2
2
 
3
+ import {ClientCache} from "./index"
4
+
3
5
  export class RemoteSubscriptions {
6
+ constructor(private cache: ClientCache | null) {
7
+ }
8
+
4
9
  unsubscribe(itemName: string, parameters: unknown[], consumer: (d: unknown) => void): boolean {
5
10
  const parametersKey = getParametersKey(parameters)
6
11
 
@@ -13,7 +18,7 @@ export class RemoteSubscriptions {
13
18
 
14
19
  const parametersKey = getParametersKey(parameters)
15
20
  const parameterSubscriptions: ParametersSubscription = itemSubscriptions.byParameters.get(
16
- parametersKey
21
+ parametersKey,
17
22
  ) || {
18
23
  parameters,
19
24
  cached: null,
@@ -44,6 +49,7 @@ export class RemoteSubscriptions {
44
49
  if (!filterSubscriptions) return
45
50
 
46
51
  filterSubscriptions.queue.forEach((data) => {
52
+ if (this.cache) this.cache.put(itemName, parameters, data)
47
53
  filterSubscriptions.cached = data
48
54
  filterSubscriptions.consumers.forEach((consumer) => {
49
55
  consumer(data)
@@ -63,7 +69,7 @@ export class RemoteSubscriptions {
63
69
  private removeSubscription(
64
70
  itemName: string,
65
71
  parametersKey: string,
66
- consumer: (d: unknown) => void
72
+ consumer: (d: unknown) => void,
67
73
  ): boolean {
68
74
  const itemSubscriptions = this.byItem.get(itemName)
69
75
  if (!itemSubscriptions) return false
@@ -91,7 +97,7 @@ export class RemoteSubscriptions {
91
97
 
92
98
  getCached(itemName: string, parameters: unknown[]): unknown | undefined {
93
99
  const filterSubscriptions = this.getFilterSubscriptions(itemName, parameters)
94
- if (!filterSubscriptions) return
100
+ if (!filterSubscriptions) return this.cache?.get(itemName, parameters)
95
101
 
96
102
  return filterSubscriptions.cached
97
103
  }
@@ -103,6 +109,7 @@ export class RemoteSubscriptions {
103
109
  if (filterSubscriptions.paused) {
104
110
  filterSubscriptions.queue.push(data)
105
111
  } else {
112
+ if (this.cache) this.cache.put(itemName, parameters, data)
106
113
  filterSubscriptions.cached = data
107
114
  filterSubscriptions.consumers.forEach((consumer) => {
108
115
  consumer(data)
@@ -126,7 +133,7 @@ export class RemoteSubscriptions {
126
133
 
127
134
  private getFilterSubscriptions(
128
135
  itemName: string,
129
- parameters: unknown[]
136
+ parameters: unknown[],
130
137
  ): ParametersSubscription | undefined {
131
138
  const parametersKey = getParametersKey(parameters)
132
139
 
@@ -10,10 +10,10 @@ import {Middleware, withMiddlewares} from "../utils/middleware.js"
10
10
  export class RpcClientImpl<S extends Services<S>> implements RpcClient {
11
11
  constructor(
12
12
  url: string,
13
- private readonly options: ConsumeServicesOptions
13
+ private readonly options: ConsumeServicesOptions,
14
14
  ) {
15
15
  this.httpClient = new HttpClient(url, this.clientId, options.getHeaders)
16
- this.remoteSubscriptions = new RemoteSubscriptions()
16
+ this.remoteSubscriptions = new RemoteSubscriptions(options.cache)
17
17
 
18
18
  this.connection = new WebSocketConnection(
19
19
  options.getSubscriptionsUrl(url),
@@ -39,7 +39,7 @@ export class RpcClientImpl<S extends Services<S>> implements RpcClient {
39
39
  this.options.notificationsMiddleware,
40
40
  next as any,
41
41
  data,
42
- parameters
42
+ parameters,
43
43
  )
44
44
  },
45
45
  () => {
@@ -48,7 +48,7 @@ export class RpcClientImpl<S extends Services<S>> implements RpcClient {
48
48
  },
49
49
  () => {
50
50
  options.onDisconnected()
51
- }
51
+ },
52
52
  )
53
53
  }
54
54
 
@@ -101,7 +101,7 @@ export class RpcClientImpl<S extends Services<S>> implements RpcClient {
101
101
  private call = (
102
102
  itemName: string,
103
103
  parameters: unknown[],
104
- callOptions?: CallOptions
104
+ callOptions?: CallOptions,
105
105
  ): Promise<unknown> => {
106
106
  return this.invoke(
107
107
  itemName,
@@ -110,9 +110,9 @@ export class RpcClientImpl<S extends Services<S>> implements RpcClient {
110
110
  this.httpClient.call(
111
111
  itemName,
112
112
  parameters,
113
- callOptions?.timeout ?? this.options.callTimeout
113
+ callOptions?.timeout ?? this.options.callTimeout,
114
114
  ),
115
- parameters
115
+ parameters,
116
116
  )
117
117
  }
118
118
 
@@ -120,7 +120,7 @@ export class RpcClientImpl<S extends Services<S>> implements RpcClient {
120
120
  itemName: string,
121
121
  parameters: unknown[],
122
122
  consumer: (d: unknown) => void,
123
- callOptions?: CallOptions
123
+ callOptions?: CallOptions,
124
124
  ): Promise<void> => {
125
125
  const cached = this.remoteSubscriptions.getCached(itemName, parameters)
126
126
 
@@ -143,9 +143,9 @@ export class RpcClientImpl<S extends Services<S>> implements RpcClient {
143
143
  this.httpClient.subscribe(
144
144
  itemName,
145
145
  parameters,
146
- callOptions?.timeout ?? this.options.callTimeout
146
+ callOptions?.timeout ?? this.options.callTimeout,
147
147
  ),
148
- parameters
148
+ parameters,
149
149
  )
150
150
 
151
151
  this.remoteSubscriptions.unpause(itemName, parameters)
@@ -163,7 +163,7 @@ export class RpcClientImpl<S extends Services<S>> implements RpcClient {
163
163
  itemName: string,
164
164
  parameters: unknown[],
165
165
  consumer: (d: unknown) => void,
166
- callOptions?: CallOptions
166
+ callOptions?: CallOptions,
167
167
  ) => {
168
168
  const noSubscriptionsLeft = this.remoteSubscriptions.unsubscribe(itemName, parameters, consumer)
169
169
 
@@ -175,9 +175,9 @@ export class RpcClientImpl<S extends Services<S>> implements RpcClient {
175
175
  this.httpClient.unsubscribe(
176
176
  itemName,
177
177
  parameters,
178
- callOptions?.timeout ?? this.options.callTimeout
178
+ callOptions?.timeout ?? this.options.callTimeout,
179
179
  ),
180
- parameters
180
+ parameters,
181
181
  )
182
182
  }
183
183
  }
@@ -201,7 +201,7 @@ export class RpcClientImpl<S extends Services<S>> implements RpcClient {
201
201
  itemName: string,
202
202
  invocationType: InvocationType,
203
203
  next: (...params: unknown[]) => Promise<unknown>,
204
- parameters: unknown[]
204
+ parameters: unknown[],
205
205
  ) {
206
206
  const ctx: RpcContext = {
207
207
  clientId: this.clientId,
@@ -15,6 +15,11 @@ export type RpcClient = {
15
15
  _webSocket(): WebSocket | null
16
16
  }
17
17
 
18
+ export type ClientCache = {
19
+ put(itemName: string, parameters: unknown[], value: unknown): void
20
+ get(itemName: string, parameters: unknown[]): unknown | undefined
21
+ }
22
+
18
23
  export type ConsumeServicesOptions = {
19
24
  callTimeout: number
20
25
  reconnectDelay: number
@@ -28,11 +33,12 @@ export type ConsumeServicesOptions = {
28
33
  onDisconnected: () => void
29
34
  getHeaders: () => Promise<Record<string, string>>
30
35
  getSubscriptionsUrl(url: string): string
36
+ cache: ClientCache | null
31
37
  }
32
38
 
33
39
  export async function consumeServices<S extends Services<S>>(
34
40
  url: string,
35
- overrideOptions: Partial<ConsumeServicesOptions> = {}
41
+ overrideOptions: Partial<ConsumeServicesOptions> = {},
36
42
  ): Promise<{
37
43
  client: RpcClient
38
44
  remote: ServicesWithSubscriptions<S>
@@ -67,11 +73,14 @@ const defaultOptions: ConsumeServicesOptions = {
67
73
  middleware: [],
68
74
  notificationsMiddleware: [],
69
75
  connectOnCreate: false,
70
- onConnected: () => {},
71
- onDisconnected: () => {},
76
+ onConnected: () => {
77
+ },
78
+ onDisconnected: () => {
79
+ },
72
80
  getHeaders: async () => ({}),
73
81
 
74
82
  getSubscriptionsUrl(url: string): string {
75
83
  return url.replace(/^https(.*)/, "wss$1").replace(/^http(.*)/, "ws$1")
76
84
  },
85
+ cache: null,
77
86
  }
@@ -2,7 +2,7 @@ import {CallOptions, Consumer, RemoteFunction, Services} from "../rpc.js"
2
2
 
3
3
  export function createRemote<S extends Services<S>>(
4
4
  hooks: RemoteHooks,
5
- name = ""
5
+ name = "",
6
6
  ): ServicesWithSubscriptions<S> {
7
7
  // start with remote function
8
8
  const remoteItem = (...paramsWithCallOptions: unknown[]) => {
@@ -21,6 +21,7 @@ export function createRemote<S extends Services<S>>(
21
21
  const {params, callOptions} = extractCallOptions(paramsWithCallOptions)
22
22
  return hooks.unsubscribe(name, params, consumer, callOptions)
23
23
  },
24
+ itemName: name,
24
25
  }
25
26
 
26
27
  Object.assign(remoteItem, subscription)
@@ -83,13 +84,13 @@ export type RemoteHooks = {
83
84
  itemName: string,
84
85
  parameters: unknown[],
85
86
  consumer: (d: unknown) => void,
86
- callOptions?: CallOptions
87
+ callOptions?: CallOptions,
87
88
  ): Promise<void>
88
89
  unsubscribe(
89
90
  itemName: string,
90
91
  parameters: unknown[],
91
92
  consumer: (d: unknown) => void,
92
- callOptions?: CallOptions
93
+ callOptions?: CallOptions,
93
94
  ): Promise<void>
94
95
  }
95
96
 
@@ -101,15 +102,15 @@ export type AddParameters<
101
102
  export type ServicesWithSubscriptions<T extends Services<T>> = {
102
103
  [K in keyof T]: T[K] extends RemoteFunction
103
104
  ? AddParameters<T[K], [CallOptions?]> & {
104
- subscribe(
105
- consumer: Consumer<T[K]>,
106
- ...parameters: [...Parameters<T[K]>, CallOptions?]
107
- ): Promise<void>
108
- unsubscribe(
109
- consumer: Consumer<T[K]>,
110
- ...parameters: [...Parameters<T[K]>, CallOptions?]
111
- ): Promise<void>
112
- }
105
+ subscribe(
106
+ consumer: Consumer<T[K]>,
107
+ ...parameters: [...Parameters<T[K]>, CallOptions?]
108
+ ): Promise<void>
109
+ unsubscribe(
110
+ consumer: Consumer<T[K]>,
111
+ ...parameters: [...Parameters<T[K]>, CallOptions?]
112
+ ): Promise<void>
113
+ }
113
114
  : T[K] extends object
114
115
  ? ServicesWithSubscriptions<T[K]>
115
116
  : never
package/src/index.ts CHANGED
@@ -10,7 +10,7 @@ export {publishServices} from "./server/index.js"
10
10
 
11
11
  export type {ServicesWithTriggers} from "./server/local.js"
12
12
 
13
- export type {RpcClient, ConsumeServicesOptions} from "./client/index.js"
13
+ export type {RpcClient, ConsumeServicesOptions, ClientCache} from "./client/index.js"
14
14
  export {consumeServices} from "./client/index.js"
15
15
 
16
16
  export type {ServicesWithSubscriptions} from "./client/remote.js"
@@ -63,7 +63,7 @@ export async function serveHttpRequest(
63
63
  res.write(safeStringify(result))
64
64
  res.end()
65
65
  } catch (e: any) {
66
- if (e.code) {
66
+ if (e.code && typeof e.code == "number" && e.code >= 100 && e.code < 600) {
67
67
  res.statusCode = e.code
68
68
 
69
69
  if (e.message) {
@@ -38,7 +38,7 @@ describe("Subscriptions", () => {
38
38
  },
39
39
  {
40
40
  subscriptions: false,
41
- }
41
+ },
42
42
  )
43
43
 
44
44
  const client = await createTestClient<typeof services>({
@@ -70,7 +70,8 @@ describe("Subscriptions", () => {
70
70
  const client = await createTestClient<typeof services>()
71
71
 
72
72
  try {
73
- await client.item.subscribe(() => {})
73
+ await client.item.subscribe(() => {
74
+ })
74
75
  assert.fail("Error expected")
75
76
  } catch (e: any) {
76
77
  assert.equal(e.message, "AA")
@@ -89,7 +90,8 @@ describe("Subscriptions", () => {
89
90
  const remote = await createTestClient<typeof services>()
90
91
 
91
92
  remote.item
92
- .subscribe(() => {})
93
+ .subscribe(() => {
94
+ })
93
95
  .catch((e: any) => {
94
96
  // ignored
95
97
  })
@@ -211,6 +213,60 @@ describe("Subscriptions", () => {
211
213
  assert.deepEqual(item2, item)
212
214
  })
213
215
 
216
+ // SWR
217
+ it("out-of-subscriptions cache", async () => {
218
+ const item = {r: "1"}
219
+
220
+ const server = {
221
+ test: {
222
+ item: async () => item,
223
+ },
224
+ }
225
+
226
+ await startTestServer(server)
227
+
228
+ const cache = new Map()
229
+
230
+ const client = await createTestClient<typeof server>({
231
+ cache: {
232
+ get(itemName: string, parameters: unknown[]): unknown {
233
+ return cache.get(`${itemName}-${JSON.stringify(parameters)}`)
234
+ },
235
+
236
+ put(itemName: string, parameters: unknown[], value: unknown) {
237
+ return cache.set(`${itemName}-${JSON.stringify(parameters)}`, value)
238
+ },
239
+ },
240
+ })
241
+
242
+ let item1
243
+ const consumer = (item: any) => {
244
+ item1 = item
245
+ }
246
+
247
+ await client.test.item.subscribe(consumer)
248
+
249
+ await adelay(50)
250
+ assert.deepEqual(item1, item)
251
+
252
+ await client.test.item.unsubscribe(consumer)
253
+
254
+ item.r = "2"
255
+
256
+ let item2
257
+ client.test.item.subscribe((item) => {
258
+ item2 = item
259
+ })
260
+
261
+ // cached version should be delivered
262
+ assert.deepEqual(item2, {r: "1"})
263
+
264
+ await adelay(50)
265
+
266
+ // and a new version after some time
267
+ assert.deepEqual(item2, item)
268
+ })
269
+
214
270
  it("unsubscribe topics on disconnect", async () => {
215
271
  const item = {r: "1"}
216
272
 
@@ -224,7 +280,8 @@ describe("Subscriptions", () => {
224
280
 
225
281
  const remote = await createTestClient<typeof server>()
226
282
 
227
- await remote.testUnsub.item.subscribe(() => {})
283
+ await remote.testUnsub.item.subscribe(() => {
284
+ })
228
285
 
229
286
  assert.equal(1, testServer?._allSubscriptions().length)
230
287
 
@@ -283,8 +340,10 @@ describe("Subscriptions", () => {
283
340
 
284
341
  const remote = await createTestClient<typeof services>()
285
342
 
286
- const sub1 = () => {}
287
- const sub2 = () => {}
343
+ const sub1 = () => {
344
+ }
345
+ const sub2 = () => {
346
+ }
288
347
 
289
348
  await remote.item.subscribe(sub1)
290
349
  await adelay(20)
@@ -316,7 +375,8 @@ describe("Subscriptions", () => {
316
375
 
317
376
  const remote = await createTestClient<typeof services>()
318
377
 
319
- const sub = () => {}
378
+ const sub = () => {
379
+ }
320
380
 
321
381
  await remote.item.subscribe(sub)
322
382
  await adelay(20)
@@ -342,8 +402,10 @@ describe("Subscriptions", () => {
342
402
 
343
403
  const remote = await createTestClient<typeof services>()
344
404
 
345
- const sub1 = () => {}
346
- const sub2 = () => {}
405
+ const sub1 = () => {
406
+ }
407
+ const sub2 = () => {
408
+ }
347
409
 
348
410
  await remote.item.subscribe(sub1)
349
411
  await adelay(20)
@@ -377,7 +439,8 @@ describe("Subscriptions", () => {
377
439
  delivered = r
378
440
  }
379
441
 
380
- const sub2 = () => {}
442
+ const sub2 = () => {
443
+ }
381
444
 
382
445
  await client.test.item.subscribe(sub1)
383
446
 
@@ -406,7 +469,8 @@ describe("Subscriptions", () => {
406
469
 
407
470
  const client = await createTestClient<typeof services>()
408
471
 
409
- const sub = () => {}
472
+ const sub = () => {
473
+ }
410
474
  client.item.subscribe(sub)
411
475
 
412
476
  await adelay(10)
@@ -465,7 +529,8 @@ describe("Subscriptions", () => {
465
529
  })
466
530
 
467
531
  try {
468
- await client.test.longOp.subscribe(() => {}, new CallOptions({timeout: callTimeout}))
532
+ await client.test.longOp.subscribe(() => {
533
+ }, new CallOptions({timeout: callTimeout}))
469
534
  assert.fail()
470
535
  } catch (e: any) {
471
536
  assert.equal(e.code, RpcErrors.Timeout)
@@ -621,7 +686,7 @@ describe("Subscriptions", () => {
621
686
  clientId: (Array.isArray(header) ? header[0] : header) || "anon",
622
687
  }
623
688
  },
624
- }
689
+ },
625
690
  )
626
691
 
627
692
  const client = await createTestClient<typeof services>({
@@ -635,7 +700,7 @@ describe("Subscriptions", () => {
635
700
  (val) => {
636
701
  received1 = val
637
702
  },
638
- {key: 1}
703
+ {key: 1},
639
704
  )
640
705
 
641
706
  await adelay(40)
@@ -644,7 +709,7 @@ describe("Subscriptions", () => {
644
709
  (val) => {
645
710
  received2 = val
646
711
  },
647
- {key: 2}
712
+ {key: 2},
648
713
  )
649
714
 
650
715
  await adelay(1.5 * delay)