@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.
- package/.eslintcache +1 -0
- package/.eslintrc.json +1 -0
- package/.mocharc.cjs +1 -0
- package/dist/additional-classes.d.ts +3 -0
- package/dist/additional-classes.d.ts.map +1 -0
- package/dist/additional-classes.js +9 -0
- package/dist/additional-classes.js.map +1 -0
- package/dist/deserialize.d.ts +3 -0
- package/dist/deserialize.d.ts.map +1 -0
- package/dist/deserialize.js +58 -0
- package/dist/deserialize.js.map +1 -0
- package/dist/exceptions/deserialize-unknown-prototype.exception.d.ts +5 -0
- package/dist/exceptions/deserialize-unknown-prototype.exception.d.ts.map +1 -0
- package/dist/exceptions/deserialize-unknown-prototype.exception.js +11 -0
- package/dist/exceptions/deserialize-unknown-prototype.exception.js.map +1 -0
- package/dist/exceptions/deserialize.exception.d.ts +6 -0
- package/dist/exceptions/deserialize.exception.d.ts.map +1 -0
- package/dist/exceptions/deserialize.exception.js +11 -0
- package/dist/exceptions/deserialize.exception.js.map +1 -0
- package/dist/exceptions/index.d.ts +4 -0
- package/dist/exceptions/index.d.ts.map +1 -0
- package/dist/exceptions/index.js +7 -0
- package/dist/exceptions/index.js.map +1 -0
- package/dist/exceptions/serialize.exception.d.ts +5 -0
- package/dist/exceptions/serialize.exception.d.ts.map +1 -0
- package/dist/exceptions/serialize.exception.js +11 -0
- package/dist/exceptions/serialize.exception.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/serialize.d.ts +4 -0
- package/dist/serialize.d.ts.map +1 -0
- package/dist/serialize.js +104 -0
- package/dist/serialize.js.map +1 -0
- package/dist/tests/serialization.test.d.ts +10 -0
- package/dist/tests/serialization.test.d.ts.map +1 -0
- package/dist/tests/serialization.test.js +64 -0
- package/dist/tests/serialization.test.js.map +1 -0
- package/dist/types.d.ts +49 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist-esm/additional-classes.d.ts +3 -0
- package/dist-esm/additional-classes.d.ts.map +1 -0
- package/dist-esm/additional-classes.js +5 -0
- package/dist-esm/additional-classes.js.map +1 -0
- package/dist-esm/deserialize.d.ts +3 -0
- package/dist-esm/deserialize.d.ts.map +1 -0
- package/dist-esm/deserialize.js +54 -0
- package/dist-esm/deserialize.js.map +1 -0
- package/dist-esm/exceptions/deserialize-unknown-prototype.exception.d.ts +5 -0
- package/dist-esm/exceptions/deserialize-unknown-prototype.exception.d.ts.map +1 -0
- package/dist-esm/exceptions/deserialize-unknown-prototype.exception.js +7 -0
- package/dist-esm/exceptions/deserialize-unknown-prototype.exception.js.map +1 -0
- package/dist-esm/exceptions/deserialize.exception.d.ts +6 -0
- package/dist-esm/exceptions/deserialize.exception.d.ts.map +1 -0
- package/dist-esm/exceptions/deserialize.exception.js +7 -0
- package/dist-esm/exceptions/deserialize.exception.js.map +1 -0
- package/dist-esm/exceptions/index.d.ts +4 -0
- package/dist-esm/exceptions/index.d.ts.map +1 -0
- package/dist-esm/exceptions/index.js +4 -0
- package/dist-esm/exceptions/index.js.map +1 -0
- package/dist-esm/exceptions/serialize.exception.d.ts +5 -0
- package/dist-esm/exceptions/serialize.exception.d.ts.map +1 -0
- package/dist-esm/exceptions/serialize.exception.js +7 -0
- package/dist-esm/exceptions/serialize.exception.js.map +1 -0
- package/dist-esm/index.d.ts +6 -0
- package/dist-esm/index.d.ts.map +1 -0
- package/dist-esm/index.js +6 -0
- package/dist-esm/index.js.map +1 -0
- package/dist-esm/serialize.d.ts +4 -0
- package/dist-esm/serialize.d.ts.map +1 -0
- package/dist-esm/serialize.js +99 -0
- package/dist-esm/serialize.js.map +1 -0
- package/dist-esm/tests/serialization.test.d.ts +10 -0
- package/dist-esm/tests/serialization.test.d.ts.map +1 -0
- package/dist-esm/tests/serialization.test.js +61 -0
- package/dist-esm/tests/serialization.test.js.map +1 -0
- package/dist-esm/types.d.ts +49 -0
- package/dist-esm/types.d.ts.map +1 -0
- package/dist-esm/types.js +2 -0
- package/dist-esm/types.js.map +1 -0
- package/package.json +39 -0
- package/src/additional-classes.ts +5 -0
- package/src/deserialize.ts +69 -0
- package/src/exceptions/deserialize-unknown-prototype.exception.ts +7 -0
- package/src/exceptions/deserialize.exception.ts +9 -0
- package/src/exceptions/index.ts +3 -0
- package/src/exceptions/serialize.exception.ts +7 -0
- package/src/index.ts +7 -0
- package/src/serialize.ts +114 -0
- package/src/tests/serialization.test.ts +47 -0
- package/src/types.ts +71 -0
- package/tsconfig.esm.json +9 -0
- 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;
|