From 6e5963ebe9f93d6c3fd9908af81374875b9cee69 Mon Sep 17 00:00:00 2001 From: zernonia <59365435+zernonia@users.noreply.github.com> Date: Fri, 10 Nov 2023 17:36:18 +0800 Subject: [PATCH] fix: also parse tyepscript file (#159) --- .../utils/transformers/transform-css-vars.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/cli/src/utils/transformers/transform-css-vars.ts b/packages/cli/src/utils/transformers/transform-css-vars.ts index 97e2b6a8..519521e9 100644 --- a/packages/cli/src/utils/transformers/transform-css-vars.ts +++ b/packages/cli/src/utils/transformers/transform-css-vars.ts @@ -1,5 +1,6 @@ import type * as z from 'zod' import MagicString from 'magic-string' +import type { SFCTemplateBlock } from '@vue/compiler-sfc' import { parse, walk } from '@vue/compiler-sfc' import { SyntaxKind } from 'ts-morph' import type { registryBaseColorSchema } from '@/src/utils/registry/schema' @@ -10,18 +11,23 @@ export const transformCssVars: Transformer = async ({ config, baseColor, }) => { + const isVueFile = sourceFile.getFilePath().endsWith('vue') // No transform if using css variables. - if (config.tailwind?.cssVariables || !baseColor?.inlineColors || sourceFile.getFilePath().endsWith('ts')) + if (config.tailwind?.cssVariables || !baseColor?.inlineColors) return sourceFile - const parsed = parse(sourceFile.getText()) - const template = parsed.descriptor.template + let template: SFCTemplateBlock | null = null - if (!template) - return sourceFile + if (isVueFile) { + const parsed = parse(sourceFile.getText()) + template = parsed.descriptor.template + + if (!template) + return sourceFile + } sourceFile.getDescendantsOfKind(SyntaxKind.StringLiteral).forEach((node) => { - if (template.loc.start.offset >= node.getPos()) + if (template && template.loc.start.offset >= node.getPos()) return sourceFile const value = node.getText()