@hg-ts/serialize 0.0.15

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 (96) hide show
  1. package/.eslintcache +1 -0
  2. package/.eslintrc.json +1 -0
  3. package/.mocharc.cjs +1 -0
  4. package/dist/additional-classes.d.ts +3 -0
  5. package/dist/additional-classes.d.ts.map +1 -0
  6. package/dist/additional-classes.js +9 -0
  7. package/dist/additional-classes.js.map +1 -0
  8. package/dist/deserialize.d.ts +3 -0
  9. package/dist/deserialize.d.ts.map +1 -0
  10. package/dist/deserialize.js +58 -0
  11. package/dist/deserialize.js.map +1 -0
  12. package/dist/exceptions/deserialize-unknown-prototype.exception.d.ts +5 -0
  13. package/dist/exceptions/deserialize-unknown-prototype.exception.d.ts.map +1 -0
  14. package/dist/exceptions/deserialize-unknown-prototype.exception.js +11 -0
  15. package/dist/exceptions/deserialize-unknown-prototype.exception.js.map +1 -0
  16. package/dist/exceptions/deserialize.exception.d.ts +6 -0
  17. package/dist/exceptions/deserialize.exception.d.ts.map +1 -0
  18. package/dist/exceptions/deserialize.exception.js +11 -0
  19. package/dist/exceptions/deserialize.exception.js.map +1 -0
  20. package/dist/exceptions/index.d.ts +4 -0
  21. package/dist/exceptions/index.d.ts.map +1 -0
  22. package/dist/exceptions/index.js +7 -0
  23. package/dist/exceptions/index.js.map +1 -0
  24. package/dist/exceptions/serialize.exception.d.ts +5 -0
  25. package/dist/exceptions/serialize.exception.d.ts.map +1 -0
  26. package/dist/exceptions/serialize.exception.js +11 -0
  27. package/dist/exceptions/serialize.exception.js.map +1 -0
  28. package/dist/index.d.ts +6 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +11 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/serialize.d.ts +4 -0
  33. package/dist/serialize.d.ts.map +1 -0
  34. package/dist/serialize.js +104 -0
  35. package/dist/serialize.js.map +1 -0
  36. package/dist/tests/serialization.test.d.ts +10 -0
  37. package/dist/tests/serialization.test.d.ts.map +1 -0
  38. package/dist/tests/serialization.test.js +64 -0
  39. package/dist/tests/serialization.test.js.map +1 -0
  40. package/dist/types.d.ts +49 -0
  41. package/dist/types.d.ts.map +1 -0
  42. package/dist/types.js +3 -0
  43. package/dist/types.js.map +1 -0
  44. package/dist-esm/additional-classes.d.ts +3 -0
  45. package/dist-esm/additional-classes.d.ts.map +1 -0
  46. package/dist-esm/additional-classes.js +5 -0
  47. package/dist-esm/additional-classes.js.map +1 -0
  48. package/dist-esm/deserialize.d.ts +3 -0
  49. package/dist-esm/deserialize.d.ts.map +1 -0
  50. package/dist-esm/deserialize.js +54 -0
  51. package/dist-esm/deserialize.js.map +1 -0
  52. package/dist-esm/exceptions/deserialize-unknown-prototype.exception.d.ts +5 -0
  53. package/dist-esm/exceptions/deserialize-unknown-prototype.exception.d.ts.map +1 -0
  54. package/dist-esm/exceptions/deserialize-unknown-prototype.exception.js +7 -0
  55. package/dist-esm/exceptions/deserialize-unknown-prototype.exception.js.map +1 -0
  56. package/dist-esm/exceptions/deserialize.exception.d.ts +6 -0
  57. package/dist-esm/exceptions/deserialize.exception.d.ts.map +1 -0
  58. package/dist-esm/exceptions/deserialize.exception.js +7 -0
  59. package/dist-esm/exceptions/deserialize.exception.js.map +1 -0
  60. package/dist-esm/exceptions/index.d.ts +4 -0
  61. package/dist-esm/exceptions/index.d.ts.map +1 -0
  62. package/dist-esm/exceptions/index.js +4 -0
  63. package/dist-esm/exceptions/index.js.map +1 -0
  64. package/dist-esm/exceptions/serialize.exception.d.ts +5 -0
  65. package/dist-esm/exceptions/serialize.exception.d.ts.map +1 -0
  66. package/dist-esm/exceptions/serialize.exception.js +7 -0
  67. package/dist-esm/exceptions/serialize.exception.js.map +1 -0
  68. package/dist-esm/index.d.ts +6 -0
  69. package/dist-esm/index.d.ts.map +1 -0
  70. package/dist-esm/index.js +6 -0
  71. package/dist-esm/index.js.map +1 -0
  72. package/dist-esm/serialize.d.ts +4 -0
  73. package/dist-esm/serialize.d.ts.map +1 -0
  74. package/dist-esm/serialize.js +99 -0
  75. package/dist-esm/serialize.js.map +1 -0
  76. package/dist-esm/tests/serialization.test.d.ts +10 -0
  77. package/dist-esm/tests/serialization.test.d.ts.map +1 -0
  78. package/dist-esm/tests/serialization.test.js +61 -0
  79. package/dist-esm/tests/serialization.test.js.map +1 -0
  80. package/dist-esm/types.d.ts +49 -0
  81. package/dist-esm/types.d.ts.map +1 -0
  82. package/dist-esm/types.js +2 -0
  83. package/dist-esm/types.js.map +1 -0
  84. package/package.json +39 -0
  85. package/src/additional-classes.ts +5 -0
  86. package/src/deserialize.ts +69 -0
  87. package/src/exceptions/deserialize-unknown-prototype.exception.ts +7 -0
  88. package/src/exceptions/deserialize.exception.ts +9 -0
  89. package/src/exceptions/index.ts +3 -0
  90. package/src/exceptions/serialize.exception.ts +7 -0
  91. package/src/index.ts +7 -0
  92. package/src/serialize.ts +114 -0
  93. package/src/tests/serialization.test.ts +47 -0
  94. package/src/types.ts +71 -0
  95. package/tsconfig.esm.json +9 -0
  96. package/tsconfig.json +10 -0
