Skip to content

Commit 5a8de54

Browse files
committed
chore: remove some code duplication
1 parent a2966c2 commit 5a8de54

File tree

1 file changed

+54
-66
lines changed

1 file changed

+54
-66
lines changed

packages/enr/src/raw_enr.ts

+54-66
Original file line numberDiff line numberDiff line change
@@ -46,105 +46,51 @@ export class RawEnr extends Map<ENRKey, ENRValue> {
4646
}
4747

4848
get ip(): string | undefined {
49-
const raw = this.get("ip");
50-
if (raw) {
51-
return convertToString("ip4", raw) as string;
52-
} else {
53-
return undefined;
54-
}
49+
return getStringValue(this, "ip", "ip4");
5550
}
5651

5752
set ip(ip: string | undefined) {
58-
if (ip) {
59-
this.set("ip", convertToBytes("ip4", ip));
60-
} else {
61-
this.delete("ip");
62-
}
53+
setStringValue(this, "ip", "ip4", ip);
6354
}
6455

6556
get tcp(): number | undefined {
66-
const raw = this.get("tcp");
67-
if (raw) {
68-
return Number(convertToString("tcp", raw));
69-
} else {
70-
return undefined;
71-
}
57+
return getNumberAsStringValue(this, "tcp", "tcp");
7258
}
7359

7460
set tcp(port: number | undefined) {
75-
if (port === undefined) {
76-
this.delete("tcp");
77-
} else {
78-
this.set("tcp", convertToBytes("tcp", port.toString(10)));
79-
}
61+
setNumberAsStringValue(this, "tcp", "tcp", port);
8062
}
8163

8264
get udp(): number | undefined {
83-
const raw = this.get("udp");
84-
if (raw) {
85-
return Number(convertToString("udp", raw));
86-
} else {
87-
return undefined;
88-
}
65+
return getNumberAsStringValue(this, "udp", "udp");
8966
}
9067

9168
set udp(port: number | undefined) {
92-
if (port === undefined) {
93-
this.delete("udp");
94-
} else {
95-
this.set("udp", convertToBytes("udp", port.toString(10)));
96-
}
69+
setNumberAsStringValue(this, "udp", "udp", port);
9770
}
9871

9972
get ip6(): string | undefined {
100-
const raw = this.get("ip6");
101-
if (raw) {
102-
return convertToString("ip6", raw) as string;
103-
} else {
104-
return undefined;
105-
}
73+
return getStringValue(this, "ip6", "ip6");
10674
}
10775

10876
set ip6(ip: string | undefined) {
109-
if (ip) {
110-
this.set("ip6", convertToBytes("ip6", ip));
111-
} else {
112-
this.delete("ip6");
113-
}
77+
setStringValue(this, "ip6", "ip6", ip);
11478
}
11579

11680
get tcp6(): number | undefined {
117-
const raw = this.get("tcp6");
118-
if (raw) {
119-
return Number(convertToString("tcp", raw));
120-
} else {
121-
return undefined;
122-
}
81+
return getNumberAsStringValue(this, "tcp6", "tcp");
12382
}
12483

12584
set tcp6(port: number | undefined) {
126-
if (port === undefined) {
127-
this.delete("tcp6");
128-
} else {
129-
this.set("tcp6", convertToBytes("tcp", port.toString(10)));
130-
}
85+
setNumberAsStringValue(this, "tcp6", "tcp", port);
13186
}
13287

13388
get udp6(): number | undefined {
134-
const raw = this.get("udp6");
135-
if (raw) {
136-
return Number(convertToString("udp", raw));
137-
} else {
138-
return undefined;
139-
}
89+
return getNumberAsStringValue(this, "udp6", "udp");
14090
}
14191

14292
set udp6(port: number | undefined) {
143-
if (port === undefined) {
144-
this.delete("udp6");
145-
} else {
146-
this.set("udp6", convertToBytes("udp", port.toString(10)));
147-
}
93+
setNumberAsStringValue(this, "udp6", "udp", port);
14894
}
14995

15096
/**
@@ -210,3 +156,45 @@ export class RawEnr extends Map<ENRKey, ENRValue> {
210156
}
211157
}
212158
}
159+
160+
function getStringValue(
161+
map: Map<ENRKey, ENRValue>,
162+
key: ENRKey,
163+
proto: string
164+
): string | undefined {
165+
const raw = map.get(key);
166+
if (!raw) return;
167+
return convertToString(proto, raw);
168+
}
169+
170+
function getNumberAsStringValue(
171+
map: Map<ENRKey, ENRValue>,
172+
key: ENRKey,
173+
proto: string
174+
): number | undefined {
175+
const raw = map.get(key);
176+
if (!raw) return;
177+
return Number(convertToString(proto, raw));
178+
}
179+
180+
function setStringValue(
181+
map: Map<ENRKey, ENRValue>,
182+
key: ENRKey,
183+
proto: string,
184+
value: string | undefined
185+
): void {
186+
if (value !== undefined) {
187+
map.set(key, convertToBytes(proto, value));
188+
} else {
189+
map.delete(key);
190+
}
191+
}
192+
193+
function setNumberAsStringValue(
194+
map: Map<ENRKey, ENRValue>,
195+
key: ENRKey,
196+
proto: string,
197+
value: number | undefined
198+
): void {
199+
setStringValue(map, key, proto, value?.toString(10));
200+
}

0 commit comments

Comments
 (0)