'use strict';
|
|
/**
|
* https://github.com/TrySound/postcss-value-parser/blob/fc679a7e17877841ff9fe455722280b65abd4f28/lib/unit.js
|
* parse node -> number and unit
|
*/
|
|
const minus = '-'.charCodeAt(0);
|
const plus = '+'.charCodeAt(0);
|
const dot = '.'.charCodeAt(0);
|
|
module.exports = function unit(value) {
|
let pos = 0;
|
const length = value.length;
|
let dotted = false;
|
let containsNumber = false;
|
let code;
|
let number = '';
|
|
while (pos < length) {
|
code = value.charCodeAt(pos);
|
|
if (code >= 48 && code <= 57) {
|
number += value[pos];
|
containsNumber = true;
|
} else if (code === dot) {
|
if (dotted) {
|
break;
|
}
|
dotted = true;
|
number += value[pos];
|
} else if (code === plus || code === minus) {
|
if (pos !== 0) {
|
break;
|
}
|
number += value[pos];
|
} else {
|
break;
|
}
|
|
pos += 1;
|
}
|
|
return containsNumber ? {
|
number,
|
unit: value.slice(pos),
|
} : false;
|
};
|