forked from adamritter/nostr-relaypool-ts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fakejson.ts
34 lines (29 loc) · 1.08 KB
/
fakejson.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
export function getHex64(json: string, field: string): string {
let len = field.length + 3;
let idx = json.indexOf(`"${field}":`) + len;
let s = json.slice(idx).indexOf(`"`) + idx + 1;
return json.slice(s, s + 64);
}
export function getSubName(json: string): string {
let idx = json.indexOf(`"EVENT"`) + 7;
let sliced = json.slice(idx);
let idx2 = sliced.indexOf(`"`) + 1;
let sliced2 = sliced.slice(idx2);
return sliced2.slice(0, sliced2.indexOf(`"`));
}
export function getInt(json: string, field: string): number {
let len = field.length;
let idx = json.indexOf(`"${field}":`) + len + 3;
let sliced = json.slice(idx);
let end = Math.min(sliced.indexOf(","), sliced.indexOf("}"));
return parseInt(sliced.slice(0, end), 10);
}
export function matchEventId(json: string, id: string): boolean {
return id === getHex64(json, "id");
}
export function matchEventPubkey(json: string, pubkey: string): boolean {
return pubkey === getHex64(json, "pubkey");
}
export function matchEventKind(json: string, kind: number): boolean {
return kind === getInt(json, "kind");
}