123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- '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;
- };
|