(url)
| 4 | import { upstreamError } from './_common/upstream.js'; |
| 5 | |
| 6 | const rankHandler = async (url) => { |
| 7 | const { hostname: domain } = parseTarget(url); |
| 8 | const { TRANCO_USERNAME, TRANCO_API_KEY } = process.env; |
| 9 | const auth = TRANCO_API_KEY |
| 10 | ? { auth: { username: TRANCO_USERNAME, password: TRANCO_API_KEY } } |
| 11 | : {}; |
| 12 | try { |
| 13 | const response = await httpGet(`https://tranco-list.eu/api/ranks/domain/${domain}`, { |
| 14 | timeout: 5000, |
| 15 | ...auth, |
| 16 | }); |
| 17 | if (!response.data?.ranks?.length) { |
| 18 | return { |
| 19 | skipped: `${domain} isn't ranked in the top 1 million sites yet`, |
| 20 | }; |
| 21 | } |
| 22 | return response.data; |
| 23 | } catch (error) { |
| 24 | return upstreamError(error, 'Tranco rank lookup'); |
| 25 | } |
| 26 | }; |
| 27 | |
| 28 | export const handler = middleware(rankHandler); |
| 29 | export default handler; |
nothing calls this directly
no test coverage detected