123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 'use strict';
- var stringifyNumber = require('../../stringify/stringifyNumber.js');
- const intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);
- const intResolve = (str, offset, radix, { intAsBigInt }) => (intAsBigInt ? BigInt(str) : parseInt(str.substring(offset), radix));
- function intStringify(node, radix, prefix) {
- const { value } = node;
- if (intIdentify(value) && value >= 0)
- return prefix + value.toString(radix);
- return stringifyNumber.stringifyNumber(node);
- }
- const intOct = {
- identify: value => intIdentify(value) && value >= 0,
- default: true,
- tag: 'tag:yaml.org,2002:int',
- format: 'OCT',
- test: /^0o[0-7]+$/,
- resolve: (str, _onError, opt) => intResolve(str, 2, 8, opt),
- stringify: node => intStringify(node, 8, '0o')
- };
- const int = {
- identify: intIdentify,
- default: true,
- tag: 'tag:yaml.org,2002:int',
- test: /^[-+]?[0-9]+$/,
- resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),
- stringify: stringifyNumber.stringifyNumber
- };
- const intHex = {
- identify: value => intIdentify(value) && value >= 0,
- default: true,
- tag: 'tag:yaml.org,2002:int',
- format: 'HEX',
- test: /^0x[0-9a-fA-F]+$/,
- resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),
- stringify: node => intStringify(node, 16, '0x')
- };
- exports.int = int;
- exports.intHex = intHex;
- exports.intOct = intOct;
|