@@ -0,0 +1,47 @@
1
+ import '@hg-ts/types';
2
+ import {
3
+ Test,
4
+ TestSuite,
5
+ Describe,
6
+ expect,
7
+ } from '@hg-ts/tests';
8
+ import { serialize } from '../serialize';
9
+ import { deserialize } from '../deserialize';
10
+
11
+ @Describe()
12
+ export class SerializationTestSuite extends TestSuite {
13
+ @Test()
14
+ public async serializeNull(): Promise<void> {
15
+ this.test(null);
16
+ }
17
+
18
+ @Test()
19
+ public async serializeNumber(): Promise<void> {
20
+ this.test(123);
21
+ this.test(12.35);
22
+ this.test(0);
23
+ this.test(-12.35);
24
+ this.test(-123);
25
+ }
26
+
27
+ @Test()
28
+ public async serializeBigint(): Promise<void> {
29
+ this.test(1235n * 1_000_000_000_000_000_000_000_000n);
30
+ this.test(1235n);
31
+ this.test(123n);
32
+ this.test(0n);
33
+ this.test(-123n);
34
+ this.test(-1235n * 1_000_000_000_000_000_000_000_000n);
35
+ }
36
+
37
+ @Test()
38
+ public async serializeBuffer(): Promise<void> {
39
+ this.test(Buffer.from('sdfsdgdfgdfg'));
40
+ }
41
+
42
+ protected test(expected: unknown): void {
43
+ const value = deserialize(serialize(expected));
44
+
45
+ expect(value).toEqual(expected);
46
+ }
47
+ }
package/src/types.ts ADDED
@@ -0,0 +1,71 @@
1
+ export type SerializedNumber = {
2
+ type: 'number';
3
+ value: number;
4
+ };
5
+
6
+ export type SerializedString = {
7
+ type: 'string';
8
+ value: string;
9
+ };
10
+
11
+ export type SerializedBoolean = {
12
+ type: 'boolean';
13
+ value: boolean;
14
+ };
15
+
16
+ export type SerializedBigint = {
17
+ type: 'bigint';
18
+ value: string;
19
+ };
20
+
21
+ export type SerializedDate = {
22
+ type: 'date';
23
+ value: number;
24
+ };
25
+
26
+ export type SerializedArray = {
27
+ type: 'array';
28
+ value: SerializedValue[];
29
+ };
30
+
31
+ export type SerializedBuffer = {
32
+ type: 'buffer';
33
+ value: string;
34
+ };
35
+
36
+ export type SerializedObject = {
37
+ type: 'object';
38
+ prototypeNameList: string[];
39
+ value: Record<string, SerializedValue>;
40
+ };
41
+
42
+ export type SerializedMap = {
43
+ type: 'map';
44
+ value: {
45
+ key: SerializedValue;
46
+ value: SerializedValue;
47
+ }[];
48
+ };
49
+
50
+ export type SerializedSet = {
51
+ type: 'set';
52
+ value: SerializedValue[];
53
+ };
54
+
55
+ export type SerializedNull = {
56
+ type: 'null';
57
+ };
58
+
59
+ /* eslint-disable @typescript-eslint/sort-type-union-intersection-members */
60
+ export type SerializedValue =
61
+ | SerializedArray
62
+ | SerializedBigint
63
+ | SerializedBoolean
64
+ | SerializedDate
65
+ | SerializedMap
66
+ | SerializedNull
67
+ | SerializedBuffer
68
+ | SerializedNumber
69
+ | SerializedObject
70
+ | SerializedSet
71
+ | SerializedString;
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "@hg-ts-config/typescript/esm",
3
+ "compilerOptions": {
4
+ "baseUrl": "src",
5
+ "rootDir": "src",
6
+ "outDir": "dist-esm"
7
+ },
8
+ "exclude": ["dist-esm", "dist"]
9
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": "@hg-ts-config/typescript/commonjs",
3
+ "compilerOptions": {
4
+ "module": "CommonJS",
5
+ "baseUrl": "src",
6
+ "rootDir": "src",
7
+ "outDir": "dist"
8
+ },
9
+ "exclude": ["dist-esm", "dist"]
10
+ }