Skip to content

Commit e46f916

Browse files
bmoyroudelanh
authored andcommitted
Fix chains and methods
1 parent 37416cd commit e46f916

File tree

1 file changed

+21
-14
lines changed

1 file changed

+21
-14
lines changed

parser/index.ts

+21-14
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ async function main() {
8585

8686
// @ts-ignore
8787
const servers = api.servers as OpenAPIV3_1.ServerObject[];
88-
const { chains, networks } = extractChainAndNetworks(servers[0]);
88+
const chainsToNetworks = extractChainAndNetworks(servers[0]);
8989

9090
const paths = api.paths;
9191
if (!paths) throw new Error('Paths not found in spec');
@@ -97,8 +97,7 @@ async function main() {
9797
for (const [method, operation] of Object.entries(pathItem)) {
9898
// console.log(method, operation);
9999

100-
console.log(chains, networks);
101-
for (const chain of chains) {
100+
for (const [chain, networks] of chainsToNetworks) {
102101
for (const network of networks) {
103102
const entry = {
104103
fileName,
@@ -121,17 +120,15 @@ async function main() {
121120

122121
main();
123122

124-
function extractChainAndNetworks(servers: OpenAPIV3_1.ServerObject): {
125-
chains: string[];
126-
networks: string[];
127-
} {
123+
function extractChainAndNetworks(
124+
servers: OpenAPIV3_1.ServerObject,
125+
): Map<string, Set<string>> {
128126
const { url, variables } = servers;
129127

130128
// if variables key exists in spec - lets get the networks
131129
// if not let's parse the URL
132130

133-
const chains: string[] = [];
134-
const networks: string[] = [];
131+
const chainsToNetworks: Map<string, Set<string>> = new Map();
135132

136133
if (variables) {
137134
const values = variables.network.enum ?? [];
@@ -142,8 +139,13 @@ function extractChainAndNetworks(servers: OpenAPIV3_1.ServerObject): {
142139
}
143140
const chain = parts[0];
144141
const network = parts[1];
145-
chains.push(chain);
146-
networks.push(network);
142+
143+
const networks = chainsToNetworks.get(chain);
144+
if (networks) {
145+
chainsToNetworks.set(chain, networks.add(network));
146+
} else {
147+
chainsToNetworks.set(chain, new Set([network]));
148+
}
147149
}
148150
} else {
149151
const subdomain = extractSubdomain(url);
@@ -156,10 +158,15 @@ function extractChainAndNetworks(servers: OpenAPIV3_1.ServerObject): {
156158
}
157159
const chain = parts[0];
158160
const network = parts[1];
159-
chains.push(chain);
160-
networks.push(network);
161+
162+
const networks = chainsToNetworks.get(chain);
163+
if (networks) {
164+
chainsToNetworks.set(chain, networks.add(network));
165+
} else {
166+
chainsToNetworks.set(chain, new Set([network]));
167+
}
161168
}
162-
return { chains, networks };
169+
return chainsToNetworks;
163170
}
164171

165172
function extractSubdomain(url: string): string | null {

0 commit comments

Comments
 (0)