From 08c71177cf08f47a00b09a59229a3e1506ba0981 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Thu, 25 Aug 2022 22:34:24 +0800 Subject: [PATCH] fix(variant-group): magic string error --- packages/core/src/utils/variantGroup.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/core/src/utils/variantGroup.ts b/packages/core/src/utils/variantGroup.ts index edb8ec7a9f..a6cec8accf 100644 --- a/packages/core/src/utils/variantGroup.ts +++ b/packages/core/src/utils/variantGroup.ts @@ -2,9 +2,9 @@ import type MagicString from 'magic-string' export const regexClassGroup = /((?:[!\w+:_/-]|\[&?>?:?.*\])+?)([:-])\(((?:[~!\w\s:/\\,%#.$-]|\[.*?\])*?)\)/gm -export function expandVariantGroup(str: string, seperators?: ('-' | ':')[]): string -export function expandVariantGroup(str: MagicString, seperators?: ('-' | ':')[]): MagicString -export function expandVariantGroup(str: string | MagicString, seperators: ('-' | ':')[] = ['-', ':']) { +export function expandVariantGroup(str: string, seperators?: string[], depth?: number): string +export function expandVariantGroup(str: MagicString, seperators?: string[], depth?: number): MagicString +export function expandVariantGroup(str: string | MagicString, seperators = ['-', ':'], depth = 5) { regexClassGroup.lastIndex = 0 let hasChanged = false let content = str.toString() @@ -23,10 +23,15 @@ export function expandVariantGroup(str: string | MagicString, seperators: ('-' | }, ) hasChanged = content !== before - } while (hasChanged) + depth -= 1 + } while (hasChanged && depth) - if (typeof str === 'string') + if (typeof str === 'string') { return content - else - return str.overwrite(0, str.length(), content) + } + else { + return str.length() + ? str.overwrite(0, str.length(), content) + : str + } }