| ; | |
| var Scalar = require('../../nodes/Scalar.js'); | |
| var stringifyNumber = require('../../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.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.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.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.stringifyNumber | |
| }; | |
| exports.float = float; | |
| exports.floatExp = floatExp; | |
| exports.floatNaN = floatNaN; | |
Xet Storage Details
- Size:
- 1.63 kB
- Xet hash:
- 37b33bd4c0faeaf7c85cd4381fb0f2644d5cfd11ce5de9e65d55a5732c6f0ca9
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.