fix(formatting): Fix minor formatting issues and newline consistency across project files

This commit is contained in:
2025-05-03 18:56:00 +00:00
parent 7d087e39ef
commit def467a27b
9 changed files with 53 additions and 50 deletions

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@push.rocks/smartnetwork',
version: '4.0.0',
version: '4.0.1',
description: 'A toolkit for network diagnostics including speed tests, port availability checks, and more.'
}

View File

@ -17,4 +17,4 @@ export class TimeoutError extends NetworkError {
this.name = 'TimeoutError';
Object.setPrototypeOf(this, new.target.prototype);
}
}
}

View File

@ -27,4 +27,4 @@ export function setLogger(logger: Logger): void {
*/
export function getLogger(): Logger {
return globalLogger;
}
}

View File

@ -164,9 +164,10 @@ export class CloudflareSpeed {
}
public async fetchServerLocations(): Promise<{ [key: string]: string }> {
const res = JSON.parse(
await this.get('speed.cloudflare.com', '/locations'),
) as Array<{ iata: string; city: string }>;
const res = JSON.parse(await this.get('speed.cloudflare.com', '/locations')) as Array<{
iata: string;
city: string;
}>;
return res.reduce(
(data: Record<string, string>, optionsArg) => {
data[optionsArg.iata] = optionsArg.city;
@ -198,9 +199,9 @@ export class CloudflareSpeed {
reject(e);
}
});
req.on('error', (err: Error & { code?: string }) => {
reject(new NetworkError(err.message, err.code));
});
req.on('error', (err: Error & { code?: string }) => {
reject(new NetworkError(err.message, err.code));
});
},
);
@ -251,15 +252,15 @@ export class CloudflareSpeed {
res.on('data', () => {});
res.on('end', () => {
ended = plugins.perfHooks.performance.now();
resolve([
started,
dnsLookup,
tcpHandshake,
sslHandshake,
ttfb,
ended,
parseFloat((res.headers['server-timing'] as string).slice(22)),
]);
resolve([
started,
dnsLookup,
tcpHandshake,
sslHandshake,
ttfb,
ended,
parseFloat((res.headers['server-timing'] as string).slice(22)),
]);
});
});
@ -296,11 +297,14 @@ export class CloudflareSpeed {
const parts = i.split('=');
return [parts[0], parts[1]];
})
.reduce((data: Record<string, string>, [k, v]) => {
if (v === undefined) return data;
data[k] = v;
return data;
}, {} as Record<string, string>);
.reduce(
(data: Record<string, string>, [k, v]) => {
if (v === undefined) return data;
data[k] = v;
return data;
},
{} as Record<string, string>,
);
return this.get('speed.cloudflare.com', '/cdn-cgi/trace').then(parseCfCdnCgiTrace);
}

View File

@ -44,9 +44,7 @@ export class SmartNetwork {
* get network speed
* @param opts optional speed test parameters
*/
public async getSpeed(
opts?: { parallelStreams?: number; duration?: number },
) {
public async getSpeed(opts?: { parallelStreams?: number; duration?: number }) {
const cloudflareSpeedInstance = new CloudflareSpeed(opts);
return cloudflareSpeedInstance.speedTest();
}
@ -54,10 +52,7 @@ export class SmartNetwork {
/**
* Send ICMP pings to a host. Optionally specify count for multiple pings.
*/
public async ping(
host: string,
opts?: { timeout?: number; count?: number },
): Promise<any> {
public async ping(host: string, opts?: { timeout?: number; count?: number }): Promise<any> {
const timeout = opts?.timeout ?? 500;
const count = opts?.count && opts.count > 1 ? opts.count : 1;
const pinger = new plugins.smartping.Smartping();
@ -85,11 +80,7 @@ export class SmartNetwork {
const min = valid.length ? Math.min(...valid) : NaN;
const max = valid.length ? Math.max(...valid) : NaN;
const avg = valid.length ? stats.average(valid) : NaN;
const stddev = valid.length
? Math.sqrt(
stats.average(valid.map((v) => (v - avg) ** 2)),
)
: NaN;
const stddev = valid.length ? Math.sqrt(stats.average(valid.map((v) => (v - avg) ** 2))) : NaN;
const packetLoss = ((count - aliveCount) / count) * 100;
return {
host,
@ -168,7 +159,9 @@ export class SmartNetwork {
*/
public async isRemotePortAvailable(
target: string,
portOrOpts?: number | { port?: number; protocol?: 'tcp' | 'udp'; timeout?: number; retries?: number },
portOrOpts?:
| number
| { port?: number; protocol?: 'tcp' | 'udp'; timeout?: number; retries?: number },
): Promise<boolean> {
let hostPart: string;
let port: number | undefined;
@ -252,7 +245,9 @@ export class SmartNetwork {
/**
* Resolve DNS records (A, AAAA, MX)
*/
public async resolveDns(host: string): Promise<{ A: string[]; AAAA: string[]; MX: { exchange: string; priority: number }[] }> {
public async resolveDns(
host: string,
): Promise<{ A: string[]; AAAA: string[]; MX: { exchange: string; priority: number }[] }> {
try {
const dns = await import('dns');
const { resolve4, resolve6, resolveMx } = dns.promises;
@ -316,14 +311,10 @@ export class SmartNetwork {
const { exec } = await import('child_process');
const cmd = `traceroute -n -m ${maxHops} ${host}`;
const stdout: string = await new Promise((resolve, reject) => {
exec(
cmd,
{ encoding: 'utf8', timeout },
(err, stdout) => {
if (err) return reject(err);
resolve(stdout);
},
);
exec(cmd, { encoding: 'utf8', timeout }, (err, stdout) => {
if (err) return reject(err);
resolve(stdout);
});
});
const hops: Hop[] = [];
for (const raw of stdout.split('\n')) {