2
2
/* eslint-disable @typescript-eslint/no-namespace */
3
3
4
4
import { encodeMessage , decodeMessage , message , uint32 , enumeration , string , bytes } from 'protons-runtime'
5
+ import type { Codec } from 'protons-runtime'
6
+ import type { Uint8ArrayList } from 'uint8arraylist'
5
7
6
8
export interface Foo {
7
9
baz : number
8
10
}
9
11
10
12
export namespace Foo {
11
- export const codec = ( ) => {
13
+ export const codec = ( ) : Codec < Foo > => {
12
14
return message < Foo > ( {
13
15
1 : { name : 'baz' , codec : uint32 }
14
16
} )
15
17
}
16
18
17
- export const encode = ( obj : Foo ) : Uint8Array => {
19
+ export const encode = ( obj : Foo ) : Uint8ArrayList => {
18
20
return encodeMessage ( obj , Foo . codec ( ) )
19
21
}
20
22
21
- export const decode = ( buf : Uint8Array ) : Foo => {
23
+ export const decode = ( buf : Uint8Array | Uint8ArrayList ) : Foo => {
22
24
return decodeMessage ( buf , Foo . codec ( ) )
23
25
}
24
26
}
@@ -28,17 +30,17 @@ export interface Bar {
28
30
}
29
31
30
32
export namespace Bar {
31
- export const codec = ( ) => {
33
+ export const codec = ( ) : Codec < Bar > => {
32
34
return message < Bar > ( {
33
35
1 : { name : 'tmp' , codec : Foo . codec ( ) }
34
36
} )
35
37
}
36
38
37
- export const encode = ( obj : Bar ) : Uint8Array => {
39
+ export const encode = ( obj : Bar ) : Uint8ArrayList => {
38
40
return encodeMessage ( obj , Bar . codec ( ) )
39
41
}
40
42
41
- export const decode = ( buf : Uint8Array ) : Bar => {
43
+ export const decode = ( buf : Uint8Array | Uint8ArrayList ) : Bar => {
42
44
return decodeMessage ( buf , Bar . codec ( ) )
43
45
}
44
46
}
@@ -48,28 +50,32 @@ export enum FOO {
48
50
ABE = 'ABE'
49
51
}
50
52
53
+ enum __FOOValues {
54
+ LOL = 1 ,
55
+ ABE = 3
56
+ }
57
+
51
58
export namespace FOO {
52
59
export const codec = ( ) => {
53
- return enumeration < typeof FOO > ( FOO )
60
+ return enumeration < typeof FOO > ( __FOOValues )
54
61
}
55
62
}
56
-
57
63
export interface Yo {
58
64
lol : FOO [ ]
59
65
}
60
66
61
67
export namespace Yo {
62
- export const codec = ( ) => {
68
+ export const codec = ( ) : Codec < Yo > => {
63
69
return message < Yo > ( {
64
70
1 : { name : 'lol' , codec : FOO . codec ( ) , repeats : true }
65
71
} )
66
72
}
67
73
68
- export const encode = ( obj : Yo ) : Uint8Array => {
74
+ export const encode = ( obj : Yo ) : Uint8ArrayList => {
69
75
return encodeMessage ( obj , Yo . codec ( ) )
70
76
}
71
77
72
- export const decode = ( buf : Uint8Array ) : Yo => {
78
+ export const decode = ( buf : Uint8Array | Uint8ArrayList ) : Yo => {
73
79
return decodeMessage ( buf , Yo . codec ( ) )
74
80
}
75
81
}
@@ -80,18 +86,18 @@ export interface Lol {
80
86
}
81
87
82
88
export namespace Lol {
83
- export const codec = ( ) => {
89
+ export const codec = ( ) : Codec < Lol > => {
84
90
return message < Lol > ( {
85
91
1 : { name : 'lol' , codec : string } ,
86
92
2 : { name : 'b' , codec : Bar . codec ( ) }
87
93
} )
88
94
}
89
95
90
- export const encode = ( obj : Lol ) : Uint8Array => {
96
+ export const encode = ( obj : Lol ) : Uint8ArrayList => {
91
97
return encodeMessage ( obj , Lol . codec ( ) )
92
98
}
93
99
94
- export const decode = ( buf : Uint8Array ) : Lol => {
100
+ export const decode = ( buf : Uint8Array | Uint8ArrayList ) : Lol => {
95
101
return decodeMessage ( buf , Lol . codec ( ) )
96
102
}
97
103
}
@@ -104,7 +110,7 @@ export interface Test {
104
110
}
105
111
106
112
export namespace Test {
107
- export const codec = ( ) => {
113
+ export const codec = ( ) : Codec < Test > => {
108
114
return message < Test > ( {
109
115
6 : { name : 'meh' , codec : Lol . codec ( ) } ,
110
116
3 : { name : 'hello' , codec : uint32 } ,
@@ -113,11 +119,11 @@ export namespace Test {
113
119
} )
114
120
}
115
121
116
- export const encode = ( obj : Test ) : Uint8Array => {
122
+ export const encode = ( obj : Test ) : Uint8ArrayList => {
117
123
return encodeMessage ( obj , Test . codec ( ) )
118
124
}
119
125
120
- export const decode = ( buf : Uint8Array ) : Test => {
126
+ export const decode = ( buf : Uint8Array | Uint8ArrayList ) : Test => {
121
127
return decodeMessage ( buf , Test . codec ( ) )
122
128
}
123
129
}
0 commit comments