From 33ba73d8f08eb1f91930390dd11dd694005b86e2 Mon Sep 17 00:00:00 2001 From: developomp Date: Sun, 18 Jun 2023 01:54:46 +0900 Subject: [PATCH] refactor(blog): update deprecated simple icons API --- apps/blog/generate/postProcess.ts | 9 ++++----- apps/blog/generate/recursiveParse/parsePortfolio.ts | 8 +++++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/apps/blog/generate/postProcess.ts b/apps/blog/generate/postProcess.ts index d85701b..7eb5a1c 100644 --- a/apps/blog/generate/postProcess.ts +++ b/apps/blog/generate/postProcess.ts @@ -1,6 +1,7 @@ import ejs from "ejs" import { optimize } from "svgo" import { readFileSync, writeFileSync } from "fs" +import icons from "simple-icons/icons" import tinycolor from "tinycolor2" import { map, seriesMap } from "." @@ -117,12 +118,10 @@ function generatePortfolioSVGs() { function parseBadge(badgeRaw: string): Badge { const isMultiWord = badgeRaw.includes(" ") const words = badgeRaw.split(" ") + const slug = words[0] - const icon = isMultiWord - ? // eslint-disable-next-line @typescript-eslint/no-var-requires - require("simple-icons")[words[0]] - : // eslint-disable-next-line @typescript-eslint/no-var-requires - require("simple-icons")[badgeRaw] + // @ts-ignore + const icon = icons["si" + slug[0].toUpperCase() + slug.slice(1)] const color = tinycolor(icon.hex).lighten(5).desaturate(5) diff --git a/apps/blog/generate/recursiveParse/parsePortfolio.ts b/apps/blog/generate/recursiveParse/parsePortfolio.ts index 181dcc8..a6ba8c0 100644 --- a/apps/blog/generate/recursiveParse/parsePortfolio.ts +++ b/apps/blog/generate/recursiveParse/parsePortfolio.ts @@ -1,4 +1,6 @@ import tinycolor from "tinycolor2" +import icons from "simple-icons/icons" +import { SimpleIcon } from "simple-icons" import { contentDirectoryPath, iconsDirectoryPath } from "../config" import { generateToc } from "../parseMarkdown" @@ -12,12 +14,12 @@ export default function parsePortfolio(data: DataToPass): void { if (markdownData.badges) { ;(markdownData.badges as string[]).forEach((slug) => { // todo: handle cases when icon is not on simple-icons + const icon: SimpleIcon = + // @ts-ignore + icons["si" + slug[0].toUpperCase() + slug.slice(1)] portfolioData.skills.add(slug) - // eslint-disable-next-line @typescript-eslint/no-var-requires - const icon = require("simple-icons")[slug] - const color = tinycolor(icon.hex).lighten(5).desaturate(5) // save svg icon