Skip to content

Commit 0f35dcb

Browse files
committed
Ignore errors thrown by Culori
1 parent 1c77f60 commit 0f35dcb

File tree

1 file changed

+13
-3
lines changed
  • packages/tailwindcss-language-service/src/util

1 file changed

+13
-3
lines changed

packages/tailwindcss-language-service/src/util/color.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ function getColorsInString(state: State, str: string): (culori.Color | KeywordCo
6161

6262
function toColor(match: RegExpMatchArray) {
6363
let color = match[1].replace(/var\([^)]+\)/, '1')
64-
return getKeywordColor(color) ?? culori.parse(color)
64+
return getKeywordColor(color) ?? tryParseColor(color)
6565
}
6666

6767
str = replaceCssVarsWithFallbacks(state, str)
@@ -275,7 +275,7 @@ export function getColorFromValue(value: unknown): culori.Color | KeywordColor |
275275
) {
276276
return null
277277
}
278-
const color = culori.parse(trimmedValue)
278+
const color = tryParseColor(trimmedValue)
279279
return color ?? null
280280
}
281281

@@ -296,11 +296,21 @@ export function formatColor(color: culori.Color): string {
296296

297297
const COLOR_MIX_REGEX = /color-mix\(in [^,]+,\s*(.*?)\s*(\d+|\.\d+|\d+\.\d+)%,\s*transparent\)/g
298298

299+
function tryParseColor(color: string) {
300+
try {
301+
return culori.parse(color)
302+
} catch (err) {
303+
console.error('Error parsing color', color)
304+
console.error(err)
305+
return null
306+
}
307+
}
308+
299309
function removeColorMixWherePossible(str: string) {
300310
return str.replace(COLOR_MIX_REGEX, (match, color, percentage) => {
301311
if (color.startsWith('var(')) return match
302312

303-
let parsed = culori.parse(color)
313+
let parsed = tryParseColor(color)
304314
if (!parsed) return match
305315

306316
let alpha = Number(percentage) / 100

0 commit comments

Comments
 (0)