/
githubmirror
/
github-readme-stats
Обзор
Документация
Войти
/
githubmirror
/
github-readme-stats
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/common/error.js
84 строки
2 KB
Ophelia Goldstein
fix: resolve vscode type errors in API endpoints files (#4555)
11 окт 2025, 20:57
Не верифицирован
11 окт 2025, 20:57
0849165
Код
Авторство
О чём код?
// @ts-check /** * @type {string} A general message to ask user to try again later. */ const TRY_AGAIN_LATER = "Please try again later"; /** * @type {Object<string, string>} A map of error types to secondary error messages. */ const SECONDARY_ERROR_MESSAGES = { MAX_RETRY: "You can deploy own instance or wait until public will be no longer limited", NO_TOKENS: "Please add an env variable called PAT_1 with your GitHub API token in vercel", USER_NOT_FOUND: "Make sure the provided username is not an organization", GRAPHQL_ERROR: TRY_AGAIN_LATER, GITHUB_REST_API_ERROR: TRY_AGAIN_LATER, WAKATIME_USER_NOT_FOUND: "Make sure you have a public WakaTime profile", }; /** * Custom error class to handle custom GRS errors. */ class CustomError extends Error { /** * Custom error constructor. * * @param {string} message Error message. * @param {string} type Error type. */ constructor(message, type) { super(message); this.type = type; this.secondaryMessage = SECONDARY_ERROR_MESSAGES[type] || type; } static MAX_RETRY = "MAX_RETRY"; static NO_TOKENS = "NO_TOKENS"; static USER_NOT_FOUND = "USER_NOT_FOUND"; static GRAPHQL_ERROR = "GRAPHQL_ERROR"; static GITHUB_REST_API_ERROR = "GITHUB_REST_API_ERROR"; static WAKATIME_ERROR = "WAKATIME_ERROR"; } /** * Missing query parameter class. */ class MissingParamError extends Error { /** * Missing query parameter error constructor. * * @param {string[]} missedParams An array of missing parameters names. * @param {string=} secondaryMessage Optional secondary message to display. */ constructor(missedParams, secondaryMessage) { const msg = `Missing params ${missedParams .map((p) => `"${p}"`) .join(", ")} make sure you pass the parameters in URL`; super(msg); this.missedParams = missedParams; this.secondaryMessage = secondaryMessage; } } /** * Retrieve secondary message from an error object. * * @param {Error} err The error object. * @returns {string|undefined} The secondary message if available, otherwise undefined. */ const retrieveSecondaryMessage = (err) => { return "secondaryMessage" in err && typeof err.secondaryMessage === "string" ? err.secondaryMessage : undefined; }; export { CustomError, MissingParamError, SECONDARY_ERROR_MESSAGES, TRY_AGAIN_LATER, retrieveSecondaryMessage, };