refactor: move HTTP related code into separate module (#4578)

* refactor: move HTTP related code into separate module

* dev

---------

Co-authored-by: Alexandr <qwerty541zxc@gmail.com>
This commit is contained in:
Alexandr Garbuzov
2025-10-15 20:09:34 +03:00
committed by GitHub
co-authored by Alexandr
parent da318a6751
commit 2df35521d7
9 changed files with 39 additions and 30 deletions
+5 -1
View File
@@ -1,3 +1,5 @@
// @ts-check
/**
* @file Contains a simple cloud function that can be used to check which PATs are no
* longer working. It returns a list of valid PATs, expired PATs and PATs with errors.
@@ -5,7 +7,9 @@
* @description This function is currently rate limited to 1 request per 5 minutes.
*/
import { logger, request, dateDiff } from "../../src/common/utils.js";
import { request } from "../../src/common/http.js";
import { logger, dateDiff } from "../../src/common/utils.js";
export const RATE_LIMIT_SECONDS = 60 * 5; // 1 request per 5 minutes
/**
+4 -1
View File
@@ -1,3 +1,5 @@
// @ts-check
/**
* @file Contains a simple cloud function that can be used to check if the PATs are still
* functional.
@@ -5,8 +7,9 @@
* @description This function is currently rate limited to 1 request per 5 minutes.
*/
import { request } from "../../src/common/http.js";
import retryer from "../../src/common/retryer.js";
import { logger, request } from "../../src/common/utils.js";
import { logger } from "../../src/common/utils.js";
export const RATE_LIMIT_SECONDS = 60 * 5; // 1 request per 5 minutes
+24
View File
@@ -0,0 +1,24 @@
import axios from "axios";
/**
* @typedef {import('axios').AxiosRequestConfig['data']} AxiosRequestConfigData Axios request data.
* @typedef {import('axios').AxiosRequestConfig['headers']} AxiosRequestConfigHeaders Axios request headers.
*/
/**
* Send GraphQL request to GitHub API.
*
* @param {AxiosRequestConfigData} data Request data.
* @param {AxiosRequestConfigHeaders} headers Request headers.
* @returns {Promise<any>} Request response.
*/
const request = (data, headers) => {
return axios({
url: "https://api.github.com/graphql",
method: "post",
headers,
data,
});
};
export { request };
-1
View File
@@ -13,7 +13,6 @@ export {
parseBoolean,
parseArray,
clampValue,
request,
flexLayout,
logger,
measureText,
-23
View File
@@ -1,6 +1,5 @@
// @ts-check
import axios from "axios";
import toEmoji from "emoji-name-map";
import { SECONDARY_ERROR_MESSAGES, TRY_AGAIN_LATER } from "./error.js";
import { getCardColors } from "./color.js";
@@ -125,27 +124,6 @@ const clampValue = (number, min, max) => {
return Math.max(min, Math.min(number, max));
};
/**
* @typedef {import('axios').AxiosRequestConfig['data']} AxiosRequestConfigData Axios request data.
* @typedef {import('axios').AxiosRequestConfig['headers']} AxiosRequestConfigHeaders Axios request headers.
*/
/**
* Send GraphQL request to GitHub API.
*
* @param {AxiosRequestConfigData} data Request data.
* @param {AxiosRequestConfigHeaders} headers Request headers.
* @returns {Promise<any>} Request response.
*/
const request = (data, headers) => {
return axios({
url: "https://api.github.com/graphql",
method: "post",
headers,
data,
});
};
// Script parameters.
const ERROR_CARD_LENGTH = 576.5;
@@ -350,7 +328,6 @@ export {
parseBoolean,
parseArray,
clampValue,
request,
flexLayout,
logger,
measureText,
+1 -1
View File
@@ -1,8 +1,8 @@
// @ts-check
import { request } from "../common/utils.js";
import { retryer } from "../common/retryer.js";
import { MissingParamError } from "../common/error.js";
import { request } from "../common/http.js";
/**
* @typedef {import('axios').AxiosRequestHeaders} AxiosRequestHeaders Axios request headers.
+1 -1
View File
@@ -1,8 +1,8 @@
// @ts-check
import { MissingParamError } from "../common/error.js";
import { request } from "../common/http.js";
import { retryer } from "../common/retryer.js";
import { request } from "../common/utils.js";
/**
* @typedef {import('axios').AxiosRequestHeaders} AxiosRequestHeaders Axios request headers.
+2 -1
View File
@@ -5,10 +5,11 @@ import * as dotenv from "dotenv";
import githubUsernameRegex from "github-username-regex";
import { calculateRank } from "../calculateRank.js";
import { retryer } from "../common/retryer.js";
import { logger, request } from "../common/utils.js";
import { logger } from "../common/utils.js";
import { excludeRepositories } from "../common/envs.js";
import { CustomError, MissingParamError } from "../common/error.js";
import { wrapTextMultiline } from "../common/fmt.js";
import { request } from "../common/http.js";
dotenv.config();
+2 -1
View File
@@ -1,10 +1,11 @@
// @ts-check
import { retryer } from "../common/retryer.js";
import { logger, request } from "../common/utils.js";
import { logger } from "../common/utils.js";
import { excludeRepositories } from "../common/envs.js";
import { CustomError, MissingParamError } from "../common/error.js";
import { wrapTextMultiline } from "../common/fmt.js";
import { request } from "../common/http.js";
/**
* @typedef {import("axios").AxiosRequestHeaders} AxiosRequestHeaders Axios request headers.