| ; | |
| var Scalar = require('../../nodes/Scalar.js'); | |
| var map = require('../common/map.js'); | |
| var seq = require('../common/seq.js'); | |
| function intIdentify(value) { | |
| return typeof value === 'bigint' || Number.isInteger(value); | |
| } | |
| const stringifyJSON = ({ value }) => JSON.stringify(value); | |
| const jsonScalars = [ | |
| { | |
| identify: value => typeof value === 'string', | |
| default: true, | |
| tag: 'tag:yaml.org,2002:str', | |
| resolve: str => str, | |
| stringify: stringifyJSON | |
| }, | |
| { | |
| identify: value => value == null, | |
| createNode: () => new Scalar.Scalar(null), | |
| default: true, | |
| tag: 'tag:yaml.org,2002:null', | |
| test: /^null$/, | |
| resolve: () => null, | |
| stringify: stringifyJSON | |
| }, | |
| { | |
| identify: value => typeof value === 'boolean', | |
| default: true, | |
| tag: 'tag:yaml.org,2002:bool', | |
| test: /^true$|^false$/, | |
| resolve: str => str === 'true', | |
| stringify: stringifyJSON | |
| }, | |
| { | |
| identify: intIdentify, | |
| default: true, | |
| tag: 'tag:yaml.org,2002:int', | |
| test: /^-?(?:0|[1-9][0-9]*)$/, | |
| resolve: (str, _onError, { intAsBigInt }) => intAsBigInt ? BigInt(str) : parseInt(str, 10), | |
| stringify: ({ value }) => intIdentify(value) ? value.toString() : JSON.stringify(value) | |
| }, | |
| { | |
| identify: value => typeof value === 'number', | |
| default: true, | |
| tag: 'tag:yaml.org,2002:float', | |
| test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/, | |
| resolve: str => parseFloat(str), | |
| stringify: stringifyJSON | |
| } | |
| ]; | |
| const jsonError = { | |
| default: true, | |
| tag: '', | |
| test: /^/, | |
| resolve(str, onError) { | |
| onError(`Unresolved plain scalar ${JSON.stringify(str)}`); | |
| return str; | |
| } | |
| }; | |
| const schema = [map.map, seq.seq].concat(jsonScalars, jsonError); | |
| exports.schema = schema; | |
Xet Storage Details
- Size:
- 1.9 kB
- Xet hash:
- d3e8a96ec19cda025d619637c4a6ee7448a167c2f92fd1ec6fd55d034c3d1fed
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.