diff --git a/.eslintrc.json b/.eslintrc.json index be50881..88030d9 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -39,7 +39,7 @@ }], "block-scoped-var": "warn", "consistent-return": "error", - // "curly": "error", + "curly": "error", // "default-case": "warn", // the dot goes with the property when doing multiline diff --git a/scripts/generate-theme-doc.js b/scripts/generate-theme-doc.js index 8ef3c20..d29026e 100644 --- a/scripts/generate-theme-doc.js +++ b/scripts/generate-theme-doc.js @@ -60,9 +60,12 @@ const generateLinks = (fn) => { }; const createTableItem = ({ link, label, isRepoCard }) => { - if (!link || !label) return ""; + if (!link || !label) { + return ""; + } return `\`${label}\` ![${link}][${link}${isRepoCard ? "_repo" : ""}]`; }; + const generateTable = ({ isRepoCard }) => { const rows = []; const themesFiltered = Object.keys(themes).filter( diff --git a/scripts/preview-theme.js b/scripts/preview-theme.js index 6528fcf..fd55d57 100644 --- a/scripts/preview-theme.js +++ b/scripts/preview-theme.js @@ -75,7 +75,9 @@ class IncorrectJsonFormatError extends Error { * @returns {number} PR number. */ const getPrNumber = () => { - if (process.env.MOCK_PR_NUMBER) return process.env.MOCK_PR_NUMBER; // For testing purposes. + if (process.env.MOCK_PR_NUMBER) { + return process.env.MOCK_PR_NUMBER; // For testing purposes. + } const pullRequest = github.context.payload.pull_request; if (!pullRequest) { diff --git a/src/cards/stats-card.js b/src/cards/stats-card.js index 778e676..dad81bb 100644 --- a/src/cards/stats-card.js +++ b/src/cards/stats-card.js @@ -358,7 +358,9 @@ const renderStatsCard = (stats, options = {}) => { card.setHideTitle(hide_title); card.setCSS(cssStyles); - if (disable_animations) card.disableAnimations(); + if (disable_animations) { + card.disableAnimations(); + } /** * Calculates the right rank circle translation values such that the rank circle diff --git a/src/cards/top-languages-card.js b/src/cards/top-languages-card.js index 7ff1007..9593f98 100644 --- a/src/cards/top-languages-card.js +++ b/src/cards/top-languages-card.js @@ -87,7 +87,9 @@ const polarToCartesian = (centerX, centerY, radius, angleInDegrees) => { const cartesianToPolar = (centerX, centerY, x, y) => { const radius = Math.sqrt(Math.pow(x - centerX, 2) + Math.pow(y - centerY, 2)); let angleInDegrees = radiansToDegrees(Math.atan2(y - centerY, x - centerX)); - if (angleInDegrees < 0) angleInDegrees += 360; + if (angleInDegrees < 0) { + angleInDegrees += 360; + } return { radius, angleInDegrees }; }; @@ -808,7 +810,9 @@ const renderTopLanguages = (topLangs, options = {}) => { colors, }); - if (disable_animations) card.disableAnimations(); + if (disable_animations) { + card.disableAnimations(); + } card.setHideBorder(hide_border); card.setHideTitle(hide_title); diff --git a/src/common/Card.js b/src/common/Card.js index 753ce3f..33e6bb9 100644 --- a/src/common/Card.js +++ b/src/common/Card.js @@ -150,7 +150,9 @@ class Card { * @returns {string} The rendered card gradient. */ renderGradient() { - if (typeof this.colors.bgColor !== "object") return ""; + if (typeof this.colors.bgColor !== "object") { + return ""; + } const gradients = this.colors.bgColor.slice(1); return typeof this.colors.bgColor === "object" diff --git a/src/common/utils.js b/src/common/utils.js index 5edadbd..9d90985 100644 --- a/src/common/utils.js +++ b/src/common/utils.js @@ -60,7 +60,9 @@ const createLanguageNode = (langName, langColor) => { * @returns {string} Icon with label SVG object. */ const iconWithLabel = (icon, label, testid, iconSize) => { - if (typeof label === "number" && label <= 0) return ""; + if (typeof label === "number" && label <= 0) { + return ""; + } const iconSvg = ` { * @returns {boolean | undefined } The parsed value. */ const parseBoolean = (value) => { - if (typeof value === "boolean") return value; + if (typeof value === "boolean") { + return value; + } if (typeof value === "string") { if (value.toLowerCase() === "true") { @@ -143,7 +147,9 @@ const parseBoolean = (value) => { * @returns {string[]} The array of strings. */ const parseArray = (str) => { - if (!str) return []; + if (!str) { + return []; + } return str.split(","); }; @@ -157,7 +163,9 @@ const parseArray = (str) => { */ const clampValue = (number, min, max) => { // @ts-ignore - if (Number.isNaN(parseInt(number))) return min; + if (Number.isNaN(parseInt(number))) { + return min; + } return Math.max(min, Math.min(number, max)); }; @@ -501,7 +509,9 @@ const chunkArray = (arr, perChunk) => { * @returns {string} String with emoji parsed. */ const parseEmojis = (str) => { - if (!str) throw new Error("[parseEmoji]: str argument not provided"); + if (!str) { + throw new Error("[parseEmoji]: str argument not provided"); + } return str.replace(/:\w+:/gm, (emoji) => { return toEmoji.get(emoji) || ""; }); diff --git a/src/fetchers/gist-fetcher.js b/src/fetchers/gist-fetcher.js index 9ede43f..ebf5819 100644 --- a/src/fetchers/gist-fetcher.js +++ b/src/fetchers/gist-fetcher.js @@ -57,10 +57,16 @@ const fetcher = async (variables, token) => { * @returns {Promise} Gist data. */ const fetchGist = async (id) => { - if (!id) throw new MissingParamError(["id"], "/api/gist?id=GIST_ID"); + if (!id) { + throw new MissingParamError(["id"], "/api/gist?id=GIST_ID"); + } const res = await retryer(fetcher, { gistName: id }); - if (res.data.errors) throw new Error(res.data.errors[0].message); - if (!res.data.data.viewer.gist) throw new Error("Gist not found"); + if (res.data.errors) { + throw new Error(res.data.errors[0].message); + } + if (!res.data.data.viewer.gist) { + throw new Error("Gist not found"); + } const data = res.data.data.viewer.gist; return { name: data.files[Object.keys(data.files)[0]].name, diff --git a/src/fetchers/repo-fetcher.js b/src/fetchers/repo-fetcher.js index 98e0a72..6438f88 100644 --- a/src/fetchers/repo-fetcher.js +++ b/src/fetchers/repo-fetcher.js @@ -73,8 +73,12 @@ const fetchRepo = async (username, reponame) => { if (!username && !reponame) { throw new MissingParamError(["username", "repo"], urlExample); } - if (!username) throw new MissingParamError(["username"], urlExample); - if (!reponame) throw new MissingParamError(["repo"], urlExample); + if (!username) { + throw new MissingParamError(["username"], urlExample); + } + if (!reponame) { + throw new MissingParamError(["repo"], urlExample); + } let res = await retryer(fetcher, { login: username, repo: reponame }); diff --git a/src/fetchers/stats-fetcher.js b/src/fetchers/stats-fetcher.js index ac51d49..dd62b46 100644 --- a/src/fetchers/stats-fetcher.js +++ b/src/fetchers/stats-fetcher.js @@ -116,7 +116,9 @@ const statsFetcher = async (username) => { while (hasNextPage) { const variables = { login: username, first: 100, after: endCursor }; let res = await retryer(fetcher, variables); - if (res.data.errors) return res; + if (res.data.errors) { + return res; + } // Store stats data. const repoNodes = res.data.data.user.repositories.nodes; @@ -199,7 +201,9 @@ const fetchStats = async ( include_all_commits = false, exclude_repo = [], ) => { - if (!username) throw new MissingParamError(["username"]); + if (!username) { + throw new MissingParamError(["username"]); + } const stats = { name: "", diff --git a/src/fetchers/top-languages-fetcher.js b/src/fetchers/top-languages-fetcher.js index 26e99e6..faf4bc9 100644 --- a/src/fetchers/top-languages-fetcher.js +++ b/src/fetchers/top-languages-fetcher.js @@ -71,7 +71,9 @@ const fetchTopLanguages = async ( size_weight = 1, count_weight = 0, ) => { - if (!username) throw new MissingParamError(["username"]); + if (!username) { + throw new MissingParamError(["username"]); + } const res = await retryer(fetcher, { login: username }); diff --git a/src/fetchers/wakatime-fetcher.js b/src/fetchers/wakatime-fetcher.js index 2a2e039..f69d6ae 100644 --- a/src/fetchers/wakatime-fetcher.js +++ b/src/fetchers/wakatime-fetcher.js @@ -8,7 +8,9 @@ import { CustomError, MissingParamError } from "../common/utils.js"; * @returns {Promise} WakaTime data response. */ const fetchWakatimeStats = async ({ username, api_domain }) => { - if (!username) throw new MissingParamError(["username"]); + if (!username) { + throw new MissingParamError(["username"]); + } try { const { data } = await axios.get( diff --git a/src/getStyles.js b/src/getStyles.js index 1bfdc7b..c621ba1 100644 --- a/src/getStyles.js +++ b/src/getStyles.js @@ -10,8 +10,12 @@ const calculateCircleProgress = (value) => { const radius = 40; const c = Math.PI * (radius * 2); - if (value < 0) value = 0; - if (value > 100) value = 100; + if (value < 0) { + value = 0; + } + if (value > 100) { + value = 100; + } return ((100 - value) / 100) * c; }; diff --git a/tests/renderTopLanguagesCard.test.js b/tests/renderTopLanguagesCard.test.js index 0506d96..6b7ef62 100644 --- a/tests/renderTopLanguagesCard.test.js +++ b/tests/renderTopLanguagesCard.test.js @@ -70,7 +70,9 @@ const langPercentFromDonutLayoutSvg = (d, centerX, centerY) => { cartesianToPolar(centerX, centerY, dTmp[0], dTmp[1]).angleInDegrees + 90; let startAngle = cartesianToPolar(centerX, centerY, dTmp[7], dTmp[8]).angleInDegrees + 90; - if (startAngle > endAngle) startAngle -= 360; + if (startAngle > endAngle) { + startAngle -= 360; + } return (endAngle - startAngle) / 3.6; };