@toyz/loom-rpc 0.1.0 → 0.1.1

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.
package/dist/testing.d.ts CHANGED
@@ -15,17 +15,21 @@
15
15
  * ```
16
16
  */
17
17
  import { RpcTransport } from "./transport";
18
+ type RouterIdent = string | {
19
+ name: string;
20
+ };
18
21
  export declare class MockTransport extends RpcTransport {
19
22
  private mocks;
20
23
  private errors;
21
24
  private calls;
22
25
  private delays;
26
+ private getRouterName;
23
27
  /** Register a mock response for a specific router.method */
24
- mock<T>(router: string, method: string, response: T): this;
28
+ mock<T>(router: RouterIdent, method: string, response: T): this;
25
29
  /** Register a mock error for a specific router.method */
26
- mockError(router: string, method: string, error: Error): this;
30
+ mockError(router: RouterIdent, method: string, error: Error): this;
27
31
  /** Add an artificial delay (ms) for a specific router.method */
28
- delay(router: string, method: string, ms: number): this;
32
+ delay(router: RouterIdent, method: string, ms: number): this;
29
33
  /** All calls that have been made through this transport */
30
34
  get history(): {
31
35
  router: string;
@@ -35,9 +39,10 @@ export declare class MockTransport extends RpcTransport {
35
39
  /** Clear all mocks and call history */
36
40
  reset(): void;
37
41
  /** Assert a specific call was made */
38
- assertCalled(router: string, method: string, args?: any[]): void;
42
+ assertCalled(router: RouterIdent, method: string, args?: any[]): void;
39
43
  /** Assert a specific call was NOT made */
40
- assertNotCalled(router: string, method: string): void;
44
+ assertNotCalled(router: RouterIdent, method: string): void;
41
45
  call<T>(router: string, method: string, args: any[]): Promise<T>;
42
46
  }
47
+ export {};
43
48
  //# sourceMappingURL=testing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,KAAK,CAA8D;IAC3E,OAAO,CAAC,MAAM,CAA6B;IAE3C,4DAA4D;IAC5D,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI;IAK1D,yDAAyD;IACzD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAK7D,gEAAgE;IAChE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAKvD,2DAA2D;IAC3D,IAAI,OAAO;gBAtBoB,MAAM;gBAAU,MAAM;cAAQ,GAAG,EAAE;QAwBjE;IAED,uCAAuC;IACvC,KAAK,IAAI,IAAI;IAOb,sCAAsC;IACtC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAahE,0CAA0C;IAC1C,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAW/C,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;CA0BvE"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,KAAK,WAAW,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,KAAK,CAA8D;IAC3E,OAAO,CAAC,MAAM,CAA6B;IAE3C,OAAO,CAAC,aAAa;IAIrB,4DAA4D;IAC5D,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI;IAK/D,yDAAyD;IACzD,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAKlE,gEAAgE;IAChE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAK5D,2DAA2D;IAC3D,IAAI,OAAO;gBA1BoB,MAAM;gBAAU,MAAM;cAAQ,GAAG,EAAE;QA4BjE;IAED,uCAAuC;IACvC,KAAK,IAAI,IAAI;IAOb,sCAAsC;IACtC,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAcrE,0CAA0C;IAC1C,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAYpD,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;CA0BvE"}
package/dist/testing.js CHANGED
@@ -20,19 +20,22 @@ export class MockTransport extends RpcTransport {
20
20
  errors = new Map();
21
21
  calls = [];
22
22
  delays = new Map();
23
+ getRouterName(router) {
24
+ return typeof router === "string" ? router : router.name;
25
+ }
23
26
  /** Register a mock response for a specific router.method */
24
27
  mock(router, method, response) {
25
- this.mocks.set(`${router}.${method}`, response);
28
+ this.mocks.set(`${this.getRouterName(router)}.${method}`, response);
26
29
  return this;
27
30
  }
28
31
  /** Register a mock error for a specific router.method */
29
32
  mockError(router, method, error) {
30
- this.errors.set(`${router}.${method}`, error);
33
+ this.errors.set(`${this.getRouterName(router)}.${method}`, error);
31
34
  return this;
32
35
  }
33
36
  /** Add an artificial delay (ms) for a specific router.method */
34
37
  delay(router, method, ms) {
35
- this.delays.set(`${router}.${method}`, ms);
38
+ this.delays.set(`${this.getRouterName(router)}.${method}`, ms);
36
39
  return this;
37
40
  }
38
41
  /** All calls that have been made through this transport */
@@ -48,18 +51,20 @@ export class MockTransport extends RpcTransport {
48
51
  }
49
52
  /** Assert a specific call was made */
50
53
  assertCalled(router, method, args) {
51
- const match = this.calls.find((c) => c.router === router && c.method === method &&
54
+ const rName = this.getRouterName(router);
55
+ const match = this.calls.find((c) => c.router === rName && c.method === method &&
52
56
  (args === undefined || JSON.stringify(c.args) === JSON.stringify(args)));
53
57
  if (!match) {
54
- throw new Error(`Expected ${router}.${method}(${args ? JSON.stringify(args) : "..."}) to have been called. ` +
58
+ throw new Error(`Expected ${rName}.${method}(${args ? JSON.stringify(args) : "..."}) to have been called. ` +
55
59
  `Calls: ${JSON.stringify(this.calls)}`);
56
60
  }
57
61
  }
58
62
  /** Assert a specific call was NOT made */
59
63
  assertNotCalled(router, method) {
60
- const match = this.calls.find((c) => c.router === router && c.method === method);
64
+ const rName = this.getRouterName(router);
65
+ const match = this.calls.find((c) => c.router === rName && c.method === method);
61
66
  if (match) {
62
- throw new Error(`Expected ${router}.${method} to NOT have been called, but it was.`);
67
+ throw new Error(`Expected ${rName}.${method} to NOT have been called, but it was.`);
63
68
  }
64
69
  }
65
70
  async call(router, method, args) {
@@ -81,7 +86,7 @@ export class MockTransport extends RpcTransport {
81
86
  return typeof value === "function" ? value(...args) : value;
82
87
  }
83
88
  throw new Error(`[MockTransport] No mock registered for ${key}. ` +
84
- `Register one with: transport.mock("${router}", "${method}", responseData)`);
89
+ `Register one with: transport.mock(RouterClass, "${method}", responseData)`);
85
90
  }
86
91
  }
87
92
  //# sourceMappingURL=testing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toyz/loom-rpc",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "type": "module",
5
5
  "description": "Type-safe, decorator-driven RPC for Loom — server-agnostic, transport-swappable",
6
6
  "license": "MIT",