diff --git a/src/js/util.ts b/src/js/util.ts index 0ca502c..aba9ee8 100644 --- a/src/js/util.ts +++ b/src/js/util.ts @@ -464,24 +464,19 @@ export const isAbsoluteSizeOrLength = ( /** * is absolute font size - * @param value - value + * @param css - css * @returns result */ -export const isAbsoluteFontSize = (value: unknown): boolean => { - if (isString(value)) { - const size = value.toLowerCase().trim() as string; - if (/^[a-z-]+$/.test(size)) { - return absoluteFontSize.has(size); - } else { - const [, val, unit] = /^(\d+(?:\.\d+)?|\.\d+)([a-z-]+)?$/.exec( - size - ) as RegExpExecArray; - if (unit) { - return absoluteLength.has(unit); - } else if (val) { - const num = parseFloat(val); - return num === 0; - } +export const isAbsoluteFontSize = (css: unknown): boolean => { + if (isString(css)) { + const [token] = tokenize({ css }); + if (Array.isArray(token)) { + const [, , , , detail = {}] = token; + const { unit, value } = detail as { + unit: string; + value: number; + }; + return isAbsoluteSizeOrLength(value, unit); } } return false; diff --git a/test/util.test.ts b/test/util.test.ts index c6e38d2..9fcb384 100644 --- a/test/util.test.ts +++ b/test/util.test.ts @@ -884,6 +884,16 @@ describe('is absolute size or length', () => { describe('is absolute font size', () => { const func = util.isAbsoluteFontSize; + it('should get false', () => { + const res = func(); + assert.strictEqual(res, false, 'result'); + }); + + it('should get false', () => { + const res = func({}); + assert.strictEqual(res, false, 'result'); + }); + it('should get false', () => { const res = func('foo'); assert.strictEqual(res, false, 'result');