@zdavison/nestjs-rpc-toolkit 0.0.19 → 0.0.20
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/bin/bootstrap.js
CHANGED
|
@@ -114,7 +114,7 @@ class RpcPackageInitializer {
|
|
|
114
114
|
"generate:types": "ts-node scripts/generate-all-rpc-types.ts"
|
|
115
115
|
},
|
|
116
116
|
dependencies: {
|
|
117
|
-
"@zdavison/nestjs-rpc-toolkit": "^0.0.
|
|
117
|
+
"@zdavison/nestjs-rpc-toolkit": "^0.0.20",
|
|
118
118
|
"@nestjs/common": "^11.0.0",
|
|
119
119
|
"@nestjs/microservices": "^11.0.0"
|
|
120
120
|
},
|
package/dist/index.d.ts
CHANGED
|
@@ -7,5 +7,6 @@ export * from './rpc/rpc-client';
|
|
|
7
7
|
export * from './rpc/rpc.module';
|
|
8
8
|
export * from './transport';
|
|
9
9
|
export * from './generators/rpc-types-generator';
|
|
10
|
+
export type { JsonValue, JsonObject, JsonArray, JsonPrimitive } from './types/serializable';
|
|
10
11
|
export { Transport } from '@nestjs/microservices';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,kCAAkC,CAAC;AAGjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,kCAAkC,CAAC;AAGjD,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG5F,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,oEAAkD;AAClD,wEAAsD;AACtD,0DAAwC;AACxC,qDAAmC;AACnC,mDAAiC;AACjC,mDAAiC;AACjC,8CAA4B;AAC5B,mEAAiD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,oEAAkD;AAClD,wEAAsD;AACtD,0DAAwC;AACxC,qDAAmC;AACnC,mDAAiC;AACjC,mDAAiC;AACjC,8CAA4B;AAC5B,mEAAiD;AAKjD,sEAAsE;AACtE,uDAAkD;AAAzC,0GAAA,SAAS,OAAA"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Type utilities for ensuring JSON serialization compatibility in RPC methods.
|
|
3
3
|
* These types help catch non-serializable types at compile time.
|
|
4
4
|
*/
|
|
5
|
+
import type { JsonValue, JsonObject, JsonArray, JsonPrimitive } from 'type-fest';
|
|
6
|
+
export type { JsonValue, JsonObject, JsonArray, JsonPrimitive };
|
|
5
7
|
/**
|
|
6
8
|
* JSON primitive types (Date is NOT included as it doesn't round-trip correctly over TCP)
|
|
7
9
|
*/
|
|
@@ -19,12 +21,25 @@ type HasNeverProperty<T> = {
|
|
|
19
21
|
[K in keyof T]: [T[K]] extends [never] ? true : false;
|
|
20
22
|
}[keyof T] extends false ? false : true;
|
|
21
23
|
type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;
|
|
22
|
-
type IsSerializable<T> = Equal<T, undefined> extends true ? never : Equal<T, symbol> extends true ? never : Equal<T, null> extends true ? T : T extends Function ? never : T extends Date ?
|
|
24
|
+
type IsSerializable<T> = Equal<T, undefined> extends true ? never : Equal<T, symbol> extends true ? never : Equal<T, void> extends true ? T : Equal<T, null> extends true ? T : T extends Function ? never : T extends Date ? T : T extends string | number | boolean ? T : T extends JsonValue ? T : T extends Array<infer U> ? Array<IsSerializable<U>> : T extends object ? ({
|
|
23
25
|
[K in keyof T]: IsSerializable<T[K]>;
|
|
24
26
|
} extends infer O ? HasNeverProperty<O> extends true ? never : O : never) : never;
|
|
25
27
|
/**
|
|
26
28
|
* Helper type to check if a type is serializable.
|
|
27
|
-
* Validates
|
|
29
|
+
* Validates JSON compatibility with automatic Date serialization.
|
|
30
|
+
*
|
|
31
|
+
* Accepted types:
|
|
32
|
+
* - Primitives: string, number, boolean, null
|
|
33
|
+
* - Date (automatically serialized to ISO string via JSON.stringify)
|
|
34
|
+
* - JsonValue from type-fest
|
|
35
|
+
* - Objects with serializable properties
|
|
36
|
+
* - Arrays of serializable values
|
|
37
|
+
*
|
|
38
|
+
* Rejected types:
|
|
39
|
+
* - undefined (not valid JSON)
|
|
40
|
+
* - Functions
|
|
41
|
+
* - Symbols
|
|
42
|
+
*
|
|
28
43
|
* Non-serializable types will result in 'never'.
|
|
29
44
|
*/
|
|
30
45
|
export type AssertSerializable<T> = IsSerializable<T>;
|
|
@@ -62,5 +77,4 @@ type IsReturnTypeSerializable<T extends (...args: any[]) => any> = T extends (..
|
|
|
62
77
|
* This constraint prevents the method from being used if it has non-serializable types.
|
|
63
78
|
*/
|
|
64
79
|
export type ValidateRpcMethod<T extends (...args: any[]) => any> = AreParametersSerializable<T> extends true ? IsReturnTypeSerializable<T> extends true ? T : never : never;
|
|
65
|
-
export {};
|
|
66
80
|
//# sourceMappingURL=serializable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializable.d.ts","sourceRoot":"","sources":["../../src/types/serializable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,KAAK,yBAAyB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,GAAG,sBAAsB,GAAG,qBAAqB,CAAC;AAE1G,UAAU,sBAAsB;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACjC;AAED,UAAU,qBAAsB,SAAQ,KAAK,CAAC,gBAAgB,CAAC;CAAG;AAGlE,KAAK,gBAAgB,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK;CACtD,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AAGxC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,IACb,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAC9B,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAGhD,KAAK,cAAc,CAAC,CAAC,IAEnB,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,IAAI,GAAG,KAAK,GACxC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,IAAI,GAAG,KAAK,GAErC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,GAE/B,CAAC,SAAS,QAAQ,GAAG,KAAK,GAE1B,CAAC,SAAS,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"serializable.d.ts","sourceRoot":"","sources":["../../src/types/serializable.ts"],"names":[],"mappings":"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"}
|