From 9907772020e14196d7feb66168c23619732325e3 Mon Sep 17 00:00:00 2001 From: Xevion Date: Mon, 20 Feb 2023 00:37:48 -0600 Subject: [PATCH] Remove axios, use fetch API --- package.json | 1 - src/hooks/useLookup.tsx | 15 +++++++-------- src/pages/old.tsx | 7 +++---- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 25bee68..74febaf 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,6 @@ "start": "next start" }, "dependencies": { - "axios": "^1.2.2", "date-fns": "^2.29.3", "immutability-helper": "^3.1.1", "ipaddr.js": "^2.0.1", diff --git a/src/hooks/useLookup.tsx b/src/hooks/useLookup.tsx index 9eec786..110b87b 100644 --- a/src/hooks/useLookup.tsx +++ b/src/hooks/useLookup.tsx @@ -2,11 +2,10 @@ import React, {useEffect, useMemo, useRef, useState} from "react"; import {domainMatchPredicate, getBestURL, getType} from "@/rdap"; import type {AutonomousNumber, Domain, IpNetwork, Register, RootRegistryType, TargetType} from "@/types"; import {registryURLs} from "@/constants"; -import axios from "axios"; import {AutonomousNumberSchema, DomainSchema, IpNetworkSchema, RegisterSchema, RootRegistryEnum} from "@/schema"; import {truncated} from "@/helpers"; -import {ZodSchema} from "zod"; -import {ParsedGeneric} from "@/components/Generic"; +import type {ZodSchema} from "zod"; +import type {ParsedGeneric} from "@/components/Generic"; export type WarningHandler = (warning: { message: string }) => void; @@ -26,14 +25,14 @@ const useLookup = (warningHandler?: WarningHandler) => { return; // Fetch the bootstrapping file from the registry - const response = await axios.get(registryURLs[type]); + const response = await fetch(registryURLs[type]); if (response.status != 200) throw new Error(`Error: ${response.statusText}`) // Parse it, so we don't make any false assumptions during development & while maintaining the tool. - const parsedRegister = RegisterSchema.safeParse(response.data); + const parsedRegister = RegisterSchema.safeParse(await response.json()); if (!parsedRegister.success) - throw new Error(`Could not parse IANA bootstrap response (${type}).`) + throw new Error(`Could not parse IANA bootstrap response (type: ${type}).`) // Set it in state so we can use it. registryDataRef.current = { @@ -99,9 +98,9 @@ const useLookup = (warningHandler?: WarningHandler) => { }, [target]); async function getAndParse(url: string, schema: ZodSchema): Promise { - const response = await axios.get(url); + const response = await fetch(url); if (response.status == 200) - return schema.parse(response.data) as T + return schema.parse(await response.json()) as T } async function submitInternal(): Promise { diff --git a/src/pages/old.tsx b/src/pages/old.tsx index 6aa4442..5a958e5 100644 --- a/src/pages/old.tsx +++ b/src/pages/old.tsx @@ -6,7 +6,6 @@ import {domainMatch, getBestURL, getType} from "@/rdap"; import type {FormEvent} from "react"; import {useEffect, useMemo, useState} from "react"; import {truthy} from "@/helpers"; -import axios from "axios"; import type {ParsedGeneric} from "@/components/Generic"; import Generic from "@/components/Generic"; import type {ZodSchema} from "zod"; @@ -32,11 +31,11 @@ const Old: NextPage = () => { let registersLoaded = 0; const totalRegisters = Object.keys(registryURLs).length; const responses = await Promise.all(Object.entries(registryURLs).map(async ([registryType, url]) => { - const response = await axios.get(url); + const response = await fetch(url); registersLoaded++; return { registryType, - response: RegisterSchema.parse(response.data) + response: RegisterSchema.parse(await response.json()) }; })) @@ -140,7 +139,7 @@ const Old: NextPage = () => { data = schema.parse(JSON.parse(url.substring(7))) } else { try { - const response = await axios.get(url, {responseType: "json"}) + const response = await fetch(url) if (response.status == 404) setError('This object does not exist.'); else if (response.status != 200)