From 50bb06ba75e7793a71d9722840db02ebfdd7fbd8 Mon Sep 17 00:00:00 2001 From: Victor Razdorov Date: Mon, 25 Mar 2024 12:39:40 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20add=20vite=20"=3Freact"?= =?UTF-8?q?=20postfix=20to=20adapter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/core/generateAdapters.ts | 12 ++++++++---- lib/templates/adapter/dynamic.ts.template | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/core/generateAdapters.ts b/lib/core/generateAdapters.ts index ffc5066..20f61de 100644 --- a/lib/core/generateAdapters.ts +++ b/lib/core/generateAdapters.ts @@ -4,12 +4,12 @@ import path from "path"; import { alerts, BuilderEnum, CoreOptions, FileObject } from "../shared"; import { getGenericPaths } from "../shared/utils/getGenericPaths"; -function genSvgPath(relative: string, file: FileObject[string], isVite: boolean) { +function genSvgPath(relative: string, file: FileObject[string], vitePostfix: string) { /** * Add postfix for handle vite-plugin-svgr package */ const folderPathSvg = file.dir.split(path.sep).slice(1).join(path.sep); - return path.join(relative, folderPathSvg, file.base) + (isVite ? "?react" : ""); + return path.join(relative, folderPathSvg, file.base) + vitePostfix; } export async function generateDynamicAdapter( @@ -18,6 +18,7 @@ export async function generateDynamicAdapter( { typescript, builder }: CoreOptions, ) { const filesList = Object.entries(filesObject); + const vitePostfix = builder === BuilderEnum.VITE ? "?react" : ""; const mappedSvgTypes = filesList .map(([, values]) => { @@ -27,7 +28,7 @@ export async function generateDynamicAdapter( const mappedSvgSwitch = filesList .map(([, values]) => { - const svgPath = genSvgPath(relativeSvgPath, values, builder === BuilderEnum.VITE); + const svgPath = genSvgPath(relativeSvgPath, values, vitePostfix); return ` case "${values.fileName}": svgComponent = await import("${svgPath}"); @@ -44,6 +45,8 @@ export async function generateDynamicAdapter( generateData = generateData.replace("{svgSwitch}", mappedSvgSwitch); + generateData = generateData.replace("{vitePostfix}", vitePostfix); + await fs.writeFile(adapterFilePath, generateData, { encoding: "utf8", flag: "w", @@ -59,10 +62,11 @@ export async function generateStaticAdapter( { builder }: CoreOptions, ) { const filesList = Object.entries(filesObject); + const vitePostfix = builder === BuilderEnum.VITE ? "?react" : ""; const mappedSvgImports = filesList .map(([, values], index) => { - const svgPath = genSvgPath(relativeSvgPath, values, builder === BuilderEnum.VITE); + const svgPath = genSvgPath(relativeSvgPath, values, vitePostfix); return `import ${values.fileName} from "${svgPath}";${filesList.length - 1 !== index ? "\n" : ""}`; }) .join(""); diff --git a/lib/templates/adapter/dynamic.ts.template b/lib/templates/adapter/dynamic.ts.template index 7b7d563..f71dbec 100644 --- a/lib/templates/adapter/dynamic.ts.template +++ b/lib/templates/adapter/dynamic.ts.template @@ -1,5 +1,5 @@ export type SvgIconsType = {svgNames}; -export type SvgComponentType = typeof import("*.svg") | null; +export type SvgComponentType = typeof import("*.svg{vitePostfix}") | null; export const getSvgComponent = async ( name: SvgIconsType,