diff --git a/packages/core/src/extractors/svelte.ts b/packages/core/src/extractors/svelte.ts index 0816aef4c6..900db66f33 100644 --- a/packages/core/src/extractors/svelte.ts +++ b/packages/core/src/extractors/svelte.ts @@ -1,6 +1,8 @@ import type { Extractor } from '../types' import { splitCode } from './split' +const rightTrimRe = /=$/ + export const extractorSvelte: Extractor = { name: 'svelte', order: 0, @@ -8,7 +10,7 @@ export const extractorSvelte: Extractor = { let result = splitCode(code) if (id && id.endsWith('.svelte')) { result = result.map((r) => { - return r.startsWith('class:') ? r.slice(6) : r + return r.startsWith('class:') ? r.slice(6).replace(rightTrimRe, '') : r }) } return new Set(result) diff --git a/test/extractor.test.ts b/test/extractor.test.ts index 3e5e70809c..6f467b6970 100644 --- a/test/extractor.test.ts +++ b/test/extractor.test.ts @@ -1,21 +1,45 @@ -import { extractorSplit } from '@unocss/core' +import { extractorSplit, extractorSvelte } from '@unocss/core' import { expect, it } from 'vitest' it('extractorSplit', async () => { - let code = '' - async function extract() { + async function extract(code: string) { return [...await extractorSplit.extract({ code, original: code }) || []] } - code = 'foo' - expect(await extract()).eql(['foo']) + expect(await extract('foo')).eql(['foo']) + expect(await extract('