| import { Scalar } from '../../nodes/Scalar.js'; | |
| import { stringifyNumber } from '../../stringify/stringifyNumber.js'; | |
| const floatNaN = { | |
| identify: value => typeof value === 'number', | |
| default: true, | |
| tag: 'tag:yaml.org,2002:float', | |
| test: /^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/, | |
| resolve: (str) => str.slice(-3).toLowerCase() === 'nan' | |
| ? NaN | |
| : str[0] === '-' | |
| ? Number.NEGATIVE_INFINITY | |
| : Number.POSITIVE_INFINITY, | |
| stringify: stringifyNumber | |
| }; | |
| const floatExp = { | |
| identify: value => typeof value === 'number', | |
| default: true, | |
| tag: 'tag:yaml.org,2002:float', | |
| format: 'EXP', | |
| test: /^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/, | |
| resolve: (str) => parseFloat(str.replace(/_/g, '')), | |
| stringify(node) { | |
| const num = Number(node.value); | |
| return isFinite(num) ? num.toExponential() : stringifyNumber(node); | |
| } | |
| }; | |
| const float = { | |
| identify: value => typeof value === 'number', | |
| default: true, | |
| tag: 'tag:yaml.org,2002:float', | |
| test: /^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/, | |
| resolve(str) { | |
| const node = new Scalar(parseFloat(str.replace(/_/g, ''))); | |
| const dot = str.indexOf('.'); | |
| if (dot !== -1) { | |
| const f = str.substring(dot + 1).replace(/_/g, ''); | |
| if (f[f.length - 1] === '0') | |
| node.minFractionDigits = f.length; | |
| } | |
| return node; | |
| }, | |
| stringify: stringifyNumber | |
| }; | |
| export { float, floatExp, floatNaN }; | |
Xet Storage Details
- Size:
- 1.52 kB
- Xet hash:
- e4d4277f8ca2c5d5f6323934728554a437e6b6850dcdf110123ffdd04cd7032f
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.