Skip to content

Commit 387c9e9

Browse files
authored
fix: tidy up formatting of generated code (#57)
To pass linting rules
1 parent 411c017 commit 387c9e9

File tree

10 files changed

+432
-217
lines changed

10 files changed

+432
-217
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ node_modules
1111
# Lock files
1212
package-lock.json
1313
yarn.lock
14+
.clinic

packages/protons-benchmark/src/protons/bench.ts

+49-19
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,16 @@ export interface Foo {
1010
}
1111

1212
export namespace Foo {
13+
let _codec: Codec<Foo>
14+
1315
export const codec = (): Codec<Foo> => {
14-
return message<Foo>({
15-
1: { name: 'baz', codec: uint32 }
16-
})
16+
if (_codec == null) {
17+
_codec = message<Foo>({
18+
1: { name: 'baz', codec: uint32 }
19+
})
20+
}
21+
22+
return _codec
1723
}
1824

1925
export const encode = (obj: Foo): Uint8ArrayList => {
@@ -30,10 +36,16 @@ export interface Bar {
3036
}
3137

3238
export namespace Bar {
39+
let _codec: Codec<Bar>
40+
3341
export const codec = (): Codec<Bar> => {
34-
return message<Bar>({
35-
1: { name: 'tmp', codec: Foo.codec() }
36-
})
42+
if (_codec == null) {
43+
_codec = message<Bar>({
44+
1: { name: 'tmp', codec: Foo.codec() }
45+
})
46+
}
47+
48+
return _codec
3749
}
3850

3951
export const encode = (obj: Bar): Uint8ArrayList => {
@@ -65,10 +77,16 @@ export interface Yo {
6577
}
6678

6779
export namespace Yo {
80+
let _codec: Codec<Yo>
81+
6882
export const codec = (): Codec<Yo> => {
69-
return message<Yo>({
70-
1: { name: 'lol', codec: FOO.codec(), repeats: true }
71-
})
83+
if (_codec == null) {
84+
_codec = message<Yo>({
85+
1: { name: 'lol', codec: FOO.codec(), repeats: true }
86+
})
87+
}
88+
89+
return _codec
7290
}
7391

7492
export const encode = (obj: Yo): Uint8ArrayList => {
@@ -86,11 +104,17 @@ export interface Lol {
86104
}
87105

88106
export namespace Lol {
107+
let _codec: Codec<Lol>
108+
89109
export const codec = (): Codec<Lol> => {
90-
return message<Lol>({
91-
1: { name: 'lol', codec: string },
92-
2: { name: 'b', codec: Bar.codec() }
93-
})
110+
if (_codec == null) {
111+
_codec = message<Lol>({
112+
1: { name: 'lol', codec: string },
113+
2: { name: 'b', codec: Bar.codec() }
114+
})
115+
}
116+
117+
return _codec
94118
}
95119

96120
export const encode = (obj: Lol): Uint8ArrayList => {
@@ -110,13 +134,19 @@ export interface Test {
110134
}
111135

112136
export namespace Test {
137+
let _codec: Codec<Test>
138+
113139
export const codec = (): Codec<Test> => {
114-
return message<Test>({
115-
6: { name: 'meh', codec: Lol.codec() },
116-
3: { name: 'hello', codec: uint32 },
117-
1: { name: 'foo', codec: string },
118-
7: { name: 'payload', codec: bytes }
119-
})
140+
if (_codec == null) {
141+
_codec = message<Test>({
142+
6: { name: 'meh', codec: Lol.codec() },
143+
3: { name: 'hello', codec: uint32 },
144+
1: { name: 'foo', codec: string },
145+
7: { name: 'payload', codec: bytes }
146+
})
147+
}
148+
149+
return _codec
120150
}
121151

122152
export const encode = (obj: Test): Uint8ArrayList => {

packages/protons/src/index.ts

+25-21
Original file line numberDiff line numberDiff line change
@@ -191,30 +191,34 @@ export interface ${messageDef.name} {
191191
}`
192192
interfaceCodecDef = `
193193
let _codec: Codec<${messageDef.name}>
194+
194195
export const codec = (): Codec<${messageDef.name}> => {
195-
if (!_codec) _codec = message<${messageDef.name}>({
196-
${Object.entries(fields)
197-
.map(([name, fieldDef]) => {
198-
let codec = encoders[fieldDef.type]
199-
200-
if (codec == null) {
201-
const def = findDef(fieldDef.type, messageDef, moduleDef)
202-
203-
if (isEnumDef(def)) {
204-
moduleDef.imports.add('enumeration')
205-
} else {
206-
moduleDef.imports.add('message')
207-
}
208-
209-
const typeName = findTypeName(fieldDef.type, messageDef, moduleDef)
210-
codec = `${typeName}.codec()`
211-
} else {
212-
moduleDef.imports.add(codec)
213-
}
196+
if (_codec == null) {
197+
_codec = message<${messageDef.name}>({
198+
${Object.entries(fields)
199+
.map(([name, fieldDef]) => {
200+
let codec = encoders[fieldDef.type]
201+
202+
if (codec == null) {
203+
const def = findDef(fieldDef.type, messageDef, moduleDef)
204+
205+
if (isEnumDef(def)) {
206+
moduleDef.imports.add('enumeration')
207+
} else {
208+
moduleDef.imports.add('message')
209+
}
210+
211+
const typeName = findTypeName(fieldDef.type, messageDef, moduleDef)
212+
codec = `${typeName}.codec()`
213+
} else {
214+
moduleDef.imports.add(codec)
215+
}
214216
215217
return `${fieldDef.id}: { name: '${name}', codec: ${codec}${fieldDef.options?.proto3_optional === true ? ', optional: true' : ''}${fieldDef.rule === 'repeated' ? ', repeats: true' : ''} }`
216-
}).join(',\n ')}
217-
})
218+
}).join(',\n ')}
219+
})
220+
}
221+
218222
return _codec
219223
}
220224

packages/protons/test/fixtures/basic.ts

+10-4
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,17 @@ export interface Basic {
1111
}
1212

1313
export namespace Basic {
14+
let _codec: Codec<Basic>
15+
1416
export const codec = (): Codec<Basic> => {
15-
return message<Basic>({
16-
1: { name: 'foo', codec: string, optional: true },
17-
2: { name: 'num', codec: int32 }
18-
})
17+
if (_codec == null) {
18+
_codec = message<Basic>({
19+
1: { name: 'foo', codec: string, optional: true },
20+
2: { name: 'num', codec: int32 }
21+
})
22+
}
23+
24+
return _codec
1925
}
2026

2127
export const encode = (obj: Basic): Uint8ArrayList => {

packages/protons/test/fixtures/circuit.ts

+22-10
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,17 @@ export namespace CircuitRelay {
8383
}
8484

8585
export namespace Peer {
86+
let _codec: Codec<Peer>
87+
8688
export const codec = (): Codec<Peer> => {
87-
return message<Peer>({
88-
1: { name: 'id', codec: bytes },
89-
2: { name: 'addrs', codec: bytes, repeats: true }
90-
})
89+
if (_codec == null) {
90+
_codec = message<Peer>({
91+
1: { name: 'id', codec: bytes },
92+
2: { name: 'addrs', codec: bytes, repeats: true }
93+
})
94+
}
95+
96+
return _codec
9197
}
9298

9399
export const encode = (obj: Peer): Uint8ArrayList => {
@@ -99,13 +105,19 @@ export namespace CircuitRelay {
99105
}
100106
}
101107

108+
let _codec: Codec<CircuitRelay>
109+
102110
export const codec = (): Codec<CircuitRelay> => {
103-
return message<CircuitRelay>({
104-
1: { name: 'type', codec: CircuitRelay.Type.codec(), optional: true },
105-
2: { name: 'srcPeer', codec: CircuitRelay.Peer.codec(), optional: true },
106-
3: { name: 'dstPeer', codec: CircuitRelay.Peer.codec(), optional: true },
107-
4: { name: 'code', codec: CircuitRelay.Status.codec(), optional: true }
108-
})
111+
if (_codec == null) {
112+
_codec = message<CircuitRelay>({
113+
1: { name: 'type', codec: CircuitRelay.Type.codec(), optional: true },
114+
2: { name: 'srcPeer', codec: CircuitRelay.Peer.codec(), optional: true },
115+
3: { name: 'dstPeer', codec: CircuitRelay.Peer.codec(), optional: true },
116+
4: { name: 'code', codec: CircuitRelay.Status.codec(), optional: true }
117+
})
118+
}
119+
120+
return _codec
109121
}
110122

111123
export const encode = (obj: CircuitRelay): Uint8ArrayList => {

0 commit comments

Comments
 (0)